diff --git a/next.config.js b/next.config.js index b43512370..53857a977 100644 --- a/next.config.js +++ b/next.config.js @@ -35,6 +35,11 @@ module.exports = { }, async redirects () { return [ + { + source: '/map', + destination: '/maps', + permanent: true + }, { source: '/areas/:uuid', destination: '/area/:uuid/', diff --git a/package.json b/package.json index 30f528cdc..3ad0f63ff 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "@turf/bbox": "^6.5.0", "@turf/line-to-polygon": "^6.5.0", "@udecode/zustood": "^1.1.3", + "@vercel/edge": "^1.1.1", "auth0": "^2.42.0", "awesome-debounce-promise": "^2.1.0", "aws-sdk": "^2.1265.0", diff --git a/src/app/area/[[...slug]]/loading.tsx b/src/app/(default)/area/[[...slug]]/loading.tsx similarity index 61% rename from src/app/area/[[...slug]]/loading.tsx rename to src/app/(default)/area/[[...slug]]/loading.tsx index e56d4d39b..229609270 100644 --- a/src/app/area/[[...slug]]/loading.tsx +++ b/src/app/(default)/area/[[...slug]]/loading.tsx @@ -1,4 +1,4 @@ -import { AreaPageContainer } from '@/app/components/ui/AreaPageContainer' +import { AreaPageContainer } from '@/app/(default)/components/ui/AreaPageContainer' /** * Loading skeleton for /area/ page. diff --git a/src/app/area/[[...slug]]/page.tsx b/src/app/(default)/area/[[...slug]]/page.tsx similarity index 97% rename from src/app/area/[[...slug]]/page.tsx rename to src/app/(default)/area/[[...slug]]/page.tsx index c3f1acd39..eda0061f8 100644 --- a/src/app/area/[[...slug]]/page.tsx +++ b/src/app/(default)/area/[[...slug]]/page.tsx @@ -8,12 +8,12 @@ import Markdown from 'react-markdown' import PhotoMontage, { UploadPhotoCTA } from '@/components/media/PhotoMontage' import { getArea } from '@/js/graphql/getArea' -import { StickyHeaderContainer } from '@/app/components/ui/StickyHeaderContainer' +import { StickyHeaderContainer } from '@/app/(default)/components/ui/StickyHeaderContainer' import { AreaCrumbs } from '@/components/breadcrumbs/AreaCrumbs' import { ArticleLastUpdate } from '@/components/edit/ArticleLastUpdate' import { getMapHref, getFriendlySlug, getAreaPageFriendlyUrl, sanitizeName } from '@/js/utils' import { LazyAreaMap } from '@/components/maps/AreaMap' -import { AreaPageContainer } from '@/app/components/ui/AreaPageContainer' +import { AreaPageContainer } from '@/app/(default)/components/ui/AreaPageContainer' import { AreaPageActions } from '../../components/AreaPageActions' import { SubAreasSection } from './sections/SubAreasSection' import { ClimbListSection } from './sections/ClimbListSection' diff --git a/src/app/area/[[...slug]]/sections/ClimbListSection.tsx b/src/app/(default)/area/[[...slug]]/sections/ClimbListSection.tsx similarity index 91% rename from src/app/area/[[...slug]]/sections/ClimbListSection.tsx rename to src/app/(default)/area/[[...slug]]/sections/ClimbListSection.tsx index 9c4ae1ec8..af07cebcc 100644 --- a/src/app/area/[[...slug]]/sections/ClimbListSection.tsx +++ b/src/app/(default)/area/[[...slug]]/sections/ClimbListSection.tsx @@ -1,4 +1,4 @@ -import { ClimbList } from '@/app/editArea/[slug]/general/components/climb/ClimbListForm' +import { ClimbList } from '@/app/(default)/editArea/[slug]/general/components/climb/ClimbListForm' import { AreaType } from '@/js/types' /** * Climb list section diff --git a/src/app/area/[[...slug]]/sections/SubAreasSection.tsx b/src/app/(default)/area/[[...slug]]/sections/SubAreasSection.tsx similarity index 91% rename from src/app/area/[[...slug]]/sections/SubAreasSection.tsx rename to src/app/(default)/area/[[...slug]]/sections/SubAreasSection.tsx index 483d01825..bf0283093 100644 --- a/src/app/area/[[...slug]]/sections/SubAreasSection.tsx +++ b/src/app/(default)/area/[[...slug]]/sections/SubAreasSection.tsx @@ -1,6 +1,6 @@ import Link from 'next/link' import { PlusSquare } from '@phosphor-icons/react/dist/ssr' -import { AreaList } from 'app/editArea/[slug]/general/components/AreaList' +import { AreaList } from '@/app/(default)/editArea/[slug]/general/components/AreaList' import { AreaEntityBullet } from '@/components/cues/Entities' import { AreaType } from '@/js/types' diff --git a/src/app/components/AreaPageActions.tsx b/src/app/(default)/components/AreaPageActions.tsx similarity index 92% rename from src/app/components/AreaPageActions.tsx rename to src/app/(default)/components/AreaPageActions.tsx index c05dc21f9..3a4e9dde1 100644 --- a/src/app/components/AreaPageActions.tsx +++ b/src/app/(default)/components/AreaPageActions.tsx @@ -1,6 +1,6 @@ import Link from 'next/link' import { PencilSimple, ArrowElbowLeftDown } from '@phosphor-icons/react/dist/ssr' -import { ShareAreaLinkButton } from '@/app/components/ShareAreaLinkButton' +import { ShareAreaLinkButton } from '@/app/(default)/components/ShareAreaLinkButton' import { UploadPhotoButton } from '@/components/media/PhotoUploadButtons' /** diff --git a/src/app/components/DesktopHeader.tsx b/src/app/(default)/components/DesktopHeader.tsx similarity index 90% rename from src/app/components/DesktopHeader.tsx rename to src/app/(default)/components/DesktopHeader.tsx index b3994381c..459707c20 100644 --- a/src/app/components/DesktopHeader.tsx +++ b/src/app/(default)/components/DesktopHeader.tsx @@ -1,11 +1,11 @@ 'use client' import { signIn, useSession } from 'next-auth/react' -import { Logo } from 'app/header' +import { Logo } from '../header' import { XSearchMinimal } from '@/components/search/XSearch' import { NavMenuItem, NavMenuItemProps } from '@/components/ui/NavMenuButton' import GitHubStars from '@/components/GitHubStars' -import ProfileNavButton from './ProfileNavButton' +import AuthenticatedProfileNavButton from '../../../components/AuthenticatedProfileNavButton' export const DesktopHeader: React.FC = () => { const { status } = useSession() @@ -56,7 +56,7 @@ export const DesktopHeader: React.FC = () => { let nav switch (status) { case 'authenticated': - nav = + nav = break case 'loading': nav = ( diff --git a/src/app/components/FinancialContributors.tsx b/src/app/(default)/components/FinancialContributors.tsx similarity index 100% rename from src/app/components/FinancialContributors.tsx rename to src/app/(default)/components/FinancialContributors.tsx diff --git a/src/app/components/InternationalToC.tsx b/src/app/(default)/components/InternationalToC.tsx similarity index 100% rename from src/app/components/InternationalToC.tsx rename to src/app/(default)/components/InternationalToC.tsx diff --git a/src/app/components/LandingCTA.tsx b/src/app/(default)/components/LandingCTA.tsx similarity index 100% rename from src/app/components/LandingCTA.tsx rename to src/app/(default)/components/LandingCTA.tsx diff --git a/src/app/(default)/components/LandingHero.tsx b/src/app/(default)/components/LandingHero.tsx new file mode 100644 index 000000000..ec1c1813b --- /dev/null +++ b/src/app/(default)/components/LandingHero.tsx @@ -0,0 +1,21 @@ +import { ArrowRight } from '@phosphor-icons/react/dist/ssr' + +export const LandingHero: React.FC = () => { + return ( +
+

Share your climbing route knowledge!

+
+ Join us to help improve this comprehensive climbing resource for the community. +
+
+ +
+
+ ) +} + +export const HeroAlert: React.FC = () => ( +
+ NEW + Crag maps +
) diff --git a/src/app/components/LatestContributions.tsx b/src/app/(default)/components/LatestContributions.tsx similarity index 100% rename from src/app/components/LatestContributions.tsx rename to src/app/(default)/components/LatestContributions.tsx diff --git a/src/app/components/LoginButton.tsx b/src/app/(default)/components/LoginButton.tsx similarity index 100% rename from src/app/components/LoginButton.tsx rename to src/app/(default)/components/LoginButton.tsx diff --git a/src/app/components/MobileHeader.tsx b/src/app/(default)/components/MobileHeader.tsx similarity index 67% rename from src/app/components/MobileHeader.tsx rename to src/app/(default)/components/MobileHeader.tsx index ae25b868a..08bb22739 100644 --- a/src/app/components/MobileHeader.tsx +++ b/src/app/(default)/components/MobileHeader.tsx @@ -1,16 +1,16 @@ 'use client' import { useSession } from 'next-auth/react' -import { Logo } from 'app/header' +import { Logo } from '../header' import { XSearchMinimal } from '@/components/search/XSearch' import { LoginButton, More } from '@/components/MobileAppBar' -import ProfileNavButton from './ProfileNavButton' +import AuthenticatedProfileNavButton from '../../../components/AuthenticatedProfileNavButton' /** * Main header for mobile */ export const MobileHeader: React.FC = () => { const { status } = useSession() - const nav = status === 'authenticated' ? : + const nav = status === 'authenticated' ? : return (
diff --git a/src/app/components/PageFooter.tsx b/src/app/(default)/components/PageFooter.tsx similarity index 94% rename from src/app/components/PageFooter.tsx rename to src/app/(default)/components/PageFooter.tsx index ead279311..a971b1334 100644 --- a/src/app/components/PageFooter.tsx +++ b/src/app/(default)/components/PageFooter.tsx @@ -1,10 +1,10 @@ -import { Logo, LogoSize } from 'app/header' +import { Logo, LogoSize } from '../header' /** * Page footer */ export const PageFooter: React.FC = () => { return ( -