add payments page layouts

This commit is contained in:
smanylov
2025-12-01 17:36:20 +07:00
parent 2ef5e171b1
commit d89cc35fca
16 changed files with 693 additions and 34 deletions
@@ -0,0 +1,7 @@
export default function PaymentTubBuyTokens() {
return (
<div className="tab-content">
PaymentTubBuyTokens
</div>
)
}
+122
View File
@@ -0,0 +1,122 @@
export default function PaymentTabTariffs() {
return (
<div className="tab-content">
<div className="billing-toggle">
<div>
<button className="billing-btn active">💳 Помесячно</button>
<button className="billing-btn">
🔥 Годовая
<span>ВЫГОДНО</span>
</button>
</div>
</div>
<div className="subscription-grid">
<div className="plan-card animate-card">
<div className="plan-header">
<div className="plan-icon">🚀</div>
<h3 className="plan-name">СТАРТ</h3>
<div className="plan-price">900</div>
<div className="plan-period">в месяц</div>
<div className="plan-tokens">100 токенов включено</div>
</div>
<ul className="plan-features">
<li className="plan-feature">
<span className="feature-icon"></span>
100 файлов в месяц
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
1 ГБ хранилища
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
До 10 МБ на файл
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
Базовые модули защиты
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
Поддержка 24/7
</li>
<li className="plan-feature">
<span className="feature-icon not"></span>
API доступ
</li>
</ul>
</div>
<div className="plan-card animate-card">
<div className="plan-header">
<div className="plan-icon">🚀</div>
<h3 className="plan-name">ПРЕМИУМ</h3>
<div className="plan-price">3500</div>
<div className="plan-period">в месяц</div>
<div className="plan-tokens">100 токенов включено</div>
</div>
<ul className="plan-features">
<li className="plan-feature">
<span className="feature-icon"></span>
100 файлов в месяц
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
1 ГБ хранилища
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
До 10 МБ на файл
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
Базовые модули защиты
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
Поддержка 24/7
</li>
<li className="plan-feature">
<span className="feature-icon not"></span>
API доступ
</li>
</ul>
</div>
<div className="plan-card animate-card">
<div className="plan-header">
<div className="plan-icon">🚀</div>
<h3 className="plan-name">ПРОФИ</h3>
<div className="plan-price">9500</div>
<div className="plan-period">в месяц</div>
<div className="plan-tokens">100 токенов включено</div>
</div>
<ul className="plan-features">
<li className="plan-feature">
<span className="feature-icon"></span>
100 файлов в месяц
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
1 ГБ хранилища
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
До 10 МБ на файл
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
Базовые модули защиты
</li>
<li className="plan-feature">
<span className="feature-icon"></span>
Поддержка 24/7
</li>
<li className="plan-feature">
<span className="feature-icon not"></span>
API доступ
</li>
</ul>
</div>
</div>
</div>
)
}
@@ -0,0 +1,7 @@
export default function PaymentTabTransactionHistory() {
return (
<div className="tab-content">
payment-tab-transaction-history
</div>
)
}
+53
View File
@@ -0,0 +1,53 @@
'use client'
import { useState } from 'react';
import PaymentTabTariffs from '@/app/ui/payment/payment-tab-tariffs';
import PaymentTubBuyTokens from './payment-tab-buy-tokens';
import PaymentTabTransactionHistory from './payment-tab-transaction-history';
export default function PaymentTabs() {
let [selectedTab, setSelectedTab] = useState('1');
function switchTabsHandler(tab: string) {
console.log('click');
setSelectedTab(tab);
}
return (
<>
<div className="payment-tabs">
<button
className={`payment-tab ${selectedTab === '1' ? 'active' : ''}`}
onClick={() => {
switchTabsHandler('1')
}}>
Тарифные планы
</button>
<button
className={`payment-tab ${selectedTab === '2' ? 'active' : ''}`}
onClick={() => {
switchTabsHandler('2')
}}>
Пополнить токены
</button>
<button
className={`payment-tab ${selectedTab === '3' ? 'active' : ''}`}
onClick={() => {
switchTabsHandler('3')
}}>
История операций
</button>
</div>
<div className="tab-content">
{selectedTab === '1' && (
<PaymentTabTariffs/>
)}
{selectedTab === '2' && (
<PaymentTubBuyTokens/>
)}
{selectedTab === '3' && (
<PaymentTabTransactionHistory/>
)}
</div>
</>
)
}
+32
View File
@@ -0,0 +1,32 @@
export default function SecurePayments() {
return (
<div className="secure-payments-wrapper">
<h3>
🔒 Безопасные платежи
</h3>
<div className="secure-payments-grid">
<div className="secure-payments-card">
<div className="secure-payments-card-header">
🪪
</div>
<h4>Яндекс.Касса</h4>
<p>Надёжная платёжная система с защитой данных</p>
</div>
<div className="secure-payments-card">
<div className="secure-payments-card-header">
💳
</div>
<h4>Все способы оплаты</h4>
<p>Банковские карты, электронные кошельки, СБП</p>
</div>
<div className="secure-payments-card">
<div className="secure-payments-card-header">
🔐
</div>
<h4>SSL шифрование</h4>
<p>Ваши платёжные данные защищены</p>
</div>
</div>
</div>
)
}
+40
View File
@@ -0,0 +1,40 @@
export default function TokensSpendStats() {
return (
<div className="tokens-stats">
<h3>
Статистика трат токенов
</h3>
<div className="tokens-comparison">
<div className="month-stats current">
<div className="month-title">
Текущий месяц (декабрь 2025)
</div>
<div className="spent-amount">
0
</div>
<div className="spent-label">
токенов потрачено
</div>
<div className="protected-label">
Защищено файлов: <span>0</span>
</div>
</div>
<div className="month-stats">
<div className="month-title">
Прошлый месяц (ноябрь 2025)
</div>
<div className="spent-amount">
0
</div>
<div className="spent-label">
токенов потрачено
</div>
<div className="protected-label">
Защищено файлов: <span>0</span>
</div>
</div>
</div>
</div>
)
}
+41
View File
@@ -0,0 +1,41 @@
export default function UserUsage() {
return (
<div className="usage-stats">
<h3>
📊 Ваше использование
</h3>
<div className="stats-grid">
<div className="stat-card">
<div className="stat-value">0 / 2,000</div>
<div className="stat-label">Файлов в месяц</div>
<div className="progress-bar">
<div
className="progress-fill"
style={{ width: '50%' }}
>
</div>
</div>
</div>
<div className="stat-card">
<div className="stat-value">0 / 20 ГБ</div>
<div className="stat-label">Объём хранилища</div>
<div className="progress-bar">
<div
className="progress-fill"
style={{ width: '50%' }}
>
</div>
</div>
</div>
<div className="stat-card">
<div className="stat-value">0</div>
<div className="stat-label">Токенов на балансе</div>
</div>
<div className="stat-card">
<div className="stat-value">ПРОФИ</div>
<div className="stat-label">Текущий план</div>
</div>
</div>
</div>
)
}