Merge remote-tracking branch 'origin/main' into cloudflare
This commit is contained in:
commit
5d50135ed6
18
package.json
18
package.json
@ -20,22 +20,17 @@
|
|||||||
"preview": "opennextjs-cloudflare build && opennextjs-cloudflare preview",
|
"preview": "opennextjs-cloudflare build && opennextjs-cloudflare preview",
|
||||||
"deploy": "opennextjs-cloudflare build && opennextjs-cloudflare deploy",
|
"deploy": "opennextjs-cloudflare build && opennextjs-cloudflare deploy",
|
||||||
"upload": "opennextjs-cloudflare build && opennextjs-cloudflare upload",
|
"upload": "opennextjs-cloudflare build && opennextjs-cloudflare upload",
|
||||||
"cf-typegen": "wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts"
|
"cf-typegen": "wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts",
|
||||||
|
"knip": "knip"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ai-sdk/openai": "^1.1.13",
|
"@ai-sdk/openai": "^1.1.13",
|
||||||
"@aws-sdk/client-s3": "^3.758.0",
|
|
||||||
"@aws-sdk/s3-request-presigner": "^3.758.0",
|
|
||||||
"@base-ui-components/react": "1.0.0-beta.0",
|
"@base-ui-components/react": "1.0.0-beta.0",
|
||||||
"@better-fetch/fetch": "^1.1.18",
|
"@better-fetch/fetch": "^1.1.18",
|
||||||
"@content-collections/core": "^0.8.0",
|
|
||||||
"@content-collections/mdx": "^0.2.0",
|
|
||||||
"@content-collections/next": "^0.2.4",
|
|
||||||
"@dnd-kit/core": "^6.3.1",
|
"@dnd-kit/core": "^6.3.1",
|
||||||
"@dnd-kit/modifiers": "^9.0.0",
|
"@dnd-kit/modifiers": "^9.0.0",
|
||||||
"@dnd-kit/sortable": "^10.0.0",
|
"@dnd-kit/sortable": "^10.0.0",
|
||||||
"@dnd-kit/utilities": "^3.2.2",
|
"@dnd-kit/utilities": "^3.2.2",
|
||||||
"@fumadocs/content-collections": "^1.1.8",
|
|
||||||
"@hookform/resolvers": "^4.1.0",
|
"@hookform/resolvers": "^4.1.0",
|
||||||
"@next/third-parties": "^15.3.0",
|
"@next/third-parties": "^15.3.0",
|
||||||
"@openpanel/nextjs": "^1.0.7",
|
"@openpanel/nextjs": "^1.0.7",
|
||||||
@ -101,7 +96,6 @@
|
|||||||
"motion": "^12.4.3",
|
"motion": "^12.4.3",
|
||||||
"next": "15.2.1",
|
"next": "15.2.1",
|
||||||
"next-intl": "^4.0.0",
|
"next-intl": "^4.0.0",
|
||||||
"next-plausible": "^3.12.4",
|
|
||||||
"next-safe-action": "^7.10.4",
|
"next-safe-action": "^7.10.4",
|
||||||
"next-themes": "^0.4.4",
|
"next-themes": "^0.4.4",
|
||||||
"pg": "^8.16.0",
|
"pg": "^8.16.0",
|
||||||
@ -125,7 +119,6 @@
|
|||||||
"tailwind-merge": "^3.0.2",
|
"tailwind-merge": "^3.0.2",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"tw-animate-css": "^1.2.4",
|
"tw-animate-css": "^1.2.4",
|
||||||
"unist-util-visit": "^5.0.0",
|
|
||||||
"use-intl": "^3.26.5",
|
"use-intl": "^3.26.5",
|
||||||
"use-media": "^1.5.0",
|
"use-media": "^1.5.0",
|
||||||
"vaul": "^1.1.2",
|
"vaul": "^1.1.2",
|
||||||
@ -134,21 +127,20 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "1.9.4",
|
"@biomejs/biome": "1.9.4",
|
||||||
"@content-collections/cli": "^0.1.6",
|
|
||||||
"@opennextjs/cloudflare": "^1.2.1",
|
"@opennextjs/cloudflare": "^1.2.1",
|
||||||
"@tailwindcss/postcss": "^4.0.14",
|
"@tailwindcss/postcss": "^4.0.14",
|
||||||
"@types/mdx": "^2.0.13",
|
"@types/mdx": "^2.0.13",
|
||||||
"@types/node": "^20",
|
"@types/node": "^20.19.0",
|
||||||
"@types/pg": "^8.11.11",
|
"@types/pg": "^8.11.11",
|
||||||
"@types/react": "^19",
|
"@types/react": "^19",
|
||||||
"@types/react-dom": "^19",
|
"@types/react-dom": "^19",
|
||||||
"concurrently": "^9.1.2",
|
|
||||||
"drizzle-kit": "^0.30.4",
|
"drizzle-kit": "^0.30.4",
|
||||||
|
"knip": "^5.61.2",
|
||||||
"postcss": "^8",
|
"postcss": "^8",
|
||||||
"react-email": "3.0.7",
|
"react-email": "3.0.7",
|
||||||
"tailwindcss": "^4.0.14",
|
"tailwindcss": "^4.0.14",
|
||||||
"tsx": "^4.19.3",
|
"tsx": "^4.19.3",
|
||||||
"typescript": "^5",
|
"typescript": "^5.8.3",
|
||||||
"wrangler": "^4.14.1"
|
"wrangler": "^4.14.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1261
pnpm-lock.yaml
generated
1261
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
import Container from '@/components/layout/container';
|
import Container from '@/components/layout/container';
|
||||||
import type { BlogCategory } from '@/types/blog-types';
|
import type { BlogCategory } from '@/types';
|
||||||
import { BlogCategoryListDesktop } from './blog-category-list-desktop';
|
import { BlogCategoryListDesktop } from './blog-category-list-desktop';
|
||||||
import { BlogCategoryListMobile } from './blog-category-list-mobile';
|
import { BlogCategoryListMobile } from './blog-category-list-mobile';
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';
|
import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';
|
||||||
import { LocaleLink } from '@/i18n/navigation';
|
import { LocaleLink } from '@/i18n/navigation';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import type { BlogCategory } from '@/types/blog-types';
|
import type { BlogCategory } from '@/types';
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
import { useParams } from 'next/navigation';
|
import { useParams } from 'next/navigation';
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ import {
|
|||||||
DrawerTitle,
|
DrawerTitle,
|
||||||
DrawerTrigger,
|
DrawerTrigger,
|
||||||
} from '@/components/ui/drawer';
|
} from '@/components/ui/drawer';
|
||||||
import type { BlogCategory } from '@/types/blog-types';
|
import type { BlogCategory } from '@/types';
|
||||||
import { LayoutListIcon } from 'lucide-react';
|
import { LayoutListIcon } from 'lucide-react';
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
import { useParams } from 'next/navigation';
|
import { useParams } from 'next/navigation';
|
||||||
|
@ -11,7 +11,7 @@ interface ContactMessageProps extends BaseEmailProps {
|
|||||||
message: string;
|
message: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ContactMessage({
|
export default function ContactMessage({
|
||||||
name,
|
name,
|
||||||
email,
|
email,
|
||||||
message,
|
message,
|
||||||
@ -40,5 +40,3 @@ ContactMessage.PreviewProps = {
|
|||||||
email: 'username@example.com',
|
email: 'username@example.com',
|
||||||
message: 'This is a test message',
|
message: 'This is a test message',
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ContactMessage;
|
|
||||||
|
@ -11,7 +11,7 @@ interface ForgotPasswordProps extends BaseEmailProps {
|
|||||||
name: string;
|
name: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ForgotPassword({
|
export default function ForgotPassword({
|
||||||
url,
|
url,
|
||||||
name,
|
name,
|
||||||
locale,
|
locale,
|
||||||
@ -38,5 +38,3 @@ ForgotPassword.PreviewProps = {
|
|||||||
url: 'https://mksaas.com',
|
url: 'https://mksaas.com',
|
||||||
name: 'username',
|
name: 'username',
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ForgotPassword;
|
|
||||||
|
@ -7,7 +7,7 @@ import { createTranslator } from 'use-intl/core';
|
|||||||
|
|
||||||
interface SubscribeNewsletterProps extends BaseEmailProps {}
|
interface SubscribeNewsletterProps extends BaseEmailProps {}
|
||||||
|
|
||||||
export function SubscribeNewsletter({
|
export default function SubscribeNewsletter({
|
||||||
locale,
|
locale,
|
||||||
messages,
|
messages,
|
||||||
}: SubscribeNewsletterProps) {
|
}: SubscribeNewsletterProps) {
|
||||||
@ -29,5 +29,3 @@ SubscribeNewsletter.PreviewProps = {
|
|||||||
locale: routing.defaultLocale,
|
locale: routing.defaultLocale,
|
||||||
messages: defaultMessages,
|
messages: defaultMessages,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default SubscribeNewsletter;
|
|
||||||
|
@ -11,7 +11,12 @@ interface VerifyEmailProps extends BaseEmailProps {
|
|||||||
name: string;
|
name: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function VerifyEmail({ url, name, locale, messages }: VerifyEmailProps) {
|
export default function VerifyEmail({
|
||||||
|
url,
|
||||||
|
name,
|
||||||
|
locale,
|
||||||
|
messages,
|
||||||
|
}: VerifyEmailProps) {
|
||||||
const t = createTranslator({
|
const t = createTranslator({
|
||||||
locale,
|
locale,
|
||||||
messages,
|
messages,
|
||||||
@ -33,5 +38,3 @@ VerifyEmail.PreviewProps = {
|
|||||||
url: 'https://mksaas.com',
|
url: 'https://mksaas.com',
|
||||||
name: 'username',
|
name: 'username',
|
||||||
};
|
};
|
||||||
|
|
||||||
export default VerifyEmail;
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import type { Locale, Messages } from 'next-intl';
|
import type { Locale, Messages } from 'next-intl';
|
||||||
import { ContactMessage } from './templates/contact-message';
|
import ContactMessage from './templates/contact-message';
|
||||||
import { ForgotPassword } from './templates/forgot-password';
|
import ForgotPassword from './templates/forgot-password';
|
||||||
import { SubscribeNewsletter } from './templates/subscribe-newsletter';
|
import SubscribeNewsletter from './templates/subscribe-newsletter';
|
||||||
import { VerifyEmail } from './templates/verify-email';
|
import VerifyEmail from './templates/verify-email';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* list all the email templates here
|
* list all the email templates here
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
/**
|
|
||||||
* Blog Category
|
|
||||||
*
|
|
||||||
* we can not pass CategoryType from server component to client component
|
|
||||||
* so we need to define a new type, and use it in the client component
|
|
||||||
*/
|
|
||||||
export type BlogCategory = {
|
|
||||||
slug: string;
|
|
||||||
name: string;
|
|
||||||
description: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type BlogAuthor = {
|
|
||||||
slug: string;
|
|
||||||
name: string;
|
|
||||||
description: string;
|
|
||||||
avatar: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type BlogPost = {
|
|
||||||
slug: string;
|
|
||||||
title: string;
|
|
||||||
description: string;
|
|
||||||
date: string;
|
|
||||||
};
|
|
12
src/types/index.d.ts
vendored
12
src/types/index.d.ts
vendored
@ -163,3 +163,15 @@ export type MenuItem = {
|
|||||||
export type NestedMenuItem = MenuItem & {
|
export type NestedMenuItem = MenuItem & {
|
||||||
items?: MenuItem[]; // The items to display in the nested menu
|
items?: MenuItem[]; // The items to display in the nested menu
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blog Category
|
||||||
|
*
|
||||||
|
* we can not pass CategoryType from server component to client component
|
||||||
|
* so we need to define a new type, and use it in the client component
|
||||||
|
*/
|
||||||
|
export type BlogCategory = {
|
||||||
|
slug: string;
|
||||||
|
name: string;
|
||||||
|
description: string;
|
||||||
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user