import { useState } from 'react';
import { router } from '@inertiajs/react';

export function useToggleStatus(toggleRoute: (id: number) => string) {
    const [toggleId, setToggleId] = useState<number | null>(null);

    const openDialog = (id: number) => setToggleId(id);
    const closeDialog = () => setToggleId(null);

    const handleToggle = () => {
        if (toggleId) {
            router.post(
                toggleRoute(toggleId),
                {},
                {
                    onSuccess: closeDialog,
                }
            );
        }
    };

    return {
        toggleId,
        isOpen: toggleId !== null,
        openDialog,
        closeDialog,
        handleToggle,
    };
}
