"use client"; import { useState } from "react"; import { useQueryClient } from "@tanstack/react-query"; import { toast } from "sonner"; import { api } from "@/lib/api"; import type { ChannelResponse } from "@/lib/types"; export function useRegenerateAllSchedules( channels: ChannelResponse[] | undefined, token: string | null, ) { const queryClient = useQueryClient(); const [isRegeneratingAll, setIsRegeneratingAll] = useState(false); const handleRegenerateAll = async () => { if (!token || !channels || channels.length === 0) return; setIsRegeneratingAll(true); let failed = 0; for (const ch of channels) { try { await api.schedule.generate(ch.id, token); queryClient.invalidateQueries({ queryKey: ["schedule", ch.id] }); } catch { failed++; } } setIsRegeneratingAll(false); if (failed === 0) toast.success(`All ${channels.length} schedules regenerated`); else toast.error(`${failed} schedule(s) failed to generate`); }; return { isRegeneratingAll, handleRegenerateAll }; }