Преглед на файлове

Complete emoji adding interface

sbkwgh преди 8 години
родител
ревизия
773899c3e8
променени са 2 файла, в които са добавени 75 реда и са изтрити 35 реда
  1. 54 34
      frontend/src/components/EmojiSelector.vue
  2. 21 1
      frontend/src/components/InputEditorCore.vue

Файловите разлики са ограничени, защото са твърде много
+ 54 - 34
frontend/src/components/EmojiSelector.vue


+ 21 - 1
frontend/src/components/InputEditorCore.vue

@@ -4,12 +4,15 @@
 	>
 		<error-tooltip :error='error'></error-tooltip>
 		<div>
+			<emoji-selector v-model='emojiSelectorVisible' @emoji='addEmoji'></emoji-selector>
+
 			<div class='input_editor_core__format_bar'>
 				<div
 					class='input_editor_core__format_button'
 					title='Emoji'
+					@click='emojiSelectorVisible = true'
 				>
-					<emoji-selector></emoji-selector>
+					<span class='fa fa-smile-o'></span>
 				</div>
 				<div
 					class='input_editor_core__format_button'
@@ -104,6 +107,7 @@
 				linkURL: '',
 				linkModalVisible: false,
 				imageModalVisible: false,
+				emojiSelectorVisible: false
 			}
 		},
 		methods: {
@@ -227,6 +231,22 @@
 
 				this.setModalState('link', false);
 			},
+			addEmoji (emoji) {
+				var selectionData = this.getSelectionData();
+				var el = this.$refs.textarea;
+
+				this.setEditor(
+					this.value.slice(0, selectionData.start) +
+					emoji +
+					this.value.slice(selectionData.end)
+				);
+				el.focus();
+
+				setTimeout(function() {
+					el.selectionStart = selectionData.start + emoji.length;
+					el.selectionEnd = selectionData.start + emoji.length;
+				}, 0);
+			},
 			formatCode (e) {
 				e.preventDefault()