refactor: reorganize website configuration and update imports
- Moved website configuration to a new file for better modularity and maintainability. - Updated import paths across the codebase to reference the new website configuration location. - Removed the old website configuration from the config.tsx file to streamline the codebase.
This commit is contained in:
parent
165673a998
commit
4d47201ce3
@ -1,6 +1,6 @@
|
||||
'use server';
|
||||
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { sendEmail } from '@/mail';
|
||||
import { getLocale } from 'next-intl/server';
|
||||
import { createSafeActionClient } from 'next-safe-action';
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { constructMetadata } from '@/lib/metadata';
|
||||
import { getBaseUrlWithLocale } from '@/lib/urls/urls';
|
||||
import { MailIcon } from 'lucide-react';
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import BlogGrid from '@/components/blog/blog-grid';
|
||||
import EmptyGrid from '@/components/shared/empty-grid';
|
||||
import CustomPagination from '@/components/shared/pagination';
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { constructMetadata } from '@/lib/metadata';
|
||||
import { getBaseUrlWithLocale } from '@/lib/urls/urls';
|
||||
import { NextPageProps } from '@/types/next-page-props';
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import BlogGrid from '@/components/blog/blog-grid';
|
||||
import EmptyGrid from '@/components/shared/empty-grid';
|
||||
import CustomPagination from '@/components/shared/pagination';
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { constructMetadata } from '@/lib/metadata';
|
||||
import { getBaseUrlWithLocale } from '@/lib/urls/urls';
|
||||
import { NextPageProps } from '@/types/next-page-props';
|
||||
|
||||
@ -3,7 +3,7 @@ import BlogGrid from '@/components/blog/blog-grid';
|
||||
import { BlogToc } from '@/components/blog/blog-toc';
|
||||
import { NewsletterCard } from '@/components/newsletter/newsletter-card';
|
||||
import { CustomMDXContent } from '@/components/shared/custom-mdx-content';
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { LocaleLink } from '@/i18n/navigation';
|
||||
import { getTableOfContents } from '@/lib/blog/toc';
|
||||
import { constructMetadata } from '@/lib/metadata';
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { XTwitterIcon } from '@/components/icons/x';
|
||||
import { ModeSwitcher } from '@/components/layout/mode-switcher';
|
||||
import { Logo } from '@/components/layout/logo';
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { LOCALE_LIST } from '@/i18n/routing';
|
||||
import { docsI18nConfig } from '@/lib/docs/i18n';
|
||||
import { source } from '@/lib/docs/source';
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import BlogCard, { BlogCardSkeleton } from '@/components/blog/blog-card';
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { Post } from 'content-collections';
|
||||
|
||||
interface BlogGridProps {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import { websiteConfig } from "@/config";
|
||||
import { websiteConfig } from "@/config/website";
|
||||
import {
|
||||
ReactNode,
|
||||
createContext,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
'use client';
|
||||
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { cn } from '@/lib/utils';
|
||||
import { useTheme } from 'next-themes';
|
||||
import Image from 'next/image';
|
||||
|
||||
@ -11,7 +11,7 @@ import {
|
||||
PlanIntervals
|
||||
} from '@/payment/types';
|
||||
import { Routes } from '@/routes';
|
||||
import { MenuItem, NestedMenuItem, WebsiteConfig } from '@/types';
|
||||
import { MenuItem, NestedMenuItem } from '@/types';
|
||||
import {
|
||||
AudioLinesIcon,
|
||||
BellIcon,
|
||||
@ -48,83 +48,10 @@ import {
|
||||
} from 'lucide-react';
|
||||
import { useTranslations } from 'next-intl';
|
||||
import { XTwitterIcon } from './components/icons/x';
|
||||
import { websiteConfig } from './config/website';
|
||||
|
||||
/**
|
||||
* website config, without translations
|
||||
*/
|
||||
export const websiteConfig: WebsiteConfig = {
|
||||
theme: "default",
|
||||
metadata: {
|
||||
image: '/og.png',
|
||||
},
|
||||
logo: {
|
||||
light: '/logo.png',
|
||||
dark: '/logo-dark.png',
|
||||
},
|
||||
mail: {
|
||||
from: 'support@mksaas.com',
|
||||
to: 'support@mksaas.com',
|
||||
},
|
||||
blog: {
|
||||
paginationSize: 6,
|
||||
relatedPostsSize: 3,
|
||||
},
|
||||
social: {
|
||||
github: 'https://github.com/MkSaaSHQ',
|
||||
twitter: 'https://x.com/mksaascom',
|
||||
youtube: 'https://www.youtube.com/@MkSaaS',
|
||||
blueSky: 'https://bsky.app/profile/mksaas.com',
|
||||
linkedin: 'https://linkedin.com/company/mksaas',
|
||||
facebook: 'https://facebook.com/mksaas',
|
||||
instagram: 'https://instagram.com/mksaas',
|
||||
tiktok: 'https://tiktok.com/@mksaas',
|
||||
},
|
||||
payment: {
|
||||
plans: {
|
||||
free: {
|
||||
id: "free",
|
||||
prices: [],
|
||||
isFree: true,
|
||||
isLifetime: false,
|
||||
},
|
||||
pro: {
|
||||
id: "pro",
|
||||
prices: [
|
||||
{
|
||||
type: PaymentTypes.SUBSCRIPTION,
|
||||
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_PRO_MONTHLY!,
|
||||
amount: 990,
|
||||
currency: "USD",
|
||||
interval: PlanIntervals.MONTH,
|
||||
},
|
||||
{
|
||||
type: PaymentTypes.SUBSCRIPTION,
|
||||
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_PRO_YEARLY!,
|
||||
amount: 9900,
|
||||
currency: "USD",
|
||||
interval: PlanIntervals.YEAR,
|
||||
},
|
||||
],
|
||||
isFree: false,
|
||||
isLifetime: false,
|
||||
recommended: true,
|
||||
},
|
||||
lifetime: {
|
||||
id: "lifetime",
|
||||
prices: [
|
||||
{
|
||||
type: PaymentTypes.ONE_TIME,
|
||||
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_LIFETIME!,
|
||||
amount: 19900,
|
||||
currency: "USD",
|
||||
},
|
||||
],
|
||||
isFree: false,
|
||||
isLifetime: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
// Export the websiteConfig from the new location for backward compatibility
|
||||
export { websiteConfig } from './config/website';
|
||||
|
||||
/**
|
||||
* Get menu links with translations
|
||||
|
||||
82
src/config/website.tsx
Normal file
82
src/config/website.tsx
Normal file
@ -0,0 +1,82 @@
|
||||
import {
|
||||
PaymentTypes,
|
||||
PlanIntervals
|
||||
} from '@/payment/types';
|
||||
import { WebsiteConfig } from '@/types';
|
||||
|
||||
/**
|
||||
* website config, without translations
|
||||
*/
|
||||
export const websiteConfig: WebsiteConfig = {
|
||||
theme: "default",
|
||||
metadata: {
|
||||
image: '/og.png',
|
||||
},
|
||||
logo: {
|
||||
light: '/logo.png',
|
||||
dark: '/logo-dark.png',
|
||||
},
|
||||
mail: {
|
||||
from: 'support@mksaas.com',
|
||||
to: 'support@mksaas.com',
|
||||
},
|
||||
blog: {
|
||||
paginationSize: 6,
|
||||
relatedPostsSize: 3,
|
||||
},
|
||||
social: {
|
||||
github: 'https://github.com/MkSaaSHQ',
|
||||
twitter: 'https://x.com/mksaascom',
|
||||
youtube: 'https://www.youtube.com/@MkSaaS',
|
||||
blueSky: 'https://bsky.app/profile/mksaas.com',
|
||||
linkedin: 'https://linkedin.com/company/mksaas',
|
||||
facebook: 'https://facebook.com/mksaas',
|
||||
instagram: 'https://instagram.com/mksaas',
|
||||
tiktok: 'https://tiktok.com/@mksaas',
|
||||
},
|
||||
payment: {
|
||||
plans: {
|
||||
free: {
|
||||
id: "free",
|
||||
prices: [],
|
||||
isFree: true,
|
||||
isLifetime: false,
|
||||
},
|
||||
pro: {
|
||||
id: "pro",
|
||||
prices: [
|
||||
{
|
||||
type: PaymentTypes.SUBSCRIPTION,
|
||||
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_PRO_MONTHLY!,
|
||||
amount: 990,
|
||||
currency: "USD",
|
||||
interval: PlanIntervals.MONTH,
|
||||
},
|
||||
{
|
||||
type: PaymentTypes.SUBSCRIPTION,
|
||||
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_PRO_YEARLY!,
|
||||
amount: 9900,
|
||||
currency: "USD",
|
||||
interval: PlanIntervals.YEAR,
|
||||
},
|
||||
],
|
||||
isFree: false,
|
||||
isLifetime: false,
|
||||
recommended: true,
|
||||
},
|
||||
lifetime: {
|
||||
id: "lifetime",
|
||||
prices: [
|
||||
{
|
||||
type: PaymentTypes.ONE_TIME,
|
||||
priceId: process.env.NEXT_PUBLIC_STRIPE_PRICE_LIFETIME!,
|
||||
amount: 19900,
|
||||
currency: "USD",
|
||||
},
|
||||
],
|
||||
isFree: false,
|
||||
isLifetime: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -1,4 +1,4 @@
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { routing } from '@/i18n/routing';
|
||||
import type { Metadata } from 'next';
|
||||
import { getBaseUrl } from './urls/urls';
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { websiteConfig } from '@/config';
|
||||
import { websiteConfig } from '@/config/website';
|
||||
import { MailProvider, SendEmailResult, SendRawEmailParams, SendTemplateParams } from '@/mail/types';
|
||||
import { getTemplate } from '@/mail';
|
||||
import { Resend } from 'resend';
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { PaymentProvider, PricePlan, PaymentConfig, Customer, Subscription, Payment, PaymentStatus, PlanInterval, PaymentType, Price, CreateCheckoutParams, CheckoutResult, CreatePortalParams, PortalResult, getSubscriptionsParams } from "./types";
|
||||
import { StripeProvider } from "./provider/stripe";
|
||||
import { websiteConfig } from "@/config";
|
||||
import { websiteConfig } from "@/config/website";
|
||||
|
||||
/**
|
||||
* Global payment provider instance
|
||||
|
||||
Loading…
Reference in New Issue
Block a user