faceWidget method
Implementation
Widget faceWidget() {
Widget content = AnimatedContainer(
onEnd: () {},
curve: Curves.easeIn,
duration: const Duration(milliseconds: 300),
height: _inputType == InputType.emoji ? 280 : 0,
child: Container(
color: (ChatUIKitTheme.of(context).color.isDark
? ChatUIKitTheme.of(context).color.neutralColor1
: ChatUIKitTheme.of(context).color.neutralColor98),
child: ChatInputEmoji(
deleteOnTap: () {
TextSelection selection = textEditingController.selection;
TextEditingValue value = textEditingController.value;
if (selection.baseOffset != selection.extentOffset) {
textEditingController.text = textEditingController.text
.replaceRange(selection.start, selection.end, '');
textEditingController.selection = TextSelection.fromPosition(
TextPosition(offset: selection.start));
} else if (selection.baseOffset == 0) {
return;
} else if (selection.baseOffset != value.text.length) {
String subText = value.text.substring(0, selection.start);
subText = subText.characters.skipLast(1).toString();
String text = subText.characters.skipLast(1).toString() +
value.text.substring(selection.start);
TextSelection newSelection = TextSelection.fromPosition(
TextPosition(offset: subText.length));
textEditingController.value = TextEditingValue(
text: text,
selection: newSelection,
);
} else {
String text = value.text.characters.skipLast(1).toString();
TextSelection newSelection =
TextSelection.fromPosition(TextPosition(offset: text.length));
textEditingController.value = TextEditingValue(
text: text,
selection: newSelection,
);
}
},
emojiClicked: (emoji) {
TextSelection selection = textEditingController.selection;
if (selection.baseOffset != selection.extentOffset) {
textEditingController.text = textEditingController.text
.replaceRange(selection.start, selection.end, emoji);
textEditingController.selection = TextSelection.fromPosition(
TextPosition(offset: selection.start + emoji.length));
} else if (selection.baseOffset == 0) {
textEditingController.text =
emoji + textEditingController.text.substring(selection.start);
textEditingController.selection = TextSelection.fromPosition(
TextPosition(offset: selection.start + emoji.length));
} else {
textEditingController.text =
textEditingController.text.substring(0, selection.start) +
emoji +
textEditingController.text.substring(selection.start);
textEditingController.selection = TextSelection.fromPosition(
TextPosition(offset: selection.start + emoji.length));
}
},
),
),
);
return content;
}