From c206377198f75eb36ac3e7bedeb90cd8d85fc165 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Wed, 23 Nov 2022 19:16:24 +0500 Subject: [PATCH] web: show mobile UI for tablet users --- apps/web/src/components/editor/index.tsx | 29 +++++++++++++++-------- apps/web/src/components/editor/tiptap.tsx | 5 ++-- apps/web/src/hooks/use-media-query.js | 2 +- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/apps/web/src/components/editor/index.tsx b/apps/web/src/components/editor/index.tsx index ab40fb0e6..bfc7a8c35 100644 --- a/apps/web/src/components/editor/index.tsx +++ b/apps/web/src/components/editor/index.tsx @@ -42,6 +42,7 @@ import { EV, EVENTS } from "@notesnook/core/common"; import { db } from "../../common/db"; import useMobile from "../../hooks/use-mobile"; import Titlebox from "./title-box"; +import useTablet from "../../hooks/use-tablet"; type PreviewSession = { content: { data: string; type: string }; @@ -83,6 +84,9 @@ export default function EditorManager({ const isFocusMode = useAppStore((store) => store.isFocusMode); const isPreviewSession = !!previewSession.current; + const isMobile = useMobile(); + const isTablet = useTablet(); + useEffect(() => { const event = db.eventManager.subscribe( EVENTS.syncItemMerged, @@ -184,7 +188,8 @@ export default function EditorManager({ readonly: isReadonly || isPreviewSession, onRequestFocus: () => toggleProperties(false), onLoadMedia: loadMedia, - focusMode: isFocusMode + focusMode: isFocusMode, + isMobile: isMobile || isTablet }} /> {arePropertiesVisible && ( @@ -201,6 +206,7 @@ export default function EditorManager({ } type EditorOptions = { + isMobile?: boolean; headless?: boolean; readonly?: boolean; focusMode?: boolean; @@ -214,10 +220,11 @@ type EditorProps = { }; export function Editor(props: EditorProps) { const { content, nonce, options } = props; - const { readonly, headless, onLoadMedia } = options || { + const { readonly, headless, onLoadMedia, isMobile } = options || { headless: false, readonly: false, - focusMode: false + focusMode: false, + isMobile: false }; const editor = useEditorInstance(); @@ -259,6 +266,7 @@ export function Editor(props: EditorProps) { return ( ) { const { options, children } = props; - const { readonly, focusMode, headless, onRequestFocus } = options || { - headless: false, - readonly: false, - focusMode: false - }; - const isMobile: boolean | null = useMobile(); + const { readonly, focusMode, headless, onRequestFocus, isMobile } = + options || { + headless: false, + readonly: false, + focusMode: false, + isMobile: false + }; if (headless) return <>{children}; @@ -303,7 +312,7 @@ function EditorChrome(props: PropsWithChildren) { store.doubleSpacedLines diff --git a/apps/web/src/hooks/use-media-query.js b/apps/web/src/hooks/use-media-query.js index 5b00a374b..983877342 100644 --- a/apps/web/src/hooks/use-media-query.js +++ b/apps/web/src/hooks/use-media-query.js @@ -36,7 +36,7 @@ const useMediaQuery = (mediaQuery) => { if (!window.matchMedia) { // eslint-disable-next-line no-console console.warn(errorMessage); - return null; + return false; } const [isVerified, setIsVerified] = useState(