From e48b65b14c70a6eeedf284f070e9a8ea1d5d9945 Mon Sep 17 00:00:00 2001 From: developomp Date: Fri, 7 Jul 2023 19:18:32 +0900 Subject: [PATCH] feat(blog): port from CRA to vite + react --- .vscode/settings.json | 7 +- CONTRIBUTING.md | 5 +- apps/blog/.eslintignore | 2 + apps/blog/.eslintrc | 12 - apps/blog/.eslintrc.cjs | 14 + apps/blog/.gitignore | 176 +- apps/blog/index.html | 36 + apps/blog/package.json | 76 +- apps/blog/postcss.config.js | 6 + apps/blog/public/favicon.svg | 1 + apps/blog/public/img/nojs.avif | Bin 0 -> 4566 bytes apps/blog/public/index.html | 27 - apps/blog/src/App.tsx | 112 +- apps/blog/src/components/Card.tsx | 36 +- apps/blog/src/components/Footer/Footer.tsx | 44 +- apps/blog/src/components/GithubLinkIcon.tsx | 31 +- .../src/components/Header/Buttons/Buttons.tsx | 22 - .../Header/Buttons/SearchButton.tsx | 30 - .../Header/Buttons/ThemeToggleButton.tsx | 50 - .../src/components/Header/Buttons/index.ts | 3 - apps/blog/src/components/Header/Header.tsx | 77 +- .../src/components/Header/HeaderButton.tsx | 43 - .../src/components/Header/ReadProgress.tsx | 51 +- .../src/components/Header/SearchButton.tsx | 13 + .../components/Header/ThemeToggleButton.tsx | 24 + apps/blog/src/components/Header/index.ts | 4 +- apps/blog/src/components/Loading.tsx | 139 - apps/blog/src/components/Loading/Loading.scss | 73 + apps/blog/src/components/Loading/Loading.tsx | 18 + apps/blog/src/components/Loading/TeaCup.tsx | 44 + apps/blog/src/components/Loading/index.ts | 3 + apps/blog/src/components/MainContent.tsx | 28 - apps/blog/src/components/PostCard.tsx | 114 +- apps/blog/src/components/Tag.tsx | 26 +- apps/blog/src/components/TagList.tsx | 19 +- apps/blog/src/contentMap.ts | 4 +- apps/blog/src/globalContext.tsx | 68 - apps/blog/src/index.css | 3 + apps/blog/src/index.tsx | 19 - apps/blog/src/main.tsx | 29 + apps/blog/src/pages/Home/Home.tsx | 72 +- apps/blog/src/pages/Home/ShowMoreButton.tsx | 22 +- apps/blog/src/pages/NotFound.tsx | 29 - apps/blog/src/pages/NotFound/NotFound.tsx | 15 + apps/blog/src/pages/NotFound/index.ts | 3 + apps/blog/src/pages/Page/Meta.tsx | 13 +- apps/blog/src/pages/Page/Page.scss | 9 + apps/blog/src/pages/Page/Page.tsx | 55 +- .../src/pages/Page/SeriesControlButtons.tsx | 53 +- apps/blog/src/pages/Page/Toc.scss | 4 + apps/blog/src/pages/Page/Toc.tsx | 50 +- apps/blog/src/pages/Page/helper.ts | 51 +- apps/blog/src/pages/Search/DateRange.tsx | 28 - apps/blog/src/pages/Search/Search.tsx | 277 - apps/blog/src/pages/Search/SearchBar.tsx | 31 - apps/blog/src/pages/Search/TagSelect.tsx | 113 - apps/blog/src/pages/Search/index.ts | 3 - apps/blog/src/react-app-env.d.ts | 1 - apps/blog/src/styles/anchor.scss | 13 + apps/blog/src/styles/anchor.ts | 31 - apps/blog/src/styles/blockQuote.scss | 3 + apps/blog/src/styles/blockQuote.ts | 19 - apps/blog/src/styles/button.scss | 29 + apps/blog/src/styles/button.ts | 37 - apps/blog/src/styles/checkbox.scss | 13 + apps/blog/src/styles/checkbox.ts | 17 - apps/blog/src/styles/code.scss | 39 + apps/blog/src/styles/code.ts | 37 - apps/blog/src/styles/global.scss | 28 + apps/blog/src/styles/globalStyle.ts | 76 - apps/blog/src/styles/header.ts | 38 - apps/blog/src/styles/heading.scss | 32 + apps/blog/src/styles/hr.scss | 6 + apps/blog/src/styles/hr.ts | 8 - apps/blog/src/styles/img.scss | 7 + apps/blog/src/styles/katex.scss | 5 + apps/blog/src/styles/katex.ts | 9 - apps/blog/src/styles/kbd.scss | 20 + apps/blog/src/styles/kbd.ts | 22 - apps/blog/src/styles/list.scss | 12 + apps/blog/src/styles/mark.scss | 3 + apps/blog/src/styles/mark.ts | 9 - apps/blog/src/styles/scrollbar.scss | 14 + apps/blog/src/styles/scrollbar.ts | 23 - apps/blog/src/styles/subSup.scss | 4 + apps/blog/src/styles/table.scss | 13 + apps/blog/src/styles/table.ts | 22 - apps/blog/src/theme.ts | 57 + apps/blog/src/theme.tsx | 56 - apps/blog/src/vite-env.d.ts | 1 + apps/blog/tailwind.config.js | 5 + apps/blog/tsconfig.json | 43 +- apps/blog/tsconfig.node.json | 10 + apps/blog/types/react-date-range.d.ts | 7 - apps/blog/types/read-time-estimate.d.ts | 19 - apps/blog/types/styled-components.ts | 12 - apps/blog/vite.config.ts | 18 + packages/content/package.json | 5 + packages/theme/.eslintrc | 5 - packages/theme/.prettierrc | 4 - packages/theme/build.ts | 9 - packages/theme/index.d.ts | 143 - packages/theme/package.json | 26 - packages/theme/src/dark/codeblock.css | 96 - packages/theme/src/dark/index.ts | 147 - packages/theme/src/light/codeblock.css | 79 - packages/theme/src/light/index.ts | 125 - packages/theme/tsconfig.json | 9 - pnpm-lock.yaml | 8070 ++--------------- 109 files changed, 1493 insertions(+), 10360 deletions(-) create mode 100644 apps/blog/.eslintignore delete mode 100644 apps/blog/.eslintrc create mode 100644 apps/blog/.eslintrc.cjs create mode 100644 apps/blog/index.html create mode 100644 apps/blog/postcss.config.js create mode 100644 apps/blog/public/favicon.svg create mode 100644 apps/blog/public/img/nojs.avif delete mode 100644 apps/blog/public/index.html delete mode 100644 apps/blog/src/components/Header/Buttons/Buttons.tsx delete mode 100644 apps/blog/src/components/Header/Buttons/SearchButton.tsx delete mode 100644 apps/blog/src/components/Header/Buttons/ThemeToggleButton.tsx delete mode 100644 apps/blog/src/components/Header/Buttons/index.ts delete mode 100644 apps/blog/src/components/Header/HeaderButton.tsx create mode 100644 apps/blog/src/components/Header/SearchButton.tsx create mode 100644 apps/blog/src/components/Header/ThemeToggleButton.tsx delete mode 100644 apps/blog/src/components/Loading.tsx create mode 100644 apps/blog/src/components/Loading/Loading.scss create mode 100644 apps/blog/src/components/Loading/Loading.tsx create mode 100644 apps/blog/src/components/Loading/TeaCup.tsx create mode 100644 apps/blog/src/components/Loading/index.ts delete mode 100644 apps/blog/src/components/MainContent.tsx delete mode 100644 apps/blog/src/globalContext.tsx create mode 100644 apps/blog/src/index.css delete mode 100644 apps/blog/src/index.tsx create mode 100644 apps/blog/src/main.tsx delete mode 100644 apps/blog/src/pages/NotFound.tsx create mode 100644 apps/blog/src/pages/NotFound/NotFound.tsx create mode 100644 apps/blog/src/pages/NotFound/index.ts create mode 100644 apps/blog/src/pages/Page/Page.scss create mode 100644 apps/blog/src/pages/Page/Toc.scss delete mode 100644 apps/blog/src/pages/Search/DateRange.tsx delete mode 100644 apps/blog/src/pages/Search/Search.tsx delete mode 100644 apps/blog/src/pages/Search/SearchBar.tsx delete mode 100644 apps/blog/src/pages/Search/TagSelect.tsx delete mode 100644 apps/blog/src/pages/Search/index.ts delete mode 100644 apps/blog/src/react-app-env.d.ts create mode 100644 apps/blog/src/styles/anchor.scss delete mode 100644 apps/blog/src/styles/anchor.ts create mode 100644 apps/blog/src/styles/blockQuote.scss delete mode 100644 apps/blog/src/styles/blockQuote.ts create mode 100644 apps/blog/src/styles/button.scss delete mode 100644 apps/blog/src/styles/button.ts create mode 100644 apps/blog/src/styles/checkbox.scss delete mode 100644 apps/blog/src/styles/checkbox.ts create mode 100644 apps/blog/src/styles/code.scss delete mode 100644 apps/blog/src/styles/code.ts create mode 100644 apps/blog/src/styles/global.scss delete mode 100644 apps/blog/src/styles/globalStyle.ts delete mode 100644 apps/blog/src/styles/header.ts create mode 100644 apps/blog/src/styles/heading.scss create mode 100644 apps/blog/src/styles/hr.scss delete mode 100644 apps/blog/src/styles/hr.ts create mode 100644 apps/blog/src/styles/img.scss create mode 100644 apps/blog/src/styles/katex.scss delete mode 100644 apps/blog/src/styles/katex.ts create mode 100644 apps/blog/src/styles/kbd.scss delete mode 100644 apps/blog/src/styles/kbd.ts create mode 100644 apps/blog/src/styles/list.scss create mode 100644 apps/blog/src/styles/mark.scss delete mode 100644 apps/blog/src/styles/mark.ts create mode 100644 apps/blog/src/styles/scrollbar.scss delete mode 100644 apps/blog/src/styles/scrollbar.ts create mode 100644 apps/blog/src/styles/subSup.scss create mode 100644 apps/blog/src/styles/table.scss delete mode 100644 apps/blog/src/styles/table.ts create mode 100644 apps/blog/src/theme.ts delete mode 100644 apps/blog/src/theme.tsx create mode 100644 apps/blog/src/vite-env.d.ts create mode 100644 apps/blog/tailwind.config.js create mode 100644 apps/blog/tsconfig.node.json delete mode 100644 apps/blog/types/react-date-range.d.ts delete mode 100644 apps/blog/types/read-time-estimate.d.ts delete mode 100644 apps/blog/types/styled-components.ts create mode 100644 apps/blog/vite.config.ts delete mode 100644 packages/theme/.eslintrc delete mode 100644 packages/theme/.prettierrc delete mode 100644 packages/theme/build.ts delete mode 100644 packages/theme/index.d.ts delete mode 100644 packages/theme/package.json delete mode 100644 packages/theme/src/dark/codeblock.css delete mode 100644 packages/theme/src/dark/index.ts delete mode 100644 packages/theme/src/light/codeblock.css delete mode 100644 packages/theme/src/light/index.ts delete mode 100644 packages/theme/tsconfig.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 1b4942c..43a5317 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -38,6 +38,7 @@ "inqling", "Jimin", "katex", + "kunukn", "Librewolf", "linaria", "nodedotjs", @@ -63,7 +64,8 @@ "wbtimeline", "webassembly", "wouter", - "YYYYMMDD" + "YYYYMMDD", + "zustand" ], "eslint.workingDirectories": [{ "mode": "auto" }], "eslint.validate": ["javascript", "typescript", "svelte"], @@ -82,5 +84,6 @@ }, "[xml]": { "editor.defaultFormatter": "redhat.vscode-xml" - } + }, + "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 78f324a..5190bce 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,10 +14,9 @@ - `blog` - https://blog.developomp.com - `portfolio` - https://portfolio.developomp.com - `packages` - shared stuff used across different packages - - `content` - Contents for the blog + - `content` - Shared content - `eslint-config` - ESLint configuration files - - `tailwind-config` -tailwindCSS configuration files - - `theme` - universal developomp theme + - `tailwind-config` -tailwind configuration with pomp-specific extensions ## Setting Up diff --git a/apps/blog/.eslintignore b/apps/blog/.eslintignore new file mode 100644 index 0000000..3d2bc62 --- /dev/null +++ b/apps/blog/.eslintignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/apps/blog/.eslintrc b/apps/blog/.eslintrc deleted file mode 100644 index 2e08ede..0000000 --- a/apps/blog/.eslintrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "root": true, - "extends": ["@developomp-site/eslint-config", "plugin:react/recommended"], - "settings": { - "react": { - "version": "detect" - } - }, - "rules": { - "react/react-in-jsx-scope": "off" - } -} diff --git a/apps/blog/.eslintrc.cjs b/apps/blog/.eslintrc.cjs new file mode 100644 index 0000000..f0402bd --- /dev/null +++ b/apps/blog/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + "plugin:react-hooks/recommended", + "@developomp-site/eslint-config", + ], + parserOptions: { ecmaVersion: "latest", sourceType: "module" }, + plugins: ["react-refresh"], + rules: { + "react-refresh/only-export-components": "warn", + "react-hooks/exhaustive-deps": "off", + }, +} diff --git a/apps/blog/.gitignore b/apps/blog/.gitignore index 880ad67..a547bf3 100644 --- a/apps/blog/.gitignore +++ b/apps/blog/.gitignore @@ -1,176 +1,24 @@ -# auto generated files -/src/data/** -!/src/data/NavbarData.tsx -/public/img/skills.svg -/public/img/projects.svg - -# production -build/ - -# Created by https://www.toptal.com/developers/gitignore/api/firebase,node,git,visualstudiocode -# Edit at https://www.toptal.com/developers/gitignore?templates=firebase,node,git,visualstudiocode - -### Firebase ### -.idea -**/node_modules/* -**/.firebaserc - -### Firebase Patch ### -.runtimeconfig.json -.firebase/ - -### Git ### -# Created by git for backups. To disable backups in Git: -# $ git config --global mergetool.keepBackup false -*.orig - -# Created by git when using merge tools for conflicts -*.BACKUP.* -*.BASE.* -*.LOCAL.* -*.REMOTE.* -*_BACKUP_*.txt -*_BASE_*.txt -*_LOCAL_*.txt -*_REMOTE_*.txt - -### Node ### # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* +pnpm-debug.log* lerna-debug.log* -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test -.env*.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt +node_modules dist +dist-ssr +*.local -# Storybook build outputs -.out -.storybook-out -storybook-static - -# rollup.js default build output -dist/ - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# Temporary folders -tmp/ -temp/ - -### VisualStudioCode ### +# Editor directories and files .vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json !.vscode/extensions.json -*.code-workspace - -### VisualStudioCode Patch ### -# Ignore all local history of files -.history -.ionide - -# End of https://www.toptal.com/developers/gitignore/api/firebase,node,git,visualstudiocode +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/apps/blog/index.html b/apps/blog/index.html new file mode 100644 index 0000000..9085fac --- /dev/null +++ b/apps/blog/index.html @@ -0,0 +1,36 @@ + + + + + + + + + pomp's blog + + + + + + + + + + + + +
+ + + diff --git a/apps/blog/package.json b/apps/blog/package.json index 565b820..b337ce8 100644 --- a/apps/blog/package.json +++ b/apps/blog/package.json @@ -2,76 +2,48 @@ "name": "@developomp-site/blog", "version": "0.0.0", "private": true, + "type": "module", "scripts": { - "cp": "cp -a ../../packages/content/dist/public/. ./public", - "dev": "pnpm cp && react-scripts start", - "build": "pnpm cp && react-scripts build", + "dev": "vite", + "build": "vite build", "lint": "eslint .", - "preview": "vite serve build --open --port 3000", + "preview": "vite preview", "clean": "rm -rf .turbo build node_modules" }, "dependencies": { "@developomp-site/content": "workspace:*", - "@developomp-site/theme": "workspace:*", "@fontsource/noto-sans-kr": "^5.0.3", "@fontsource/source-code-pro": "^5.0.3", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/free-brands-svg-icons": "^6.2.1", - "@fortawesome/free-regular-svg-icons": "^6.2.1", - "@fortawesome/free-solid-svg-icons": "^6.2.1", + "@fortawesome/free-brands-svg-icons": "^6.4.0", + "@fortawesome/free-solid-svg-icons": "^6.4.0", "@fortawesome/react-fontawesome": "^0.2.0", - "elasticlunr": "^0.9.5", - "highlight.js": "^11.7.0", + "@kunukn/react-collapse": "^2.2.10", + "highlight.js": "^11.8.0", "hoofd": "^1.7.0", - "katex": "^0.16.4", - "local-storage-fallback": "^4.1.2", + "katex": "^0.16.8", "react": "^18.2.0", - "react-collapse": "^5.1.1", - "react-date-range": "^1.4.0", - "react-device-detect": "^2.2.2", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", "react-dom": "^18.2.0", - "react-router-dom": "^6.4.5", - "react-scripts": "^5.0.1", - "react-select": "^5.7.0", - "react-tooltip": "^4.5.1", - "styled-components": "^5.3.6" + "wouter": "^2.11.0", + "zustand": "^4.3.9" }, "devDependencies": { "@developomp-site/eslint-config": "workspace:*", - "@styled/typescript-styled-plugin": "^1.0.0", - "@types/elasticlunr": "^0.9.5", + "@developomp-site/tailwind-config": "workspace:*", "@types/highlight.js": "^10.1.0", - "@types/jsdom": "^20.0.1", "@types/katex": "^0.14.0", - "@types/node": "^18.11.11", - "@types/react": "^18.0.26", + "@types/react": "^18.0.37", "@types/react-collapse": "^5.0.1", - "@types/react-date-range": "^1.4.4", - "@types/react-dom": "^18.0.9", - "@types/react-select": "^5.0.1", - "@types/styled-components": "^5.1.26", - "eslint": "^8.43.0", - "eslint-plugin-react": "^7.32.2", - "jsdom": "^20.0.3", - "prettier": "^2.8.1", + "@types/react-dom": "^18.0.11", + "@typescript-eslint/eslint-plugin": "^5.59.0", + "@typescript-eslint/parser": "^5.59.0", + "@vitejs/plugin-react": "^4.0.0", + "eslint": "^8.38.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.3.4", "prettier-plugin-tailwindcss": "^0.3.0", - "simple-icons": "^7.21.0", - "tslint-config-prettier": "^1.18.0", - "typescript": "^4.9.4", - "vite": "^4.3.9" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] + "tailwindcss": "^3.3.2", + "typescript": "^5.0.4", + "vite": "^4.3.9", + "vite-plugin-dynamic-import": "^1.4.1" } } diff --git a/apps/blog/postcss.config.js b/apps/blog/postcss.config.js new file mode 100644 index 0000000..d41ad63 --- /dev/null +++ b/apps/blog/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/apps/blog/public/favicon.svg b/apps/blog/public/favicon.svg new file mode 100644 index 0000000..027eade --- /dev/null +++ b/apps/blog/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/blog/public/img/nojs.avif b/apps/blog/public/img/nojs.avif new file mode 100644 index 0000000000000000000000000000000000000000..adfa49a16707f9210f16eb2eca7f1526ecea90ce GIT binary patch literal 4566 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 la^uC?*2#=JKiTP(U4I6Q11OnY^ZwZ9H?D - - - - - - - - pomp - - - - - - - - - - - -
- - diff --git a/apps/blog/src/App.tsx b/apps/blog/src/App.tsx index 91666db..eca0556 100644 --- a/apps/blog/src/App.tsx +++ b/apps/blog/src/App.tsx @@ -1,89 +1,41 @@ -import darkTheme from "@developomp-site/theme/dist/dark.json" -import lightTheme from "@developomp-site/theme/dist/light.json" -import { useMeta, useTitle, useTitleTemplate } from "hoofd" -import { useContext, useEffect, useState } from "react" -import { isIE } from "react-device-detect" -import { Route, Routes } from "react-router-dom" -import styled, { ThemeProvider } from "styled-components" +import { useTitleTemplate } from "hoofd" +import { Route, Switch } from "wouter" -import Footer from "./components/Footer" -import Header from "./components/Header" -import Loading from "./components/Loading" -import { globalContext } from "./globalContext" -import Home from "./pages/Home" -import NotFound from "./pages/NotFound" -import Page from "./pages/Page" -import Search from "./pages/Search" -import GlobalStyle from "./styles/globalStyle" - -const IENotSupported = styled.p` - margin: auto; - font-size: 2rem; - margin-top: 2rem; - text-align: center; - font-family: ${(props) => props.theme.theme.font.sansSerif}; -` - -const StyledContentContainer = styled.div` - flex: 1 1 auto; - margin-bottom: 3rem; - margin-top: 5rem; -` - -export default function App() { - const { globalState } = useContext(globalContext) - const [isLoading, setIsLoading] = useState(true) +import Footer from "@/components/Footer" +import Header from "@/components/Header" +import Loading from "@/components/Loading" +import Home from "@/pages/Home" +import NotFound from "@/pages/NotFound" +import Page from "@/pages/Page" +function App() { useTitleTemplate("pomp's blog | %s") - useTitle("Home") - useMeta({ property: "og:title", content: "Home" }) - - useEffect(() => { - // set loading to false if all fonts are loaded - // checks if document.fonts.onloadingdone is supported on the browser - if (typeof document.fonts.onloadingdone != undefined) { - document.fonts.onloadingdone = () => { - setIsLoading(false) - } - } else { - setIsLoading(false) - } - }, []) - - if (isIE) - return ( - - Internet Explorer is not supported. - - ) return ( - - - + <>
- - {isLoading ? ( - - ) : ( - - } /> - } /> - } /> - } /> - } /> - - )} - +
+ + + + + {/* + + */} + + + + + + + + + + +