diff --git a/apps/web/core/components/pages/editor/content-limit-banner.tsx b/apps/web/core/components/pages/editor/content-limit-banner.tsx index cd16641159..1195fa4e1e 100644 --- a/apps/web/core/components/pages/editor/content-limit-banner.tsx +++ b/apps/web/core/components/pages/editor/content-limit-banner.tsx @@ -6,30 +6,32 @@ type Props = { onDismiss?: () => void; }; -export const ContentLimitBanner: React.FC = ({ className, onDismiss }) => ( -
-
- - - - - Content limit reached and live sync is off. Create a new page or use nested pages to continue syncing. - +export function ContentLimitBanner({ className, onDismiss }: Props) { + return ( +
+
+ + + + + Content limit reached and live sync is off. Create a new page or use nested pages to continue syncing. + +
+ {onDismiss && ( + + )}
- {onDismiss && ( - - )} -
-); + ); +} diff --git a/apps/web/core/components/pages/editor/editor-body.tsx b/apps/web/core/components/pages/editor/editor-body.tsx index e7f6309dab..dd7403e06d 100644 --- a/apps/web/core/components/pages/editor/editor-body.tsx +++ b/apps/web/core/components/pages/editor/editor-body.tsx @@ -254,43 +254,45 @@ export const PageEditorBody = observer(function PageEditorBody(props: Props) {
)} -
-
- +
+
+
+ +
+ { + const res = await fetchMentions(query); + if (!res) throw new Error("Failed in fetching mentions"); + return res; + }, + renderComponent: (props) => , + getMentionedEntityDetails: (id: string) => ({ display_name: getUserDetails(id)?.display_name ?? "" }), + }} + updatePageProperties={updatePageProperties} + realtimeConfig={realtimeConfig} + serverHandler={serverHandler} + user={userConfig} + disabledExtensions={documentEditorExtensions.disabled} + flaggedExtensions={documentEditorExtensions.flagged} + aiHandler={{ + menu: getAIMenu, + }} + onAssetChange={updateAssetsList} + extendedEditorProps={extendedEditorProps} + isFetchingFallbackBinary={isFetchingFallbackBinary} + />
- { - const res = await fetchMentions(query); - if (!res) throw new Error("Failed in fetching mentions"); - return res; - }, - renderComponent: (props) => , - getMentionedEntityDetails: (id: string) => ({ display_name: getUserDetails(id)?.display_name ?? "" }), - }} - updatePageProperties={updatePageProperties} - realtimeConfig={realtimeConfig} - serverHandler={serverHandler} - user={userConfig} - disabledExtensions={documentEditorExtensions.disabled} - flaggedExtensions={documentEditorExtensions.flagged} - aiHandler={{ - menu: getAIMenu, - }} - onAssetChange={updateAssetsList} - extendedEditorProps={extendedEditorProps} - isFetchingFallbackBinary={isFetchingFallbackBinary} - />
); diff --git a/apps/web/core/components/pages/editor/page-root.tsx b/apps/web/core/components/pages/editor/page-root.tsx index d81273f2c1..54fb29416c 100644 --- a/apps/web/core/components/pages/editor/page-root.tsx +++ b/apps/web/core/components/pages/editor/page-root.tsx @@ -43,7 +43,7 @@ type TPageRootProps = { customRealtimeEventHandlers?: TCustomEventHandlers; }; -export const PageRoot = observer((props: TPageRootProps) => { +export const PageRoot = observer(function PageRoot(props: TPageRootProps) { const { config, handlers, diff --git a/apps/web/core/components/pages/header/syncing-badge.tsx b/apps/web/core/components/pages/header/syncing-badge.tsx index 3451117977..056a014152 100644 --- a/apps/web/core/components/pages/header/syncing-badge.tsx +++ b/apps/web/core/components/pages/header/syncing-badge.tsx @@ -6,7 +6,7 @@ type Props = { syncStatus: "syncing" | "synced" | "error"; }; -export const PageSyncingBadge = ({ syncStatus }: Props) => { +export function PageSyncingBadge({ syncStatus }: Props) { const [prevSyncStatus, setPrevSyncStatus] = useState<"syncing" | "synced" | "error" | null>(null); const [isVisible, setIsVisible] = useState(syncStatus !== "synced"); @@ -69,4 +69,4 @@ export const PageSyncingBadge = ({ syncStatus }: Props) => {
); -}; +} diff --git a/packages/editor/src/core/components/editors/document/collaborative-editor.tsx b/packages/editor/src/core/components/editors/document/collaborative-editor.tsx index bee6e610ac..7ea5b23b4a 100644 --- a/packages/editor/src/core/components/editors/document/collaborative-editor.tsx +++ b/packages/editor/src/core/components/editors/document/collaborative-editor.tsx @@ -15,7 +15,7 @@ import { useCollaborativeEditor } from "@/hooks/use-collaborative-editor"; import type { EditorRefApi, ICollaborativeDocumentEditorProps } from "@/types"; // Inner component that has access to collaboration context -const CollaborativeDocumentEditorInner: React.FC = (props) => { +function CollaborativeDocumentEditorInner(props: ICollaborativeDocumentEditorProps) { const { aiHandler, bubbleMenuEnabled = true, @@ -129,10 +129,10 @@ const CollaborativeDocumentEditorInner: React.FC ); -}; +} // Outer component that provides collaboration context -const CollaborativeDocumentEditor: React.FC = (props) => { +function CollaborativeDocumentEditor(props: ICollaborativeDocumentEditorProps) { const { id, realtimeConfig, serverHandler, user } = props; const token = useMemo(() => JSON.stringify(user), [user]); @@ -147,13 +147,16 @@ const CollaborativeDocumentEditor: React.FC = ); -}; +} -const CollaborativeDocumentEditorWithRef = React.forwardRef( - (props, ref) => ( +const CollaborativeDocumentEditorWithRef = React.forwardRef(function CollaborativeDocumentEditorWithRef( + props: ICollaborativeDocumentEditorProps, + ref: React.ForwardedRef +) { + return ( } /> - ) -); + ); +}); CollaborativeDocumentEditorWithRef.displayName = "CollaborativeDocumentEditorWithRef"; diff --git a/packages/editor/src/core/components/editors/editor-container.tsx b/packages/editor/src/core/components/editors/editor-container.tsx index 8fb03e893e..c6ba43ad89 100644 --- a/packages/editor/src/core/components/editors/editor-container.tsx +++ b/packages/editor/src/core/components/editors/editor-container.tsx @@ -26,7 +26,7 @@ type Props = { state?: TCollabValue["state"]; }; -export const EditorContainer: FC = (props) => { +export function EditorContainer(props: Props) { const { children, displayConfig, editor, editorContainerClassName, id, isTouchDevice, provider, state } = props; // refs const containerRef = useRef(null); @@ -176,4 +176,4 @@ export const EditorContainer: FC = (props) => { ); -}; +} diff --git a/packages/editor/src/core/components/editors/editor-content.tsx b/packages/editor/src/core/components/editors/editor-content.tsx index 23efd5ec67..20ee7d4295 100644 --- a/packages/editor/src/core/components/editors/editor-content.tsx +++ b/packages/editor/src/core/components/editors/editor-content.tsx @@ -1,6 +1,6 @@ import { EditorContent } from "@tiptap/react"; import type { Editor } from "@tiptap/react"; -import type { FC, ReactNode } from "react"; +import type { ReactNode } from "react"; type Props = { className?: string; @@ -10,7 +10,7 @@ type Props = { tabIndex?: number; }; -export const EditorContentWrapper: FC = (props) => { +export function EditorContentWrapper(props: Props) { const { editor, className, children, tabIndex, id } = props; return ( @@ -23,4 +23,4 @@ export const EditorContentWrapper: FC = (props) => { {children} ); -}; +} diff --git a/packages/editor/src/core/hooks/use-title-editor.ts b/packages/editor/src/core/hooks/use-title-editor.ts index de850bf82f..0272bdb227 100644 --- a/packages/editor/src/core/hooks/use-title-editor.ts +++ b/packages/editor/src/core/hooks/use-title-editor.ts @@ -13,7 +13,7 @@ import { getEditorRefHelpers } from "@/helpers/editor-ref"; import type { IEditorPropsExtended, IEditorProps } from "@/types"; import type { EditorTitleRefApi, ICollaborativeDocumentEditorProps } from "@/types/editor"; -type Props = { +type TUseTitleEditorProps = { editable?: boolean; provider: HocuspocusProvider; titleRef?: React.MutableRefObject; @@ -31,7 +31,7 @@ type Props = { * A hook that creates a title editor with collaboration features * Uses the same Y.Doc as the main editor but a different field */ -export const useTitleEditor = (props: Props) => { +export const useTitleEditor = (props: TUseTitleEditorProps) => { const { editable = true, id,