faceWidget method

Widget faceWidget()

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;
}