2026-02-04 12:01:41 +07:00
|
|
|
'use client'
|
|
|
|
|
|
2025-12-17 16:41:07 +07:00
|
|
|
import { useTranslations } from 'next-intl';
|
2026-02-04 12:01:41 +07:00
|
|
|
import { getUserData } from '@/app/actions/action';
|
|
|
|
|
import { useQuery } from '@tanstack/react-query';
|
|
|
|
|
import { convertBytes } from '@/app/lib/convertBytes';
|
2025-12-17 16:41:07 +07:00
|
|
|
|
2025-12-01 15:21:56 +07:00
|
|
|
export default function SubscriptionSettings() {
|
2025-12-17 16:41:07 +07:00
|
|
|
const t = useTranslations('Global');
|
2026-02-04 12:01:41 +07:00
|
|
|
const {
|
|
|
|
|
data: userData,
|
|
|
|
|
isLoading,
|
|
|
|
|
isError,
|
|
|
|
|
error
|
|
|
|
|
} = useQuery({
|
|
|
|
|
queryKey: ['userData'],
|
|
|
|
|
queryFn: () => {
|
|
|
|
|
return getUserData();
|
|
|
|
|
},
|
|
|
|
|
select: (data) => {
|
|
|
|
|
if (data.tariffInfo?.tariff) {
|
|
|
|
|
return {
|
|
|
|
|
diskSize: data.tariffInfo?.tariff?.diskSize,
|
|
|
|
|
id: data.tariffInfo?.tariff?.id,
|
|
|
|
|
maxFilesCount: data.tariffInfo?.tariff?.maxFilesCount,
|
|
|
|
|
maxUsers: data.tariffInfo?.tariff?.maxUsers,
|
|
|
|
|
name: data.tariffInfo?.tariff?.name,
|
|
|
|
|
price: data.tariffInfo?.tariff?.price,
|
|
|
|
|
tokens: data.tariffInfo?.tariff?.tokens,
|
|
|
|
|
type: data.tariffInfo?.tariff?.type,
|
|
|
|
|
endTariff: data.tariffInfo?.endTariff
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function dateHandler(date: string) {
|
|
|
|
|
return date.split(' ')[0];
|
|
|
|
|
}
|
2025-12-17 16:41:07 +07:00
|
|
|
|
2025-12-01 15:21:56 +07:00
|
|
|
return (
|
|
|
|
|
<div className="settings-form">
|
|
|
|
|
<div className="form-section">
|
2025-12-17 16:41:07 +07:00
|
|
|
<h3 className="form-section-title">
|
|
|
|
|
{t('subscription')}
|
|
|
|
|
</h3>
|
2025-12-01 15:21:56 +07:00
|
|
|
<div className="subscription-info">
|
|
|
|
|
<div className="subscription-info-header">
|
|
|
|
|
<div>
|
2026-02-04 12:01:41 +07:00
|
|
|
<h4 className="subscription-info-title">Подписка {userData?.name}</h4>
|
|
|
|
|
<p>📅 Активна до {dateHandler(userData?.endTariff)}</p>
|
2025-12-01 15:21:56 +07:00
|
|
|
</div>
|
|
|
|
|
<div style={{ textAlign: "right" }}>
|
2026-02-04 12:01:41 +07:00
|
|
|
<div className="subscription-info-title">{userData?.maxFilesCount}</div>
|
2025-12-01 15:21:56 +07:00
|
|
|
<p>файлов в месяц</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="subscription-info-main">
|
|
|
|
|
<div className="subscription-info-item">
|
|
|
|
|
<div>💾 Хранилище</div>
|
2026-02-04 12:01:41 +07:00
|
|
|
<span>{userData?.diskSize ? convertBytes(userData?.diskSize) : 0}</span>
|
2025-12-01 15:21:56 +07:00
|
|
|
</div>
|
|
|
|
|
<div className="subscription-info-item">
|
|
|
|
|
<div>🔌 API доступ</div>
|
|
|
|
|
<span>Включен</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="subscription-info-item">
|
|
|
|
|
<div>🎧 Поддержка</div>
|
|
|
|
|
<span>24/7</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2026-02-04 12:01:41 +07:00
|
|
|
{/* <div className="subscription-info-footer">
|
2025-12-01 15:21:56 +07:00
|
|
|
<button className="btn btn-outline">
|
|
|
|
|
🚀 СТАРТ
|
|
|
|
|
</button>
|
|
|
|
|
<button className="btn btn-outline">
|
|
|
|
|
⭐ ПРЕМИУМ
|
|
|
|
|
</button>
|
|
|
|
|
<button className="btn btn-outline">
|
|
|
|
|
💼 ПРОФИ
|
|
|
|
|
</button>
|
2026-02-04 12:01:41 +07:00
|
|
|
</div> */}
|
2025-12-01 15:21:56 +07:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|