feat(ad): Advertise

This commit is contained in:
web@ppanel 2024-11-15 20:41:26 +07:00
parent 9262d7d91d
commit b1105cd97d
4 changed files with 75 additions and 21 deletions

View File

@ -1,30 +1,81 @@
import { PinContainer } from '@shadcn/ui/3d-pin';
import { Label } from '@shadcn/ui/label';
import { Separator } from '@shadcn/ui/separator';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@shadcn/ui/tabs'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@shadcn/ui/tabs';
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@shadcn/ui/tooltip';
import { getTranslations } from 'next-intl/server';
import Image from 'next/legacy/image';
import Link from 'next/link';
import AlipayF2F from './alipayf2f'; import AlipayF2F from './alipayf2f';
import Epay from './epay'; import Epay from './epay';
import StripeAlipay from './stripe-alipay'; import StripeAlipay from './stripe-alipay';
import StripeWeChatPay from './stripe-wechat-pay'; import StripeWeChatPay from './stripe-wechat-pay';
export default function Page() { export default async function Page() {
const response = await (await fetch('https://pay.ppanel.dev/')).json();
const t = await getTranslations('payment');
return ( return (
<Tabs defaultValue='Epay'> <>
<TabsList> <Tabs defaultValue='Epay'>
<TabsTrigger value='Epay'>Epay</TabsTrigger> <TabsList className='h-full flex-wrap'>
<TabsTrigger value='Stripe-Alipay'>Stripe(AliPay)</TabsTrigger> <TabsTrigger value='Epay'>Epay</TabsTrigger>
<TabsTrigger value='Strip-WeChatPay'>Stripe(WeChatPay)</TabsTrigger> <TabsTrigger value='Stripe-Alipay'>Stripe(AliPay)</TabsTrigger>
<TabsTrigger value='AlipayF2F'>AlipayF2F</TabsTrigger> <TabsTrigger value='Strip-WeChatPay'>Stripe(WeChatPay)</TabsTrigger>
</TabsList> <TabsTrigger value='AlipayF2F'>AlipayF2F</TabsTrigger>
<TabsContent value='Epay'> </TabsList>
<Epay /> <TabsContent value='Epay'>
</TabsContent> <Epay />
<TabsContent value='Stripe-Alipay'> </TabsContent>
<StripeAlipay /> <TabsContent value='Stripe-Alipay'>
</TabsContent> <StripeAlipay />
<TabsContent value='Strip-WeChatPay'> </TabsContent>
<StripeWeChatPay /> <TabsContent value='Strip-WeChatPay'>
</TabsContent> <StripeWeChatPay />
<TabsContent value='AlipayF2F'> </TabsContent>
<AlipayF2F /> <TabsContent value='AlipayF2F'>
</TabsContent> <AlipayF2F />
</Tabs> </TabsContent>
</Tabs>
{response?.list?.length > 0 && (
<TooltipProvider>
<Separator />
<div className='ml-2 mt-4 flex flex-wrap items-center gap-4'>
<Label className='w-full'>{t('payForRecommendations')}</Label>
{response.list?.map((item) => {
return (
<Tooltip key={item.id}>
<TooltipTrigger asChild>
<Link href={item.href} className='flex flex-col flex-wrap items-center gap-2'>
<Image src={item.logo} width={40} height={40} className='rounded-full' />
{item.name}
</Link>
</TooltipTrigger>
<TooltipContent className='bg-transparent pb-10'>
<PinContainer title={item.name} href={item.href}>
<div className='flex h-[20rem] w-[20rem] basis-full flex-col p-4 tracking-tight sm:basis-1/2'>
<h3 className='text-foreground max-w-xs pb-2 text-base font-bold'>
{item.name}
</h3>
<div className='mb-4 !p-0 text-base font-normal'>
<span className='text-muted-foreground'>{item.description}</span>
</div>
<div className='mt-4 flex w-full flex-1 rounded-lg'>
<Image
src={item.image}
width={288}
height={200}
className='h-auto w-full'
/>
</div>
</div>
</PinContainer>
</TooltipContent>
</Tooltip>
);
})}
</div>
</TooltipProvider>
)}
</>
); );
} }

View File

@ -27,6 +27,7 @@
"key": "KEY", "key": "KEY",
"notifyUrl": "Custom Notification Domain (optional)", "notifyUrl": "Custom Notification Domain (optional)",
"notifyUrlDescription": "Gateway notifications will be sent to this domain", "notifyUrlDescription": "Gateway notifications will be sent to this domain",
"payForRecommendations": "Pay for Recommendations",
"pid": "PID", "pid": "PID",
"saveSuccess": "Save Successful", "saveSuccess": "Save Successful",
"showName": "Display Name", "showName": "Display Name",

View File

@ -27,6 +27,7 @@
"key": "KEY", "key": "KEY",
"notifyUrl": "自定义通知域(可选)", "notifyUrl": "自定义通知域(可选)",
"notifyUrlDescription": "网关通知将发送到此域", "notifyUrlDescription": "网关通知将发送到此域",
"payForRecommendations": "支付推荐",
"pid": "PID", "pid": "PID",
"saveSuccess": "保存成功", "saveSuccess": "保存成功",
"showName": "显示名称", "showName": "显示名称",

View File

@ -1,4 +1,5 @@
// @ts-nocheck // @ts-nocheck
'use client';
/** /**
* Note: Use position fixed according to your needs * Note: Use position fixed according to your needs
* Desktop navbar is better positioned at the bottom * Desktop navbar is better positioned at the bottom