({
+ action: Action.ComposerInsert,
+ text: emoji,
+ timelineRenderingType: roomContext.timelineRenderingType,
+ });
+ return true;
+ }}
+ />;
+}
diff --git a/src/components/views/rooms/wysiwyg_composer/components/PlainTextComposer.tsx b/src/components/views/rooms/wysiwyg_composer/components/PlainTextComposer.tsx
index c8972f923e..5339e986cd 100644
--- a/src/components/views/rooms/wysiwyg_composer/components/PlainTextComposer.tsx
+++ b/src/components/views/rooms/wysiwyg_composer/components/PlainTextComposer.tsx
@@ -34,7 +34,6 @@ interface PlainTextComposerProps {
className?: string;
leftComponent?: ReactNode;
rightComponent?: (
- composerFunctions: ComposerFunctions,
selectPreviousSelection: () => void
) => ReactNode;
children?: (
@@ -61,8 +60,6 @@ export function PlainTextComposer({
useSetCursorPosition(disabled, ref);
const { isFocused, onFocus } = useIsFocused();
const computedPlaceholder = !content && placeholder || undefined;
- const rightComp =
- (selectPreviousSelection: () => void) => rightComponent(composerFunctions, selectPreviousSelection);
return
-
+
{ children?.(ref, composerFunctions) }
;
}
diff --git a/src/components/views/rooms/wysiwyg_composer/components/WysiwygComposer.tsx b/src/components/views/rooms/wysiwyg_composer/components/WysiwygComposer.tsx
index 509218e0d5..c346ceb1a4 100644
--- a/src/components/views/rooms/wysiwyg_composer/components/WysiwygComposer.tsx
+++ b/src/components/views/rooms/wysiwyg_composer/components/WysiwygComposer.tsx
@@ -33,7 +33,6 @@ interface WysiwygComposerProps {
className?: string;
leftComponent?: ReactNode;
rightComponent?: (
- composerFunctions: FormattingFunctions,
selectPreviousSelection: () => void
) => ReactNode;
children?: (
@@ -72,12 +71,10 @@ export const WysiwygComposer = memo(function WysiwygComposer(
const { isFocused, onFocus } = useIsFocused();
const computedPlaceholder = !content && placeholder || undefined;
- const rightComp = (selectPreviousSelection: () => void) => rightComponent(wysiwyg, selectPreviousSelection);
-
return (
-
+
{ children?.(ref, wysiwyg) }
);
diff --git a/src/components/views/rooms/wysiwyg_composer/hooks/useWysiwygSendActionHandler.ts b/src/components/views/rooms/wysiwyg_composer/hooks/useWysiwygSendActionHandler.ts
index 500f027049..f2ee55ad46 100644
--- a/src/components/views/rooms/wysiwyg_composer/hooks/useWysiwygSendActionHandler.ts
+++ b/src/components/views/rooms/wysiwyg_composer/hooks/useWysiwygSendActionHandler.ts
@@ -23,6 +23,7 @@ import { TimelineRenderingType, useRoomContext } from "../../../../../contexts/R
import { useDispatcher } from "../../../../../hooks/useDispatcher";
import { focusComposer } from "./utils";
import { ComposerFunctions } from "../types";
+import { ComposerType } from "../../../../../dispatcher/payloads/ComposerInsertPayload";
export function useWysiwygSendActionHandler(
disabled: boolean,
@@ -48,7 +49,18 @@ export function useWysiwygSendActionHandler(
composerFunctions.clear();
focusComposer(composerElement, context, roomContext, timeoutId);
break;
- // TODO: case Action.ComposerInsert: - see SendMessageComposer
+ case Action.ComposerInsert:
+ if (payload.timelineRenderingType !== roomContext.timelineRenderingType) break;
+ if (payload.composerType !== ComposerType.Send) break;
+
+ if (payload.userId) {
+ // TODO insert mention - see SendMessageComposer
+ } else if (payload.event) {
+ // TODO insert quote message - see SendMessageComposer
+ } else if (payload.text) {
+ composerFunctions.insertText(payload.text);
+ }
+ break;
}
}, [disabled, composerElement, composerFunctions, timeoutId, roomContext]);