MCPcopy Create free account
hub / github.com/dailydotdev/apps / RichTextInput

Function RichTextInput

packages/shared/src/components/fields/RichTextInput.tsx:172–1131  ·  view source on GitHub ↗
(
  {
    className = {},
    inputId,
    footer,
    textareaProps = {},
    submitCopy,
    submitButtonVariant = ButtonVariant.Float,
    showUserAvatar,
    isUpdatingDraft,
    header,
    isLoading,
    disabledSubmit,
    maxInputLength,
    onClose,
    postId,
    sourceId,
    onSubmit,
    onValueUpdate,
    initialContent = '',
    enabledCommand = {},
    editCommentId,
    parentCommentId,
    mentionSuggestions,
    allowBlockFormatting = true,
    minHeightClassName = 'min-h-[8rem]',
    markdownToHtml = markdownToHtmlBasic,
    hideToolbar = false,
    toolbarPosition = 'top',
    toolbarLeading,
    toolbarRightActions,
    stackToolbarLeading = false,
    hideMarkdownToggle = false,
    hideMarkdownHeader = false,
    hideFooter = false,
    onMarkdownModeChange,
  }: RichTextInputProps,
  ref: ForwardedRef<RichTextInputRef>,
)

Source from the content-addressed store, hash-verified

170}
171
172function RichTextInput(
173 {
174 className = {},
175 inputId,
176 footer,
177 textareaProps = {},
178 submitCopy,
179 submitButtonVariant = ButtonVariant.Float,
180 showUserAvatar,
181 isUpdatingDraft,
182 header,
183 isLoading,
184 disabledSubmit,
185 maxInputLength,
186 onClose,
187 postId,
188 sourceId,
189 onSubmit,
190 onValueUpdate,
191 initialContent = '',
192 enabledCommand = {},
193 editCommentId,
194 parentCommentId,
195 mentionSuggestions,
196 allowBlockFormatting = true,
197 minHeightClassName = 'min-h-[8rem]',
198 markdownToHtml = markdownToHtmlBasic,
199 hideToolbar = false,
200 toolbarPosition = 'top',
201 toolbarLeading,
202 toolbarRightActions,
203 stackToolbarLeading = false,
204 hideMarkdownToggle = false,
205 hideMarkdownHeader = false,
206 hideFooter = false,
207 onMarkdownModeChange,
208 }: RichTextInputProps,
209 ref: ForwardedRef<RichTextInputRef>,
210): ReactElement {
211 const shouldShowSubmit = !!submitCopy;
212 const { user } = useAuthContext();
213 const { displayToast } = useToastNotification();
214 const { parentSelector } = usePopupSelector();
215 const toolbarRef = useRef<RichTextToolbarRef>(null);
216 const editorContainerRef = useRef<HTMLDivElement>(null);
217 const editorRef = useRef<Editor | null>(null);
218 const markdownTextareaRef = useRef<HTMLTextAreaElement>(null);
219 const scrollContainerRef = useRef<HTMLDivElement>(null);
220 const scrollOffsetRef = useRef(0);
221 const shouldRestoreScrollRef = useRef(false);
222 const pendingFocusRef = useRef(false);
223 const dirtyRef = useRef(false);
224 const isSyncingRef = useRef(false);
225 const inputRef = useRef('');
226 const [offset, setOffset] = useState([0, 0]);
227 const [isMarkdownMode, setIsMarkdownMode] = useState(false);
228 const [submitShortcut, setSubmitShortcut] = useState('Ctrl + Enter');
229 useEffect(() => {

Callers

nothing calls this directly

Calls 15

useAuthContextFunction · 0.90
useToastNotificationFunction · 0.90
usePopupSelectorFunction · 0.90
isAppleDeviceFunction · 0.90
useDraftStorageFunction · 0.90
useMentionAutocompleteFunction · 0.90
useEmojiAutocompleteFunction · 0.90
htmlToMarkdownBasicFunction · 0.90
looksLikeMarkdownFunction · 0.90
useImageUploadFunction · 0.90
getInitialValueFunction · 0.85
setInputFunction · 0.85

Tested by

no test coverage detected