import { useState, useCallback } from 'react'; import { placeCalcuttaBid, cancelCalcuttaBid } from '@bettoredge/api'; import type { CalcuttaBidProps } from '@bettoredge/types'; export interface CalcuttaBidState { loading: boolean; error?: string; last_bid?: CalcuttaBidProps; } export const useCalcuttaBid = () => { const [state, setState] = useState({ loading: false }); const placeBid = useCallback(async (calcutta_auction_item_id: string, amount: number) => { setState({ loading: true }); try { const resp = await placeCalcuttaBid({ calcutta_auction_item_id, amount }); setState({ loading: false, last_bid: resp.bid }); return resp.bid; } catch (e: any) { setState({ loading: false, error: e.message }); throw e; } }, []); const cancelBid = useCallback(async (calcutta_bid_id: string) => { setState(prev => ({ ...prev, loading: true })); try { const resp = await cancelCalcuttaBid(calcutta_bid_id); setState({ loading: false, last_bid: resp.bid }); return resp.bid; } catch (e: any) { setState(prev => ({ ...prev, loading: false, error: e.message })); throw e; } }, []); const clearError = useCallback(() => { setState(prev => ({ ...prev, error: undefined })); }, []); return { ...state, placeBid, cancelBid, clearError }; };