import { useCallback, useState } from 'react' import { TFileId, TQueueItemOperation } from '../types' export const useOperationState = (queueItemOperations: TQueueItemOperation[]) => { const [activatedSymbols, setActivatedSymbols] = useState>({}) const getActivated = useCallback( (fileId: TFileId): TQueueItemOperation | undefined => { const symbol = activatedSymbols[fileId] if (!symbol) return undefined return queueItemOperations.find((op) => op.symbol === symbol) }, [activatedSymbols, queueItemOperations], ) const activate = useCallback((fileId: TFileId, operation: TQueueItemOperation) => { setActivatedSymbols((prev) => ({ ...prev, [fileId]: operation.symbol })) }, []) const close = useCallback((fileId: TFileId) => { setActivatedSymbols((prev) => { const updated = { ...prev } delete updated[fileId] return updated }) }, []) return { getActivated, activate, close } }