diff options
Diffstat (limited to 'pages/Notes.js')
-rw-r--r-- | pages/Notes.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/pages/Notes.js b/pages/Notes.js new file mode 100644 index 0000000..5ed91cf --- /dev/null +++ b/pages/Notes.js @@ -0,0 +1,60 @@ +import styles from 'styles/Main.module.scss' +import React, { useMemo, Suspense, useEffect } from 'react' +import Head from 'next/head' +import useApps from 'hooks/useApps' +import useSettings from 'hooks/useSettings' +import useUser from 'hooks/useUser' +import { Splash, Popup } from 'components' + +const NotesApp = () => { + const { user } = useUser({ + redirectToLogin: true, + redirectToVerify: true + }) + const app = { name: 'Notes', min: false, max: true, height: '48em', width: '64em', pos: [], buttons: [], props: {} } + const { apps, setApps } = useApps([app]) + const { settings } = useSettings() + + useEffect(() => setApps([app]), []) + + if (!user || !apps || apps.length < 1 || !settings || !settings.theme || !settings.language) return null + + return ( + <> + <Head> + <title>My Notes</title> + <link rel='apple-touch-icon' sizes='180x180' href='/notes/apple-touch-icon.png' /> + <link rel='icon' type='image/png' sizes='32x32' href='/notes/favicon-32x32.png' /> + <link rel='icon' type='image/png' sizes='16x16' href='/notes/favicon-16x16.png' /> + <link rel='manifest' href='/notes/site.webmanifest' /> + <link rel='mask-icon' href='/notes/safari-pinned-tab.svg' color='#ffc40d' /> + <link rel='shortcut icon' href='/notes/favicon.ico' /> + <meta name='msapplication-TileColor' content='#ffc40d' /> + <meta name='msapplication-config' content='/notes/browserconfig.xml' /> + <meta name='theme-color' content='#ffffff' /> + </Head> + <section className={styles.layout + ' ' + settings.theme}> + <main className='window__content noHeader'> + <NotesContainer /> + </main> + <Popup /> + </section> + </> + ) +} + +const NotesContainer = () => { + const Notes = React.lazy(() => import('apps/Notes')) + + const Component = useMemo(() => ( + <Suspense fallback={<Splash fixed />}> + <Notes logout /> + </Suspense> + ), []) + + return Notes + ? Component + : null +} + +export default NotesApp |