diff --git a/frontend/package.json b/frontend/package.json index e903838..5d9e442 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -16,7 +16,6 @@ "@microsoft/microsoft-graph-client": "^3.0.5", "accept-language": "^3.0.18", "gapi-script": "^1.2.0", - "goober": "^2.1.13", "hue-map": "^1.0.0", "i18next": "^22.5.0", "i18next-browser-languagedetector": "^7.0.1", diff --git a/frontend/src/app/create/Redirect.tsx b/frontend/src/app/create/Redirect.tsx new file mode 100644 index 0000000..a8c2a7c --- /dev/null +++ b/frontend/src/app/create/Redirect.tsx @@ -0,0 +1,19 @@ +'use client' + +import { useEffect } from 'react' +import { useRouter } from 'next/navigation' + +/** Check if the current page is running in an iframe, otherwise redirect home */ +const Redirect = () => { + const router = useRouter() + + useEffect(() => { + if (window.self === window.top) { + router.replace('/') + } + }, []) + + return null +} + +export default Redirect diff --git a/frontend/src/app/create/page.tsx b/frontend/src/app/create/page.tsx new file mode 100644 index 0000000..aff8856 --- /dev/null +++ b/frontend/src/app/create/page.tsx @@ -0,0 +1,29 @@ +import { Metadata } from 'next' + +import Content from '/src/components/Content/Content' +import CreateForm from '/src/components/CreateForm/CreateForm' +import Header from '/src/components/Header/Header' + +import Redirect from './Redirect' + +export const metadata: Metadata = { + title: 'Create a Crab Fit', +} + +/** + * Used in the Crab Fit browser extension, to be rendered only in an iframe + */ +const Page = async () => <> + + {/* @ts-expect-error Async Server Component */} +
+ + + + + + + + + +export default Page diff --git a/frontend/src/app/how-to/page.tsx b/frontend/src/app/how-to/page.tsx index 2f36355..1f502dd 100644 --- a/frontend/src/app/how-to/page.tsx +++ b/frontend/src/app/how-to/page.tsx @@ -6,6 +6,7 @@ import { range, rotateArray } from '@giraugh/tools' import AvailabilityViewer from '/src/components/AvailabilityViewer/AvailabilityViewer' import Button from '/src/components/Button/Button' import Content from '/src/components/Content/Content' +import Footer from '/src/components/Footer/Footer' import Header from '/src/components/Header/Header' import { P } from '/src/components/Paragraph/Text' import Section from '/src/components/Section/Section' @@ -80,6 +81,9 @@ const Page = async () => { + + {/* @ts-expect-error Async Server Component */} +