import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' import { ChevronDown, ChevronRight, Plus, Wand2 } from 'lucide-react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { qk } from '@/shared/api/query-keys' import type { GroupSuggestionDto } from '@/shared/api/types' import { useApiError } from '@/shared/lib/use-api-error' import { Badge } from '@/shared/ui/badge' import { Button } from '@/shared/ui/button' import { toast } from '@/shared/ui/toast-store' import { createGroupFromSuggestion, suggestGroups } from './api' import { DurationLabel } from './DurationLabel' /** * Что имеет смысл завести группой при нынешней библиотеке. Разбор делает сервер (жанры, типы, * рейтинги, крупные сериалы), здесь — только показ и кнопка. Уже созданное остаётся в списке * помеченным: исчезнувшее без следа предложение читается как сбой, а «уже есть» объясняет, * почему кнопки нет. */ export function GroupSuggestions() { const { t } = useTranslation() const queryClient = useQueryClient() const onError = useApiError() const [collapsed, setCollapsed] = useState(false) const { data, isLoading } = useQuery({ queryKey: qk.groups.suggestions, queryFn: suggestGroups, }) const create = useMutation({ mutationFn: (suggestion: GroupSuggestionDto) => createGroupFromSuggestion(suggestion.key), onSuccess: () => { toast.success(t('admin.groups.suggestions.created')) void queryClient.invalidateQueries({ queryKey: qk.groups.all }) }, onError, }) // Пока предлагать нечего (пустая библиотека или всё уже создано) — секции нет вовсе. if (isLoading || !data || data.length === 0) return null return (
{t('admin.groups.suggestions.hint')}