feat: add success notification modal for balance and subscription events

- Add zustand store for global success notifications
- Create SuccessNotificationModal component with prominent UI
- Update WebSocketNotifications to show modal for important events:
  - balance.topup shows balance topped up modal
  - subscription.activated shows activation modal
  - subscription.renewed shows renewal modal
- Add translations for all locales (ru, en, zh, fa)
This commit is contained in:
c0mrade
2026-01-30 19:39:14 +03:00
parent ca227f3975
commit 175b5608b2
8 changed files with 439 additions and 54 deletions

View File

@@ -120,6 +120,27 @@
"receivedMessage": "Payment of {{amount}} {{currency}} received"
}
},
"successNotification": {
"balanceTopup": {
"title": "Balance topped up!"
},
"subscriptionActivated": {
"title": "Subscription activated!"
},
"subscriptionRenewed": {
"title": "Subscription renewed!"
},
"subscriptionPurchased": {
"title": "Subscription purchased!"
},
"amount": "Amount",
"price": "Price",
"newBalance": "New balance",
"tariff": "Tariff",
"validUntil": "Valid until",
"goToSubscription": "Go to Subscription",
"goToBalance": "Go to Balance"
},
"auth": {
"login": "Login",
"register": "Register",

View File

@@ -114,6 +114,27 @@
"receivedMessage": "پرداخت {{amount}} {{currency}} دریافت شد"
}
},
"successNotification": {
"balanceTopup": {
"title": "موجودی شارژ شد!"
},
"subscriptionActivated": {
"title": "اشتراک فعال شد!"
},
"subscriptionRenewed": {
"title": "اشتراک تمدید شد!"
},
"subscriptionPurchased": {
"title": "اشتراک خریداری شد!"
},
"amount": "مبلغ",
"price": "قیمت",
"newBalance": "موجودی جدید",
"tariff": "تعرفه",
"validUntil": "معتبر تا",
"goToSubscription": "رفتن به اشتراک",
"goToBalance": "رفتن به موجودی"
},
"auth": {
"login": "ورود",
"register": "ثبت نام",

View File

@@ -123,6 +123,27 @@
"receivedMessage": "Получен платёж на сумму {{amount}} {{currency}}"
}
},
"successNotification": {
"balanceTopup": {
"title": "Баланс пополнен!"
},
"subscriptionActivated": {
"title": "Подписка активирована!"
},
"subscriptionRenewed": {
"title": "Подписка продлена!"
},
"subscriptionPurchased": {
"title": "Подписка оплачена!"
},
"amount": "Сумма",
"price": "Стоимость",
"newBalance": "Новый баланс",
"tariff": "Тариф",
"validUntil": "Действует до",
"goToSubscription": "Перейти к подписке",
"goToBalance": "Перейти к балансу"
},
"auth": {
"login": "Вход",
"register": "Регистрация",

View File

@@ -114,6 +114,27 @@
"receivedMessage": "收到付款 {{amount}} {{currency}}"
}
},
"successNotification": {
"balanceTopup": {
"title": "余额已充值!"
},
"subscriptionActivated": {
"title": "订阅已激活!"
},
"subscriptionRenewed": {
"title": "订阅已续期!"
},
"subscriptionPurchased": {
"title": "订阅已购买!"
},
"amount": "金额",
"price": "价格",
"newBalance": "新余额",
"tariff": "套餐",
"validUntil": "有效期至",
"goToSubscription": "查看订阅",
"goToBalance": "查看余额"
},
"auth": {
"login": "登录",
"register": "注册",