diff --git a/src/app/(routes)/blog/components/footer/footer.tsx b/src/app/(routes)/blog/components/footer/footer.tsx
index df987c8..cd0ab1e 100644
--- a/src/app/(routes)/blog/components/footer/footer.tsx
+++ b/src/app/(routes)/blog/components/footer/footer.tsx
@@ -5,7 +5,7 @@ import Image from "next/image";
import React from "react";
export default async function Footer() {
- const dict = await getDictionary(getDefaultLocale());
+ const dict = await getDictionary(await getDefaultLocale());
return (
@@ -29,8 +29,8 @@ export default async function Header() {
diff --git a/src/app/(routes)/blog/components/home/Categories/Categories.tsx b/src/app/(routes)/blog/components/home/Categories/Categories.tsx
index f1e6c09..8384e91 100644
--- a/src/app/(routes)/blog/components/home/Categories/Categories.tsx
+++ b/src/app/(routes)/blog/components/home/Categories/Categories.tsx
@@ -9,7 +9,7 @@ interface CategoriesProps {
}
export default async function Categories({ data }: CategoriesProps) {
- const dict = await getDictionary(getDefaultLocale());
+ const dict = await getDictionary(await getDefaultLocale());
return (
diff --git a/src/app/(routes)/blog/components/home/filtered-posts/filteredPosts.tsx b/src/app/(routes)/blog/components/home/filtered-posts/filteredPosts.tsx
index db89567..ffc1471 100644
--- a/src/app/(routes)/blog/components/home/filtered-posts/filteredPosts.tsx
+++ b/src/app/(routes)/blog/components/home/filtered-posts/filteredPosts.tsx
@@ -9,7 +9,7 @@ interface FilteredPostsProps {
}
export default async function FilteredPosts({ data }: FilteredPostsProps) {
- const dict = await getDictionary(getDefaultLocale());
+ const dict = await getDictionary(await getDefaultLocale());
return (
diff --git a/src/app/(routes)/blog/components/home/new/new.tsx b/src/app/(routes)/blog/components/home/new/new.tsx
index 5c32e33..b296a66 100644
--- a/src/app/(routes)/blog/components/home/new/new.tsx
+++ b/src/app/(routes)/blog/components/home/new/new.tsx
@@ -9,7 +9,7 @@ interface NewProps {
}
export default async function New({ data }: NewProps) {
- const dict = await getDictionary(getDefaultLocale());
+ const dict = await getDictionary(await getDefaultLocale());
return (
diff --git a/src/app/(routes)/blog/components/home/random/random.tsx b/src/app/(routes)/blog/components/home/random/random.tsx
index 4d96ceb..c41708c 100644
--- a/src/app/(routes)/blog/components/home/random/random.tsx
+++ b/src/app/(routes)/blog/components/home/random/random.tsx
@@ -9,7 +9,7 @@ interface RandomProps {
}
export default async function Random({ data }: RandomProps) {
- const dict = await getDictionary(getDefaultLocale());
+ const dict = await getDictionary(await getDefaultLocale());
return (
diff --git a/src/app/(routes)/blog/components/pagination/pagination.tsx b/src/app/(routes)/blog/components/pagination/pagination.tsx
index 91e36df..f49e31e 100644
--- a/src/app/(routes)/blog/components/pagination/pagination.tsx
+++ b/src/app/(routes)/blog/components/pagination/pagination.tsx
@@ -33,7 +33,7 @@ const Pagination: React.FC
= ({ meta, baseUrl, dict }) => {
return `${baseUrl}?${params.toString()}`; // استفاده از baseUrl
};
- const renderPageNumbers = (): (JSX.Element | string)[] => {
+ const renderPageNumbers = (): (React.JSX.Element | string)[] => {
const delta = 1; // تعداد صفحات اطراف صفحه فعلی که نمایش داده شوند
const range: number[] = [];
const rangeWithDots: (number | string)[] = [];
diff --git a/src/app/(routes)/blog/filtered-posts/[filter]/page.tsx b/src/app/(routes)/blog/filtered-posts/[filter]/page.tsx
index 64f2e44..4a48221 100644
--- a/src/app/(routes)/blog/filtered-posts/[filter]/page.tsx
+++ b/src/app/(routes)/blog/filtered-posts/[filter]/page.tsx
@@ -23,13 +23,12 @@ export const metadata: Metadata = {
},
};
-export default async function FilteredPosts({
- params,
- searchParams,
-}: FilteredPostsPagepropsType) {
+export default async function FilteredPosts(props: FilteredPostsPagepropsType) {
+ const searchParams = await props.searchParams;
+ const params = await props.params;
let filteredPostApiUrl: string;
- const dict = await getDictionary(getDefaultLocale());
+ const dict = await getDictionary(await getDefaultLocale());
switch (params.filter.replaceAll(/%20|-|_/g, " ").toLowerCase()) {
case "new":
diff --git a/src/app/(routes)/blog/posts/[postSlug]/page.tsx b/src/app/(routes)/blog/posts/[postSlug]/page.tsx
index f95b799..dfa8ead 100644
--- a/src/app/(routes)/blog/posts/[postSlug]/page.tsx
+++ b/src/app/(routes)/blog/posts/[postSlug]/page.tsx
@@ -24,9 +24,8 @@ async function fetchPostData(postSlug: string): Promise {
return res.json();
}
-export async function generateMetadata({
- params,
-}: PostSlugPagepropsType): Promise {
+export async function generateMetadata(props: PostSlugPagepropsType): Promise {
+ const params = await props.params;
const post: PostSlugPagePostType = await fetchPostData(params.postSlug);
return {
@@ -40,8 +39,9 @@ export async function generateMetadata({
};
}
-export default async function SinglePost({ params }: PostSlugPagepropsType) {
- const dict = await getDictionary(getDefaultLocale());
+export default async function SinglePost(props: PostSlugPagepropsType) {
+ const params = await props.params;
+ const dict = await getDictionary(await getDefaultLocale());
const postData: PostSlugPagePostType = await fetchPostData(params.postSlug);
return (
diff --git a/src/app/(routes)/blog/tags/[slug]/page.tsx b/src/app/(routes)/blog/tags/[slug]/page.tsx
index 12ac647..5c2869d 100644
--- a/src/app/(routes)/blog/tags/[slug]/page.tsx
+++ b/src/app/(routes)/blog/tags/[slug]/page.tsx
@@ -1,7 +1,8 @@
type propsType = {
- params: { slug: string };
+ params: Promise<{ slug: string }>;
};
-export default function SingleTag({ params }: propsType) {
+export default async function SingleTag(props: propsType) {
+ const params = await props.params;
return {params.slug}
;
}
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 69f271e..4d831d1 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -8,14 +8,15 @@ const mikhak = localFont({
weight: "100 900",
});
-export default function RootLayout({
+export default async function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
+ const defaultLocale = await getDefaultLocale();
return (
-
+
{
- const defaultLocaleCookie = cookies().get("defaultLocale");
+export const getDefaultLocale = async () => {
+ const cookieStore = await cookies();
+ const defaultLocaleCookie = cookieStore.get("defaultLocale");
const defaultLocale: string = defaultLocaleCookie
? defaultLocaleCookie.value
: "en";
diff --git a/src/middleware.ts b/src/proxy.ts
similarity index 98%
rename from src/middleware.ts
rename to src/proxy.ts
index ae5a549..22d86e5 100644
--- a/src/middleware.ts
+++ b/src/proxy.ts
@@ -1,7 +1,7 @@
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
-export function middleware(request: NextRequest) {
+export function proxy(request: NextRequest) {
const response = NextResponse.next();
const acceptLanguage = request.headers.get("accept-language");
diff --git a/tsconfig.json b/tsconfig.json
index ccfde92..bf625fb 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,7 +1,11 @@
{
"compilerOptions": {
"target": "es2017",
- "lib": ["dom", "dom.iterable", "esnext"],
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
@@ -11,7 +15,7 @@
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
- "jsx": "preserve",
+ "jsx": "react-jsx",
"incremental": true,
"plugins": [
{
@@ -19,9 +23,21 @@
}
],
"paths": {
- "@/*": ["./src/*"]
+ "@/*": [
+ "./src/*"
+ ]
}
},
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "tailwind.config.ts", "src/middleware.ts"],
- "exclude": ["node_modules"]
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ ".next/types/**/*.ts",
+ "tailwind.config.ts",
+ "src/proxy.ts",
+ ".next/dev/types/**/*.ts"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
}