import { useState } from 'react' import { useQueryClient } from '@tanstack/react-query' import { Plus, MoreHorizontal, Settings2, Trash2, Tags, TestTube, DollarSign, SortAsc, RefreshCw, ArrowUpFromLine, } from 'lucide-react' import { useTranslation } from 'react-i18next' import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuCheckboxItem, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { Label } from '@/components/ui/label' import { Switch } from '@/components/ui/switch' import { ConfirmDialog } from '@/components/confirm-dialog' import { handleDeleteAllDisabled, handleFixAbilities, handleTestAllChannels, handleUpdateAllBalances, } from '../lib' import { useChannels } from './channels-provider' export function ChannelsPrimaryButtons() { const { t } = useTranslation() const { setOpen, enableTagMode, setEnableTagMode, idSort, setIdSort, upstream, } = useChannels() const queryClient = useQueryClient() const [showDeleteDialog, setShowDeleteDialog] = useState(false) const handleTagModeToggle = (checked: boolean) => { localStorage.setItem('enable-tag-mode', String(checked)) setEnableTagMode(checked) } const handleIdSortToggle = (checked: boolean) => { localStorage.setItem('channels-id-sort', String(checked)) setIdSort(checked) } return ( <>
{/* Desktop: Toggle switches visible */}
{/* Create Channel */} {/* More Actions */} {/* Mobile-only: toggle switches */} {t('Tag Mode')} {t('Sort by ID')} { handleTestAllChannels(queryClient) }} > {t('Test All Channels')} { handleUpdateAllBalances(queryClient) }} > {t('Update All Balances')} upstream.detectAllUpdates()} disabled={upstream.detectAllLoading} > {t('Detect All Upstream Updates')} upstream.applyAllUpdates()} disabled={upstream.applyAllLoading} > {t('Apply All Upstream Updates')} { handleFixAbilities(queryClient, (_result) => { // eslint-disable-next-line no-console console.log('Fix abilities result:', _result) }) }} > {t('Fix Abilities')} { e.preventDefault() setShowDeleteDialog(true) }} className='text-destructive focus:text-destructive' > {t('Delete All Disabled')}
{ handleDeleteAllDisabled(queryClient, (_count) => { // eslint-disable-next-line no-console console.log(`Deleted ${_count} channels`) }) setShowDeleteDialog(false) }} /> ) }