From bc6a3fc0c73ff5846bf1bbbb0952b212cf0a2087 Mon Sep 17 00:00:00 2001 From: Sang Dang Date: Fri, 8 Dec 2023 13:03:45 +0200 Subject: [PATCH 1/3] removed all the locale --- .env.example | 9 +- .github/workflows/code-checking.yaml | 6 +- .github/workflows/prisma-preview.yaml | 5 +- .github/workflows/prisma-production.yaml | 5 +- app/{[locale] => }/(auth)/error.tsx | 0 .../ForgotPasswordForm/index.tsx | 0 .../confirm-email/Status/index.tsx | 0 .../forgot-password/confirm-email/loading.tsx | 0 .../forgot-password/confirm-email/page.tsx | 10 +- .../(auth)/forgot-password/loading.tsx | 0 .../(auth)/forgot-password/page.tsx | 0 .../UpdatePasswordForm/index.tsx | 0 .../update-password/loading.tsx | 0 .../forgot-password/update-password/page.tsx | 0 app/{[locale] => }/(auth)/layout.tsx | 0 .../(auth)/login/LoginForm/index.tsx | 0 app/{[locale] => }/(auth)/login/loading.tsx | 0 app/{[locale] => }/(auth)/login/page.tsx | 0 .../(auth)/signup/SignUpForm/index.tsx | 0 app/{[locale] => }/(auth)/signup/loading.tsx | 0 app/{[locale] => }/(auth)/signup/page.tsx | 0 app/{[locale] => }/(custom)/[slug]/page.tsx | 16 +- .../(custom)/about-us/Content/index.tsx | 0 app/{[locale] => }/(custom)/about-us/page.tsx | 0 .../edit/BlogEditForm/ButtonCreatePost.tsx | 0 .../blog/[slug]/edit/BlogEditForm/index.tsx | 2 - .../(custom)/blog/[slug]/edit/page.tsx | 0 .../(custom)/blog/[slug]/page.tsx | 0 app/{[locale] => }/(custom)/blog/page.tsx | 9 +- .../(custom)/blog/post-management/page.tsx | 8 +- app/{[locale] => }/(custom)/contact/page.tsx | 0 app/{[locale] => }/(custom)/error.tsx | 0 app/{[locale] => }/(custom)/home/page.tsx | 0 app/{[locale] => }/(custom)/layout.tsx | 10 +- app/{[locale] => }/(custom)/loading.tsx | 0 app/(custom)/page.tsx | 10 + .../(custom)/protected/page.tsx | 0 .../(default)/dashboard/files/loading.tsx | 0 .../(default)/dashboard/files/page.tsx | 0 .../(default)/dashboard/loading.tsx | 0 .../(default)/dashboard/page.tsx | 0 .../dashboard/pages/[id]/advanced/page.tsx | 0 .../(default)/dashboard/pages/[id]/layout.tsx | 10 +- .../(default)/dashboard/pages/[id]/page.tsx | 0 .../pages/components/BasicSEO/index.tsx | 0 .../components/PageForm/DeleteSection.tsx | 0 .../pages/components/PageForm/index.tsx | 31 +- .../pages/components/PagesTable/index.tsx | 0 .../dashboard/pages/components/index.ts | 0 .../(default)/dashboard/pages/loading.tsx | 0 .../(default)/dashboard/pages/new/layout.tsx | 12 +- app/(default)/dashboard/pages/new/page.tsx | 14 + .../(default)/dashboard/pages/page.tsx | 11 +- .../(default)/dashboard/posts/[id]/page.tsx | 0 .../components/PostForm/DeleteSection.tsx | 0 .../posts/components/PostForm/index.tsx | 86 +-- .../posts/components/PostsTable/index.tsx | 0 .../dashboard/posts/components/index.ts | 0 .../(default)/dashboard/posts/loading.tsx | 0 .../(default)/dashboard/posts/new/page.tsx | 0 .../(default)/dashboard/posts/page.tsx | 10 +- app/{[locale] => }/(default)/error.tsx | 0 app/{[locale] => }/(default)/layout.tsx | 8 +- app/{[locale] => }/(default)/loading.tsx | 0 .../(default)/settings/loading.tsx | 0 .../(default)/settings/page.tsx | 0 app/[locale]/(custom)/page.tsx | 19 - .../pages/components/Translations/index.tsx | 76 --- .../(default)/dashboard/pages/new/page.tsx | 29 - app/[locale]/layout.tsx | 33 -- app/api/pages/[id]/route.ts | 7 +- app/layout.tsx | 24 + app/{[locale] => }/loading.tsx | 0 .../{Providers => ClientProviders}/index.tsx | 2 +- components/client/CookiesProvider/index.tsx | 7 - components/client/LocaleSwitcher/index.tsx | 68 --- components/client/NextLink/index.tsx | 1 - components/client/index.ts | 3 - configs/i18n.config.ts | 7 - dictionaries/en.json | 22 - dictionaries/vi.json | 19 - hooks/index.ts | 1 - hooks/use-locale.ts | 12 - middleware.ts | 69 +-- package.json | 55 +- pnpm-lock.yaml | 544 +++++++++--------- prisma/migrations/0_init/migration.sql | 178 ------ .../20231023075632_add_site_id/migration.sql | 14 - prisma/migrations/migration_lock.toml | 3 - prisma/schema.prisma | 67 +-- services/pages.ts | 2 +- services/posts.ts | 2 +- types/global.ts | 86 --- types/index.ts | 20 +- utils/constants.ts | 1 - utils/dictionary.ts | 16 - utils/redirectedPathLocale.ts | 16 - 97 files changed, 444 insertions(+), 1231 deletions(-) rename app/{[locale] => }/(auth)/error.tsx (100%) rename app/{[locale] => }/(auth)/forgot-password/ForgotPasswordForm/index.tsx (100%) rename app/{[locale] => }/(auth)/forgot-password/confirm-email/Status/index.tsx (100%) rename app/{[locale] => }/(auth)/forgot-password/confirm-email/loading.tsx (100%) rename app/{[locale] => }/(auth)/forgot-password/confirm-email/page.tsx (95%) rename app/{[locale] => }/(auth)/forgot-password/loading.tsx (100%) rename app/{[locale] => }/(auth)/forgot-password/page.tsx (100%) rename app/{[locale] => }/(auth)/forgot-password/update-password/UpdatePasswordForm/index.tsx (100%) rename app/{[locale] => }/(auth)/forgot-password/update-password/loading.tsx (100%) rename app/{[locale] => }/(auth)/forgot-password/update-password/page.tsx (100%) rename app/{[locale] => }/(auth)/layout.tsx (100%) rename app/{[locale] => }/(auth)/login/LoginForm/index.tsx (100%) rename app/{[locale] => }/(auth)/login/loading.tsx (100%) rename app/{[locale] => }/(auth)/login/page.tsx (100%) rename app/{[locale] => }/(auth)/signup/SignUpForm/index.tsx (100%) rename app/{[locale] => }/(auth)/signup/loading.tsx (100%) rename app/{[locale] => }/(auth)/signup/page.tsx (100%) rename app/{[locale] => }/(custom)/[slug]/page.tsx (60%) rename app/{[locale] => }/(custom)/about-us/Content/index.tsx (100%) rename app/{[locale] => }/(custom)/about-us/page.tsx (100%) rename app/{[locale] => }/(custom)/blog/[slug]/edit/BlogEditForm/ButtonCreatePost.tsx (100%) rename app/{[locale] => }/(custom)/blog/[slug]/edit/BlogEditForm/index.tsx (99%) rename app/{[locale] => }/(custom)/blog/[slug]/edit/page.tsx (100%) rename app/{[locale] => }/(custom)/blog/[slug]/page.tsx (100%) rename app/{[locale] => }/(custom)/blog/page.tsx (78%) rename app/{[locale] => }/(custom)/blog/post-management/page.tsx (98%) rename app/{[locale] => }/(custom)/contact/page.tsx (100%) rename app/{[locale] => }/(custom)/error.tsx (100%) rename app/{[locale] => }/(custom)/home/page.tsx (100%) rename app/{[locale] => }/(custom)/layout.tsx (67%) rename app/{[locale] => }/(custom)/loading.tsx (100%) create mode 100644 app/(custom)/page.tsx rename app/{[locale] => }/(custom)/protected/page.tsx (100%) rename app/{[locale] => }/(default)/dashboard/files/loading.tsx (100%) rename app/{[locale] => }/(default)/dashboard/files/page.tsx (100%) rename app/{[locale] => }/(default)/dashboard/loading.tsx (100%) rename app/{[locale] => }/(default)/dashboard/page.tsx (100%) rename app/{[locale] => }/(default)/dashboard/pages/[id]/advanced/page.tsx (100%) rename app/{[locale] => }/(default)/dashboard/pages/[id]/layout.tsx (77%) rename app/{[locale] => }/(default)/dashboard/pages/[id]/page.tsx (100%) rename app/{[locale] => }/(default)/dashboard/pages/components/BasicSEO/index.tsx (100%) rename app/{[locale] => }/(default)/dashboard/pages/components/PageForm/DeleteSection.tsx (100%) rename app/{[locale] => }/(default)/dashboard/pages/components/PageForm/index.tsx (87%) rename app/{[locale] => }/(default)/dashboard/pages/components/PagesTable/index.tsx (100%) rename app/{[locale] => }/(default)/dashboard/pages/components/index.ts (100%) rename app/{[locale] => }/(default)/dashboard/pages/loading.tsx (100%) rename app/{[locale] => }/(default)/dashboard/pages/new/layout.tsx (71%) create mode 100644 app/(default)/dashboard/pages/new/page.tsx rename app/{[locale] => }/(default)/dashboard/pages/page.tsx (77%) rename app/{[locale] => }/(default)/dashboard/posts/[id]/page.tsx (100%) rename app/{[locale] => }/(default)/dashboard/posts/components/PostForm/DeleteSection.tsx (100%) rename app/{[locale] => }/(default)/dashboard/posts/components/PostForm/index.tsx (67%) rename app/{[locale] => }/(default)/dashboard/posts/components/PostsTable/index.tsx (100%) rename app/{[locale] => }/(default)/dashboard/posts/components/index.ts (100%) rename app/{[locale] => }/(default)/dashboard/posts/loading.tsx (100%) rename app/{[locale] => }/(default)/dashboard/posts/new/page.tsx (100%) rename app/{[locale] => }/(default)/dashboard/posts/page.tsx (82%) rename app/{[locale] => }/(default)/error.tsx (100%) rename app/{[locale] => }/(default)/layout.tsx (74%) rename app/{[locale] => }/(default)/loading.tsx (100%) rename app/{[locale] => }/(default)/settings/loading.tsx (100%) rename app/{[locale] => }/(default)/settings/page.tsx (100%) delete mode 100644 app/[locale]/(custom)/page.tsx delete mode 100644 app/[locale]/(default)/dashboard/pages/components/Translations/index.tsx delete mode 100644 app/[locale]/(default)/dashboard/pages/new/page.tsx delete mode 100644 app/[locale]/layout.tsx create mode 100644 app/layout.tsx rename app/{[locale] => }/loading.tsx (100%) rename components/client/{Providers => ClientProviders}/index.tsx (90%) delete mode 100644 components/client/CookiesProvider/index.tsx delete mode 100644 components/client/LocaleSwitcher/index.tsx delete mode 100644 configs/i18n.config.ts delete mode 100644 dictionaries/en.json delete mode 100644 dictionaries/vi.json delete mode 100644 hooks/use-locale.ts delete mode 100644 prisma/migrations/0_init/migration.sql delete mode 100644 prisma/migrations/20231023075632_add_site_id/migration.sql delete mode 100644 prisma/migrations/migration_lock.toml delete mode 100644 types/global.ts delete mode 100644 utils/dictionary.ts delete mode 100644 utils/redirectedPathLocale.ts diff --git a/.env.example b/.env.example index 3237611d..8b0ac04f 100644 --- a/.env.example +++ b/.env.example @@ -2,21 +2,14 @@ ARGON_SECRET=topsecret NEXTAUTH_SECRET=topsecret NEXTAUTH_URL=http://localhost:3000 -KV_REST_API_URL= -KV_REST_API_TOKEN= - # NOTE: The DB/USER/PASSWORD need to be the same with docker-compose values POSTGRES_DB=postgres POSTGRES_USER=postgres POSTGRES_PASSWORD=password -POSTGRES_URL_NON_POOLING="${POSTGRES_URL}" -POSTGRES_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?schema=public" -POSTGRES_PRISMA_URL="${POSTGRES_URL}?pgbouncer=true&connect_timeout=15" -NEXT_PUBLIC_API_KEY_TINYMCE="" +DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?schema=public" EMAIL_SERVER_USER= # your email EMAIL_SERVER_PASSWORD= # your password EMAIL_SERVER_HOST= #smtp.gmail.com EMAIL_SERVER_PORT= #465 -SENDGRID_API_KEY= \ No newline at end of file diff --git a/.github/workflows/code-checking.yaml b/.github/workflows/code-checking.yaml index d64002e7..667e9579 100644 --- a/.github/workflows/code-checking.yaml +++ b/.github/workflows/code-checking.yaml @@ -20,7 +20,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v2 - with: + with: version: 8 - name: Setup Node.js environment @@ -33,7 +33,7 @@ jobs: run: pnpm i --frozen-lockfile - name: Linting - run: pnpm run lint + run: pnpm lint - name: Checking TypeScript - run: pnpm run typecheck \ No newline at end of file + run: pnpm typecheck diff --git a/.github/workflows/prisma-preview.yaml b/.github/workflows/prisma-preview.yaml index 8e3bd7da..ee393e55 100644 --- a/.github/workflows/prisma-preview.yaml +++ b/.github/workflows/prisma-preview.yaml @@ -39,7 +39,6 @@ jobs: run: pnpm i --frozen-lockfile - name: Deploy Migrations - run: pnpm run migrate:deploy + run: pnpm migrate deploy env: - POSTGRES_PRISMA_URL: ${{ secrets.POSTGRES_PRISMA_URL_PREVIEW }} - POSTGRES_URL_NON_POOLING: ${{ secrets.POSTGRES_URL_NON_POOLING_PREVIEW }} + DATABASE_URL: ${{ secrets.DATABASE_URL_PREVIEW }} diff --git a/.github/workflows/prisma-production.yaml b/.github/workflows/prisma-production.yaml index d5f628e1..d6c2db0b 100644 --- a/.github/workflows/prisma-production.yaml +++ b/.github/workflows/prisma-production.yaml @@ -38,7 +38,6 @@ jobs: run: pnpm i --frozen-lockfile - name: Deploy Migrations - run: pnpm run migrate:deploy + run: pnpm prisma migrate deploy env: - POSTGRES_PRISMA_URL: ${{ secrets.POSTGRES_PRISMA_URL }} - POSTGRES_URL_NON_POOLING: ${{ secrets.POSTGRES_URL_NON_POOLING }} + DATABASE_URL: ${{ secrets.DATABASE_URL }} diff --git a/app/[locale]/(auth)/error.tsx b/app/(auth)/error.tsx similarity index 100% rename from app/[locale]/(auth)/error.tsx rename to app/(auth)/error.tsx diff --git a/app/[locale]/(auth)/forgot-password/ForgotPasswordForm/index.tsx b/app/(auth)/forgot-password/ForgotPasswordForm/index.tsx similarity index 100% rename from app/[locale]/(auth)/forgot-password/ForgotPasswordForm/index.tsx rename to app/(auth)/forgot-password/ForgotPasswordForm/index.tsx diff --git a/app/[locale]/(auth)/forgot-password/confirm-email/Status/index.tsx b/app/(auth)/forgot-password/confirm-email/Status/index.tsx similarity index 100% rename from app/[locale]/(auth)/forgot-password/confirm-email/Status/index.tsx rename to app/(auth)/forgot-password/confirm-email/Status/index.tsx diff --git a/app/[locale]/(auth)/forgot-password/confirm-email/loading.tsx b/app/(auth)/forgot-password/confirm-email/loading.tsx similarity index 100% rename from app/[locale]/(auth)/forgot-password/confirm-email/loading.tsx rename to app/(auth)/forgot-password/confirm-email/loading.tsx diff --git a/app/[locale]/(auth)/forgot-password/confirm-email/page.tsx b/app/(auth)/forgot-password/confirm-email/page.tsx similarity index 95% rename from app/[locale]/(auth)/forgot-password/confirm-email/page.tsx rename to app/(auth)/forgot-password/confirm-email/page.tsx index 1c8bca58..d5cff553 100644 --- a/app/[locale]/(auth)/forgot-password/confirm-email/page.tsx +++ b/app/(auth)/forgot-password/confirm-email/page.tsx @@ -1,14 +1,12 @@ -import { redirect } from 'next/navigation'; -import { Stack } from '@/components/chakra'; +import { verifyResetPassword } from '@/services/users'; +import { HOUR_MAX_CONFIRM } from '@/utils/constants'; import { Container } from '@/components/chakra'; -import { Locale } from '@/types'; import { differenceInHours } from 'date-fns'; +import { Stack } from '@/components/chakra'; +import { redirect } from 'next/navigation'; import { Status } from './Status'; -import { verifyResetPassword } from '@/services/users'; -import { HOUR_MAX_CONFIRM } from '@/utils/constants'; type ConfirmResetPassFromEmailType = { - params: { locale: Locale }; searchParams: { code: string }; }; export default async function ConfirmResetPassFromEmail( diff --git a/app/[locale]/(auth)/forgot-password/loading.tsx b/app/(auth)/forgot-password/loading.tsx similarity index 100% rename from app/[locale]/(auth)/forgot-password/loading.tsx rename to app/(auth)/forgot-password/loading.tsx diff --git a/app/[locale]/(auth)/forgot-password/page.tsx b/app/(auth)/forgot-password/page.tsx similarity index 100% rename from app/[locale]/(auth)/forgot-password/page.tsx rename to app/(auth)/forgot-password/page.tsx diff --git a/app/[locale]/(auth)/forgot-password/update-password/UpdatePasswordForm/index.tsx b/app/(auth)/forgot-password/update-password/UpdatePasswordForm/index.tsx similarity index 100% rename from app/[locale]/(auth)/forgot-password/update-password/UpdatePasswordForm/index.tsx rename to app/(auth)/forgot-password/update-password/UpdatePasswordForm/index.tsx diff --git a/app/[locale]/(auth)/forgot-password/update-password/loading.tsx b/app/(auth)/forgot-password/update-password/loading.tsx similarity index 100% rename from app/[locale]/(auth)/forgot-password/update-password/loading.tsx rename to app/(auth)/forgot-password/update-password/loading.tsx diff --git a/app/[locale]/(auth)/forgot-password/update-password/page.tsx b/app/(auth)/forgot-password/update-password/page.tsx similarity index 100% rename from app/[locale]/(auth)/forgot-password/update-password/page.tsx rename to app/(auth)/forgot-password/update-password/page.tsx diff --git a/app/[locale]/(auth)/layout.tsx b/app/(auth)/layout.tsx similarity index 100% rename from app/[locale]/(auth)/layout.tsx rename to app/(auth)/layout.tsx diff --git a/app/[locale]/(auth)/login/LoginForm/index.tsx b/app/(auth)/login/LoginForm/index.tsx similarity index 100% rename from app/[locale]/(auth)/login/LoginForm/index.tsx rename to app/(auth)/login/LoginForm/index.tsx diff --git a/app/[locale]/(auth)/login/loading.tsx b/app/(auth)/login/loading.tsx similarity index 100% rename from app/[locale]/(auth)/login/loading.tsx rename to app/(auth)/login/loading.tsx diff --git a/app/[locale]/(auth)/login/page.tsx b/app/(auth)/login/page.tsx similarity index 100% rename from app/[locale]/(auth)/login/page.tsx rename to app/(auth)/login/page.tsx diff --git a/app/[locale]/(auth)/signup/SignUpForm/index.tsx b/app/(auth)/signup/SignUpForm/index.tsx similarity index 100% rename from app/[locale]/(auth)/signup/SignUpForm/index.tsx rename to app/(auth)/signup/SignUpForm/index.tsx diff --git a/app/[locale]/(auth)/signup/loading.tsx b/app/(auth)/signup/loading.tsx similarity index 100% rename from app/[locale]/(auth)/signup/loading.tsx rename to app/(auth)/signup/loading.tsx diff --git a/app/[locale]/(auth)/signup/page.tsx b/app/(auth)/signup/page.tsx similarity index 100% rename from app/[locale]/(auth)/signup/page.tsx rename to app/(auth)/signup/page.tsx diff --git a/app/[locale]/(custom)/[slug]/page.tsx b/app/(custom)/[slug]/page.tsx similarity index 60% rename from app/[locale]/(custom)/[slug]/page.tsx rename to app/(custom)/[slug]/page.tsx index 6cc311bb..f9377079 100644 --- a/app/[locale]/(custom)/[slug]/page.tsx +++ b/app/(custom)/[slug]/page.tsx @@ -1,26 +1,16 @@ import { Box, Container, Heading } from '@/components/chakra'; import { HTMLParser } from '@/components/client'; import { getPage } from '@/services/pages'; -import { redirect } from 'next/navigation'; export default async function DynamicPage({ - params: { slug, locale }, + params: { slug }, }: { - params: { slug: string; locale: string }; + params: { slug: string }; }) { const page = await getPage({ where: { slug } }); - const foundTranslation = page?.translatedPages.find( - (p) => p.locale === locale - ); - - if (foundTranslation?.locale === locale) { - redirect(`/${locale}/${foundTranslation.slug}`); - } else if (page?.originalPage?.locale === locale) { - redirect(`/${locale}/${page?.originalPage.slug}`); - } - if (!page) { + // TODO: Make 404 display return 'not found'; } diff --git a/app/[locale]/(custom)/about-us/Content/index.tsx b/app/(custom)/about-us/Content/index.tsx similarity index 100% rename from app/[locale]/(custom)/about-us/Content/index.tsx rename to app/(custom)/about-us/Content/index.tsx diff --git a/app/[locale]/(custom)/about-us/page.tsx b/app/(custom)/about-us/page.tsx similarity index 100% rename from app/[locale]/(custom)/about-us/page.tsx rename to app/(custom)/about-us/page.tsx diff --git a/app/[locale]/(custom)/blog/[slug]/edit/BlogEditForm/ButtonCreatePost.tsx b/app/(custom)/blog/[slug]/edit/BlogEditForm/ButtonCreatePost.tsx similarity index 100% rename from app/[locale]/(custom)/blog/[slug]/edit/BlogEditForm/ButtonCreatePost.tsx rename to app/(custom)/blog/[slug]/edit/BlogEditForm/ButtonCreatePost.tsx diff --git a/app/[locale]/(custom)/blog/[slug]/edit/BlogEditForm/index.tsx b/app/(custom)/blog/[slug]/edit/BlogEditForm/index.tsx similarity index 99% rename from app/[locale]/(custom)/blog/[slug]/edit/BlogEditForm/index.tsx rename to app/(custom)/blog/[slug]/edit/BlogEditForm/index.tsx index b66e3099..f3b430f7 100644 --- a/app/[locale]/(custom)/blog/[slug]/edit/BlogEditForm/index.tsx +++ b/app/(custom)/blog/[slug]/edit/BlogEditForm/index.tsx @@ -60,7 +60,6 @@ export default function BlogEditForm({ data }: BlogEditFormProps) { content, slug: slugify(title), publishedAt, - locale: 'VI', authorId: userID, }), }); @@ -100,7 +99,6 @@ export default function BlogEditForm({ data }: BlogEditFormProps) { content, slug: slugify(title), publishedAt, - locale: 'VI', authorId: userID, }), }); diff --git a/app/[locale]/(custom)/blog/[slug]/edit/page.tsx b/app/(custom)/blog/[slug]/edit/page.tsx similarity index 100% rename from app/[locale]/(custom)/blog/[slug]/edit/page.tsx rename to app/(custom)/blog/[slug]/edit/page.tsx diff --git a/app/[locale]/(custom)/blog/[slug]/page.tsx b/app/(custom)/blog/[slug]/page.tsx similarity index 100% rename from app/[locale]/(custom)/blog/[slug]/page.tsx rename to app/(custom)/blog/[slug]/page.tsx diff --git a/app/[locale]/(custom)/blog/page.tsx b/app/(custom)/blog/page.tsx similarity index 78% rename from app/[locale]/(custom)/blog/page.tsx rename to app/(custom)/blog/page.tsx index c7a40e07..f0ace32d 100644 --- a/app/[locale]/(custom)/blog/page.tsx +++ b/app/(custom)/blog/page.tsx @@ -1,19 +1,14 @@ import { Box, Heading, SimpleGrid, Spinner } from '@/components/chakra'; import { PostCard } from '@/components/client'; import { prisma } from '@/configs/prisma'; -import { Locale, Metadata } from '@/types'; +import { Metadata } from '@/types'; export const metadata: Metadata = { title: 'Blog', }; -export default async function BlogsPage({ - params: { locale }, -}: { - params: { locale: Locale }; -}) { +export default async function BlogsPage() { const data = await prisma?.post.findMany({ - where: { locale }, take: 25, orderBy: { createdAt: 'desc' }, }); diff --git a/app/[locale]/(custom)/blog/post-management/page.tsx b/app/(custom)/blog/post-management/page.tsx similarity index 98% rename from app/[locale]/(custom)/blog/post-management/page.tsx rename to app/(custom)/blog/post-management/page.tsx index e832e35c..0507a1d1 100644 --- a/app/[locale]/(custom)/blog/post-management/page.tsx +++ b/app/(custom)/blog/post-management/page.tsx @@ -18,10 +18,10 @@ import { } from '@/components/chakra'; import slugify from 'slugify'; import { useRouter, useSearchParams } from 'next/navigation'; -import { useSWR, useAuth, useToast } from '@/hooks'; -import { ChevronDownIcon, ChevronUpIcon } from '@/icons'; import { PostList, TextEditor } from '@/components/client'; -import type { Post } from '@/types'; +import { ChevronDownIcon, ChevronUpIcon } from '@/icons'; +import { useSWR, useAuth, useToast } from '@/hooks'; +import { Post } from '@/types'; type RequireInputType = { [key: string]: string; @@ -63,7 +63,6 @@ export default function BlogEditor() { content, slug: slugify(title), publishedAt, - locale: 'VI', authorId: userID, }), }); @@ -103,7 +102,6 @@ export default function BlogEditor() { content, slug: slugify(title), publishedAt, - locale: 'VI', authorId: userID, }), }); diff --git a/app/[locale]/(custom)/contact/page.tsx b/app/(custom)/contact/page.tsx similarity index 100% rename from app/[locale]/(custom)/contact/page.tsx rename to app/(custom)/contact/page.tsx diff --git a/app/[locale]/(custom)/error.tsx b/app/(custom)/error.tsx similarity index 100% rename from app/[locale]/(custom)/error.tsx rename to app/(custom)/error.tsx diff --git a/app/[locale]/(custom)/home/page.tsx b/app/(custom)/home/page.tsx similarity index 100% rename from app/[locale]/(custom)/home/page.tsx rename to app/(custom)/home/page.tsx diff --git a/app/[locale]/(custom)/layout.tsx b/app/(custom)/layout.tsx similarity index 67% rename from app/[locale]/(custom)/layout.tsx rename to app/(custom)/layout.tsx index be6066ea..d5209e56 100644 --- a/app/[locale]/(custom)/layout.tsx +++ b/app/(custom)/layout.tsx @@ -1,21 +1,17 @@ -import { LocaleSwitcher, Navbar } from '@/components/client'; import { Box, Container, Flex } from '@/components/chakra'; import { ProfileMenu } from '@/components/server'; -import type { ReactNode, Locale } from '@/types'; +import { Navbar } from '@/components/client'; +import { ReactNode } from '@/types'; export default async function CustomLayout({ children, }: { children: ReactNode; - params: { locale: Locale }; }) { return ( - - - - + +
+

