import { useCallback } from 'react' import { isObject } from '../../utils/types' import { useSendWithButton } from '..' import { composeBookURL, processBook } from '../../api/book' type BookResponse = { Success: boolean } const isBookResponse = (obj: unknown): obj is BookResponse => ( isObject(obj, { 'Success': 'boolean' }) ) function useBook() { const { doSend, button } = useSendWithButton('Забронировать', 'Забронировано', true, composeBookURL(), 'POST', true, isBookResponse, processBook ) const handleBook = useCallback((id: number) => { void doSend({ body: JSON.stringify({ id }), headers: { 'Content-Type': 'application/json' } }) }, [doSend]) return { handleBook, bookButton: button } } export default useBook