diff --git a/src/app/lib/getProcents.ts b/src/app/lib/getProcents.ts new file mode 100644 index 0000000..df8145b --- /dev/null +++ b/src/app/lib/getProcents.ts @@ -0,0 +1,18 @@ +export function getProcents( + currentNumber: number, + totalNumber: number, + decimals: number = 0 +): number { + if (!currentNumber && !totalNumber) { + return 0; + } + + if (totalNumber === 0) { + return 0; + } + + const percentage = (currentNumber / totalNumber) * 100; + const factor = Math.pow(10, decimals); + + return Math.round(percentage * factor) / factor; +} \ No newline at end of file diff --git a/src/app/styles/payment-container.scss b/src/app/styles/payment-container.scss index 2837898..5d92c98 100644 --- a/src/app/styles/payment-container.scss +++ b/src/app/styles/payment-container.scss @@ -38,10 +38,11 @@ } .stat-value { - font-size: 1.6rem; + font-size: 1.2rem; font-weight: 700; color: #1e293b; margin-bottom: 4px; + white-space: nowrap; } .stat-label { diff --git a/src/app/ui/dashboard/new/dashborad-limits-section.tsx b/src/app/ui/dashboard/new/dashborad-limits-section.tsx index 7b44a56..6434d0b 100644 --- a/src/app/ui/dashboard/new/dashborad-limits-section.tsx +++ b/src/app/ui/dashboard/new/dashborad-limits-section.tsx @@ -3,6 +3,7 @@ import { useQuery } from '@tanstack/react-query'; import { getUserFilesInfo } from '@/app/actions/action'; import { convertBytes } from '@/app/lib/convertBytes'; +import { getProcents } from '@/app/lib/getProcents'; export default function DahboardLimitsSection() { const { @@ -15,10 +16,6 @@ export default function DahboardLimitsSection() { queryFn: getUserFilesInfo, }); - function getProcents(currentNumber: number, totalNumber: number) { - return Math.round(currentNumber / (totalNumber / 100)); - } - return (

πŸ’° ИспользованиС Π»ΠΈΠΌΠΈΡ‚ΠΎΠ²

@@ -48,7 +45,7 @@ export default function DahboardLimitsSection() {
{filesInfo?.all_files_size ? convertBytes(filesInfo?.all_files_size) : 0} / 1,024 ΠœΠ‘
-
+
{getProcents(filesInfo?.all_files_size, 1000000000)}% diff --git a/src/app/ui/header/headerPanel.tsx b/src/app/ui/header/headerPanel.tsx index 46940a3..aa6702b 100644 --- a/src/app/ui/header/headerPanel.tsx +++ b/src/app/ui/header/headerPanel.tsx @@ -1,32 +1,57 @@ +'use client' + import NotificationsButton from './notificationsButton'; import UserMenuButton from './userMenuButton'; import Link from 'next/link'; import LanguageSwitcher from '@/app/components/LanguageSwitcher'; import { useTranslations } from 'next-intl'; import BurgerMenu from '@/app/ui/navigation/burger-menu'; +import { getUserData } from '@/app/actions/action'; +import { useQuery } from '@tanstack/react-query'; export default function HeaderPanel() { const t = useTranslations("Global"); + const { + data: tokens, + isLoading, + isError, + error + } = useQuery({ + queryKey: ['userData'], + queryFn: () => { + return getUserData(); + }, + select: (data) => { + if (typeof data?.tariffInfo?.tokens === 'number') { + return data?.tariffInfo?.tokens + } else { + return null; + } + + } + }); return (
{/* */} - -
- - - - 800 - - {t('tokens')} - -
- + {tokens && ( + +
+ + + + {tokens} + + {t('tokens')} + +
+ + )}
diff --git a/src/app/ui/payment/user-usage.tsx b/src/app/ui/payment/user-usage.tsx index 24eec36..ca870db 100644 --- a/src/app/ui/payment/user-usage.tsx +++ b/src/app/ui/payment/user-usage.tsx @@ -4,6 +4,7 @@ import { getUserData } from '@/app/actions/action'; import { useQuery } from '@tanstack/react-query'; import { useEffect } from 'react'; import { convertBytes } from '@/app/lib/convertBytes'; +import { getProcents } from '@/app/lib/getProcents'; export default function UserUsage() { const { @@ -24,7 +25,9 @@ export default function UserUsage() { maxFilesCount: data.tariffInfo?.maxFileCounts, name: data.tariffInfo?.tariffName, endTariff: data.tariffInfo?.endTariff, - tokens: data.tariffInfo?.tokens + tokens: data.tariffInfo?.tokens, + currentFileCounts: data.tariffInfo?.currentFileCounts, + currentFileOnDisk: data.tariffInfo?.currentFileOnDisk, } } } @@ -37,23 +40,29 @@ export default function UserUsage() {
-
0 / {userData?.maxFilesCount}
+
+ {userData?.currentFileCounts} / {userData?.maxFilesCount} +
Π€Π°ΠΉΠ»ΠΎΠ² Π² мСсяц
-
0 / {userData?.diskSize ? convertBytes(userData?.diskSize) : 0}
+
+ {userData?.currentFileOnDisk ? convertBytes(userData?.currentFileOnDisk) : 0} / {userData?.diskSize ? convertBytes(userData?.diskSize) : 0} +
ΠžΠ±ΡŠΡ‘ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°