Ninjustsu Stack

+

The stack that uses Chakra

+
+ + ); +} diff --git a/app/[locale]/(custom)/protected/page.tsx b/app/(custom)/protected/page.tsx similarity index 100% rename from app/[locale]/(custom)/protected/page.tsx rename to app/(custom)/protected/page.tsx diff --git a/app/[locale]/(default)/dashboard/files/loading.tsx b/app/(default)/dashboard/files/loading.tsx similarity index 100% rename from app/[locale]/(default)/dashboard/files/loading.tsx rename to app/(default)/dashboard/files/loading.tsx diff --git a/app/[locale]/(default)/dashboard/files/page.tsx b/app/(default)/dashboard/files/page.tsx similarity index 100% rename from app/[locale]/(default)/dashboard/files/page.tsx rename to app/(default)/dashboard/files/page.tsx diff --git a/app/[locale]/(default)/dashboard/loading.tsx b/app/(default)/dashboard/loading.tsx similarity index 100% rename from app/[locale]/(default)/dashboard/loading.tsx rename to app/(default)/dashboard/loading.tsx diff --git a/app/[locale]/(default)/dashboard/page.tsx b/app/(default)/dashboard/page.tsx similarity index 100% rename from app/[locale]/(default)/dashboard/page.tsx rename to app/(default)/dashboard/page.tsx diff --git a/app/[locale]/(default)/dashboard/pages/[id]/advanced/page.tsx b/app/(default)/dashboard/pages/[id]/advanced/page.tsx similarity index 100% rename from app/[locale]/(default)/dashboard/pages/[id]/advanced/page.tsx rename to app/(default)/dashboard/pages/[id]/advanced/page.tsx diff --git a/app/[locale]/(default)/dashboard/pages/[id]/layout.tsx b/app/(default)/dashboard/pages/[id]/layout.tsx similarity index 77% rename from app/[locale]/(default)/dashboard/pages/[id]/layout.tsx rename to app/(default)/dashboard/pages/[id]/layout.tsx index bb2e347f..bba1bdba 100644 --- a/app/[locale]/(default)/dashboard/pages/[id]/layout.tsx +++ b/app/(default)/dashboard/pages/[id]/layout.tsx @@ -1,16 +1,14 @@ import { GoBackButton, SettingNav } from '@/components/client'; import { Box, Flex } from '@/components/chakra'; -import type { ReactNode, Locale } from '@/types'; - -import { Translations } from '../components'; import { getPage } from '@/services/pages'; +import { ReactNode } from '@/types'; export default async function EditPageLayout({ children, params, }: { children: ReactNode; - params: { locale: Locale; id: string }; + params: { id: string }; }) { const page = await getPage({ where: { id: params.id } }); @@ -18,12 +16,10 @@ export default async function EditPageLayout({ Back to Pages - - {page && } { +export const PageForm = ({ data: propsData }: PageFormProps) => { const toast = useToast(); const router = useRouter(); const { session } = useAuth(); - const { currentLocale, defaultLocale } = useLocale(); - const [isLoading, setIsLoading] = useState(false); const initialData = { @@ -53,8 +34,6 @@ export const PageForm = ({ title: propsData?.title ?? '', slug: propsData?.slug ?? '', content: propsData?.content ?? '', - locale: propsData?.locale ?? translateTo ?? currentLocale, - originalId: propsData?.originalId ?? originalId, meta: propsData?.meta ?? {}, tags: propsData?.tags ?? [], }; @@ -111,8 +90,6 @@ export const PageForm = ({ title, slug, content, - originalId, - locale: translateTo ?? defaultLocale, authorId: session.user.id, }), }); @@ -134,8 +111,6 @@ export const PageForm = ({ - - Title @@ -16,7 +10,7 @@ export default function NewPageLayout({ ; +} diff --git a/app/[locale]/(default)/dashboard/pages/page.tsx b/app/(default)/dashboard/pages/page.tsx similarity index 77% rename from app/[locale]/(default)/dashboard/pages/page.tsx rename to app/(default)/dashboard/pages/page.tsx index aad6ab67..88907055 100644 --- a/app/[locale]/(default)/dashboard/pages/page.tsx +++ b/app/(default)/dashboard/pages/page.tsx @@ -3,24 +3,17 @@ import { AddNewButton } from '@/components/client'; import { queryPages } from '@/services/pages'; import { getSession } from '@/configs/auth'; import { redirect } from 'next/navigation'; -import { Locale } from '@/types'; import { PageTable } from './components'; -export default async function PagesDashboard({ - params: { locale }, -}: { - params: { locale: Locale }; -}) { +export default async function PagesDashboard() { const session = await getSession(); if (!session) { redirect('/login'); } - const pages = await queryPages({ - where: { locale }, - }); + const pages = await queryPages({}); return ( diff --git a/app/[locale]/(default)/dashboard/posts/[id]/page.tsx b/app/(default)/dashboard/posts/[id]/page.tsx similarity index 100% rename from app/[locale]/(default)/dashboard/posts/[id]/page.tsx rename to app/(default)/dashboard/posts/[id]/page.tsx diff --git a/app/[locale]/(default)/dashboard/posts/components/PostForm/DeleteSection.tsx b/app/(default)/dashboard/posts/components/PostForm/DeleteSection.tsx similarity index 100% rename from app/[locale]/(default)/dashboard/posts/components/PostForm/DeleteSection.tsx rename to app/(default)/dashboard/posts/components/PostForm/DeleteSection.tsx diff --git a/app/[locale]/(default)/dashboard/posts/components/PostForm/index.tsx b/app/(default)/dashboard/posts/components/PostForm/index.tsx similarity index 67% rename from app/[locale]/(default)/dashboard/posts/components/PostForm/index.tsx rename to app/(default)/dashboard/posts/components/PostForm/index.tsx index b0dcd520..a62971b0 100644 --- a/app/[locale]/(default)/dashboard/posts/components/PostForm/index.tsx +++ b/app/(default)/dashboard/posts/components/PostForm/index.tsx @@ -6,10 +6,6 @@ import { Heading, IconButton, Input, - Menu, - MenuButton, - MenuItem, - MenuList, Stack, Tab, TabList, @@ -23,18 +19,9 @@ import { GoBackButton, TextEditor, } from '@/components/client'; -import { - AddIcon, - ArrowUpIcon, - CheckCircleIcon, - ChevronDownIcon, - GlobeIcon, - LockIcon, - RepeatIcon, -} from '@/icons'; -import { useEffect, useLocale, useRouter, useState, useToast } from '@/hooks'; +import { ArrowUpIcon, RepeatIcon } from '@/icons'; +import { useEffect, useRouter, useState, useToast } from '@/hooks'; import { createPost, updatePost } from '@/services/posts'; -import { i18n } from '@/configs/i18n.config'; import { isEqual } from '@/utils/compare'; import { Post } from '@/types'; import slugify from 'slugify'; @@ -54,22 +41,18 @@ export const PostForm = ({ backPath, title, data: propsData, - translatedPosts, originalId, translateTo, }: PostFormProps) => { const toast = useToast(); const router = useRouter(); - const { currentLocale, defaultLocale } = useLocale(); - const [isLoading, setIsLoading] = useState(false); const initialData = { title: propsData?.title ?? '', slug: propsData?.slug ?? '', content: propsData?.content ?? '', - locale: propsData?.locale ?? translateTo ?? currentLocale, originalId: propsData?.originalId ?? originalId, }; @@ -88,43 +71,6 @@ export const PostForm = ({ const isFormDirty = isEqual(data, initialData); - const getTranslationIcon = (locale: string) => { - const foundTranslated = translatedPosts?.find((p) => p.locale === locale); - - if (defaultLocale === locale) { - return ; - } - - if ( - (foundTranslated && foundTranslated.locale === locale) || - data.locale === locale - ) { - return ; - } - - return ; - }; - - const handleNewTranslatedPost = (locale: string) => { - if (!propsData) return; - - const foundTranslated = translatedPosts?.find((p) => p.locale === locale); - - if (foundTranslated) { - // Go to edit translated post version - const newPath = `/dashboard/posts/${foundTranslated.id}`; - router.push(newPath); - } else if (data.originalId) { - // Go to edit original post version - const newPath = `/dashboard/posts/${data.originalId}`; - router.push(newPath); - } else { - // Or else go to create new post - const newPath = `/dashboard/posts/new?translateTo=${locale}&originalId=${propsData.id}`; - router.push(newPath); - } - }; - const handleSubmit = async (formData: FormData) => { setIsLoading(true); @@ -138,9 +84,6 @@ export const PostForm = ({ } else { if (originalId && translateTo) { formData.append('originalId', originalId); - formData.append('locale', translateTo); - } else { - formData.append('locale', currentLocale); } const response = await createPost(formData); @@ -167,31 +110,6 @@ export const PostForm = ({ - - } - variant="outline" - isDisabled={!propsData} - > - Translations - - - {i18n.locales.map(({ label, value }) => { - return ( - handleNewTranslatedPost(value)} - > - {label} {defaultLocale === value ? '(default)' : ''} - - ); - })} - - -