mirror of
https://github.com/perfect-panel/ppanel-web.git
synced 2026-02-06 11:40:28 -05:00
✨ feat(subscribe): Add reset_time to API typings and update unsubscribe logic
This commit is contained in:
parent
25ce37ea05
commit
eeea165f7e
@ -1,5 +1,5 @@
|
||||
// @ts-ignore
|
||||
|
||||
|
||||
// API 更新时间:
|
||||
// API 唯一标识:
|
||||
import * as announcement from './announcement';
|
||||
|
||||
1
apps/admin/services/admin/typings.d.ts
vendored
1
apps/admin/services/admin/typings.d.ts
vendored
@ -1067,6 +1067,7 @@ declare namespace API {
|
||||
subscribe: Subscribe;
|
||||
start_time: number;
|
||||
expire_time: number;
|
||||
reset_time: number;
|
||||
traffic: number;
|
||||
download: number;
|
||||
upload: number;
|
||||
|
||||
1
apps/admin/services/common/typings.d.ts
vendored
1
apps/admin/services/common/typings.d.ts
vendored
@ -473,6 +473,7 @@ declare namespace API {
|
||||
subscribe: Subscribe;
|
||||
start_time: number;
|
||||
expire_time: number;
|
||||
reset_time: number;
|
||||
traffic: number;
|
||||
download: number;
|
||||
upload: number;
|
||||
|
||||
@ -171,7 +171,11 @@ export default function Content() {
|
||||
</li>
|
||||
<li>
|
||||
<span className='text-muted-foreground'>{t('nextResetDays')}</span>
|
||||
<span className='text-2xl font-semibold'>{t('unknown')}</span>
|
||||
<span className='text-2xl font-semibold'>
|
||||
{item.reset_time
|
||||
? differenceInDays(new Date(item.reset_time), new Date())
|
||||
: t('unknown')}
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span className='text-muted-foreground'>{t('expirationDays')}</span>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
'use client';
|
||||
|
||||
import useGlobalStore from '@/config/use-global';
|
||||
import { preUnsubscribe, unsubscribe } from '@/services/user/user';
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
import { Button } from '@workspace/ui/components/button';
|
||||
@ -24,9 +25,12 @@ interface UnsubscribeProps {
|
||||
}
|
||||
|
||||
export default function Unsubscribe({ id, allowDeduction }: Readonly<UnsubscribeProps>) {
|
||||
const [open, setOpen] = useState(false);
|
||||
const router = useRouter();
|
||||
const t = useTranslations('subscribe.unsubscribe');
|
||||
const router = useRouter();
|
||||
const { common } = useGlobalStore();
|
||||
const single_model = common.subscribe.single_model;
|
||||
|
||||
const [open, setOpen] = useState(false);
|
||||
|
||||
const { data } = useQuery({
|
||||
enabled: Boolean(open && id && allowDeduction),
|
||||
@ -53,7 +57,7 @@ export default function Unsubscribe({ id, allowDeduction }: Readonly<Unsubscribe
|
||||
}
|
||||
};
|
||||
|
||||
if (!allowDeduction) return null;
|
||||
if (!single_model && !allowDeduction) return null;
|
||||
|
||||
return (
|
||||
<Dialog open={open} onOpenChange={setOpen}>
|
||||
|
||||
1
apps/user/services/common/typings.d.ts
vendored
1
apps/user/services/common/typings.d.ts
vendored
@ -473,6 +473,7 @@ declare namespace API {
|
||||
subscribe: Subscribe;
|
||||
start_time: number;
|
||||
expire_time: number;
|
||||
reset_time: number;
|
||||
traffic: number;
|
||||
download: number;
|
||||
upload: number;
|
||||
|
||||
1
apps/user/services/user/typings.d.ts
vendored
1
apps/user/services/user/typings.d.ts
vendored
@ -654,6 +654,7 @@ declare namespace API {
|
||||
subscribe: Subscribe;
|
||||
start_time: number;
|
||||
expire_time: number;
|
||||
reset_time: number;
|
||||
traffic: number;
|
||||
download: number;
|
||||
upload: number;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user