import { useState } from 'react' import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query' import { useTranslation } from 'react-i18next' import { tariffsApi, TariffListItem, TariffDetail, TariffCreateRequest, TariffUpdateRequest, PeriodPrice, ServerInfo, ServerTrafficLimit } from '../api/tariffs' // Icons const TariffIcon = () => ( ) const PlusIcon = () => ( ) const EditIcon = () => ( ) const TrashIcon = () => ( ) const CheckIcon = () => ( ) const XIcon = () => ( ) const InfinityIcon = () => ( ) const CalendarIcon = () => ( ) const SunIcon = () => ( ) // Type selection modal interface TariffTypeSelectProps { onSelect: (isDaily: boolean) => void onClose: () => void } function TariffTypeSelect({ onSelect, onClose }: TariffTypeSelectProps) { return (
Оплата за период
0 = безлимитный трафик
Влияет на доступность перехода между тарифами
Добавьте периоды и цены для тарифа. Пользователи смогут выбирать из добавленных периодов.
{/* Add new period */}Выберите серверы, доступные на этом тарифе. Можно задать индивидуальный лимит трафика для каждого.
{servers.length === 0 ? (Нет доступных серверов
) : ( servers.map(server => { const isSelected = selectedSquads.includes(server.squad_uuid) const serverLimit = serverTrafficLimits[server.squad_uuid]?.traffic_limit_gb || 0 return (0 = докупка недоступна
0 = без ограничений
Ежедневное списание
Списывается ежедневно с баланса пользователя
Выберите серверы, доступные на этом тарифе.
{servers.length === 0 ? (Нет доступных серверов
) : ( servers.map(server => { const isSelected = selectedSquads.includes(server.squad_uuid) const serverLimit = serverTrafficLimits[server.squad_uuid]?.traffic_limit_gb || 0 return (0 = докупка недоступна
0 = без ограничений
{t('admin.tariffs.subtitle')}
{t('admin.tariffs.noTariffs')}
{t('admin.tariffs.confirmDeleteText')}