diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index cc3e5527..6dedc46d 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -41,5 +41,13 @@ jobs: run: | grep '^export ' ./apps/staking/scripts/mock-build-env.sh | sed 's/export //' >> $GITHUB_ENV + - name: Set environment variables from github secrets + run: | + echo "NEXT_PUBLIC_SANITY_DATASET=${{ secrets.NEXT_PUBLIC_SANITY_DATASET }}" >> $GITHUB_ENV + echo "NEXT_PUBLIC_SANITY_PROJECT_ID=${{ secrets.NEXT_PUBLIC_SANITY_PROJECT_ID }}" >> $GITHUB_ENV + echo "SANITY_API_READ_TOKEN=${{ secrets.SANITY_API_READ_TOKEN }}" >> $GITHUB_ENV + echo "SANITY_REVALIDATE_SECRET=${{ secrets.SANITY_REVALIDATE_SECRET }}" >> $GITHUB_ENV + echo "NEXT_PUBLIC_SANITY_API_VERSION=${{ secrets.NEXT_PUBLIC_SANITY_API_VERSION }}" >> $GITHUB_ENV + - name: Run builds run: pnpm build diff --git a/apps/foundation/.env.local.template b/apps/foundation/.env.local.template new file mode 100644 index 00000000..8d09d36a --- /dev/null +++ b/apps/foundation/.env.local.template @@ -0,0 +1,6 @@ +NEXT_PUBLIC_ENV_FLAG= pick from dev, qa, stg, prd +NEXT_PUBLIC_SANITY_DATASET= +NEXT_PUBLIC_SANITY_PROJECT_ID= +SANITY_API_READ_TOKEN= +SANITY_REVALIDATE_SECRET= +NEXT_PUBLIC_SANITY_API_VERSION="2024-09-30" \ No newline at end of file diff --git a/apps/foundation/.eslintrc.js b/apps/foundation/.eslintrc.js new file mode 100644 index 00000000..e9b3e575 --- /dev/null +++ b/apps/foundation/.eslintrc.js @@ -0,0 +1,9 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + root: true, + extends: ['@session/eslint-config/next.js'], + parser: '@typescript-eslint/parser', + parserOptions: { + project: true, + }, +}; diff --git a/apps/foundation/README.md b/apps/foundation/README.md new file mode 100644 index 00000000..64dfd00d --- /dev/null +++ b/apps/foundation/README.md @@ -0,0 +1,13 @@ +# Session Technology Foundation Website + +The Session Technology Foundation Website is a [Next.js](https://nextjs.org/) app. + +## Getting Started + +You can follow the generic instructions in the root [README.md](../../README.md#getting-started) to get started. + +## Development + +Running the app requires several environment variables to be set. See the [.env.local.template](.env.local.template) +file for a list +of required variables. diff --git a/apps/foundation/app/(Sanity)/layout.tsx b/apps/foundation/app/(Sanity)/layout.tsx new file mode 100644 index 00000000..3a409094 --- /dev/null +++ b/apps/foundation/app/(Sanity)/layout.tsx @@ -0,0 +1,10 @@ +import type { ReactNode } from 'react'; +import '@session/ui/styles'; + +export default function SanityLayout({ children }: { children: ReactNode }) { + return ( + + {children} + + ); +} diff --git a/apps/foundation/app/(Sanity)/studio/[[...tool]]/Studio.tsx b/apps/foundation/app/(Sanity)/studio/[[...tool]]/Studio.tsx new file mode 100644 index 00000000..d0a38c8f --- /dev/null +++ b/apps/foundation/app/(Sanity)/studio/[[...tool]]/Studio.tsx @@ -0,0 +1,8 @@ +'use client'; + +import SanityStudio from '@session/sanity-cms/components/SanityStudio'; +import { sanityConfig } from '@/lib/sanity/sanity.config'; + +export default function Studio() { + return ; +} diff --git a/apps/foundation/app/(Sanity)/studio/[[...tool]]/page.tsx b/apps/foundation/app/(Sanity)/studio/[[...tool]]/page.tsx new file mode 100644 index 00000000..ca6a09d6 --- /dev/null +++ b/apps/foundation/app/(Sanity)/studio/[[...tool]]/page.tsx @@ -0,0 +1,7 @@ +import { Loading } from '@session/ui/components/loading'; +import { SanityStudioSSRPage } from '@session/sanity-cms/components/SanityStudioSSRPage'; +import Studio from '@/app/(Sanity)/studio/[[...tool]]/Studio'; + +export default function StudioPage() { + return } suspenseFallback={} />; +} diff --git a/apps/foundation/app/(Site)/[slug]/layout.tsx b/apps/foundation/app/(Site)/[slug]/layout.tsx new file mode 100644 index 00000000..494fbaf4 --- /dev/null +++ b/apps/foundation/app/(Site)/[slug]/layout.tsx @@ -0,0 +1,13 @@ +import type { ReactNode } from 'react'; +import { Footer } from '@/components/Footer'; +import { getInitialSiteDataForSSR } from '@/lib/sanity/sanity-server'; + +export default async function UniversalPageLayout({ children }: { children: ReactNode }) { + const { settings } = await getInitialSiteDataForSSR(); + return ( + <> + {children} +