diff --git a/packages/freesewing.dev/components/footer.js b/packages/freesewing.dev/components/footer.js new file mode 100644 index 00000000000..f04a7cbbb7d --- /dev/null +++ b/packages/freesewing.dev/components/footer.js @@ -0,0 +1,13 @@ +const Footer = ({ app }) => { + return ( + + ) +} + +export default Footer diff --git a/packages/freesewing.dev/components/header.js b/packages/freesewing.dev/components/header.js index 20bcb86e6a2..51847ee40c2 100644 --- a/packages/freesewing.dev/components/header.js +++ b/packages/freesewing.dev/components/header.js @@ -13,22 +13,22 @@ const Header = ({ app }) => { return (
- +
) } diff --git a/packages/freesewing.dev/hooks/useApp.js b/packages/freesewing.dev/hooks/useApp.js index 3fd010585f7..3c1b00b821b 100644 --- a/packages/freesewing.dev/hooks/useApp.js +++ b/packages/freesewing.dev/hooks/useApp.js @@ -22,6 +22,7 @@ function useApp(full = true) { const [primaryMenu, setPrimaryMenu] = useState(false) const [navigation, setNavigation] = useState(prebuildNavigation[language]) const [slug, setSlug] = useState('/') + const [loading, setLoading] = useState(false) // State methods const togglePrimaryMenu = () => setPrimaryMenu(!primaryMenu) @@ -56,6 +57,7 @@ function useApp(full = true) { // State language, + loading, navigation, primaryMenu, slug, @@ -63,10 +65,13 @@ function useApp(full = true) { // State setters setLanguage, + setLoading, setNavigation, setPrimaryMenu, setSlug, setTheme, + startLoading: () => setLoading(true), + stopLoading: () => setLoading(false), // State handlers togglePrimaryMenu, diff --git a/packages/freesewing.dev/pages/index.js b/packages/freesewing.dev/pages/index.js index 11347a13e2a..5d2afbc6591 100644 --- a/packages/freesewing.dev/pages/index.js +++ b/packages/freesewing.dev/pages/index.js @@ -8,6 +8,7 @@ export default (props) => { +
test
) } diff --git a/packages/freesewing.shared/components/layouts/default.js b/packages/freesewing.shared/components/layouts/default.js index 4ef6842b996..ddc8abf3a5e 100644 --- a/packages/freesewing.shared/components/layouts/default.js +++ b/packages/freesewing.shared/components/layouts/default.js @@ -7,6 +7,7 @@ import PrimaryNavigation from 'shared/components/navigation/primary' import get from 'lodash.get' // Site components import Header from 'site/components/header' +import Footer from 'site/components/footer' const iconSize= 48 @@ -61,6 +62,8 @@ const Breadcrumbs = ({ app, slug=false, title }) => { const DefaultLayout = ({ app, title=false, children=[]}) => { const router = useRouter() + router?.events?.on('routeChangeStart', () => app.startLoading()) + router?.events?.on('routeChangeComplete', () => app.stopLoading()) const slug = router.asPath.slice(1) const [leftNav, setLeftNav] = useState(false) @@ -71,9 +74,12 @@ const DefaultLayout = ({ app, title=false, children=[]}) => { flex flex-col justify-between min-h-screen bg-base-100 - lg:py-8 `} data-theme={app.theme}>
+
{ {children}
- +