import { useTranslation } from 'react-i18next'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { SettingDefinition, adminSettingsApi } from '../../api/adminSettings'; import { QuickToggles } from './QuickToggles'; import { SettingsTableRow } from './SettingsTableRow'; interface CategoryGroup { key: string; label: string; settings: SettingDefinition[]; } interface SettingsTabProps { categories: CategoryGroup[]; searchQuery: string; filteredSettings: SettingDefinition[]; isFavorite: (key: string) => boolean; toggleFavorite: (key: string) => void; } export function SettingsTab({ categories, searchQuery, filteredSettings, isFavorite, toggleFavorite, }: SettingsTabProps) { const { t } = useTranslation(); const queryClient = useQueryClient(); const updateSettingMutation = useMutation({ mutationFn: ({ key, value }: { key: string; value: string }) => adminSettingsApi.updateSetting(key, value), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['admin-settings'] }); }, }); const resetSettingMutation = useMutation({ mutationFn: (key: string) => adminSettingsApi.resetSetting(key), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['admin-settings'] }); }, }); // Search mode: flat list of filtered results if (searchQuery) { if (filteredSettings.length === 0) { return (
{t('admin.settings.noSettings')}
{t('admin.settings.noSettings')}