import { ApplicationStore } from '@/state' import { FlashStore } from '@/state/flashes' import { Actions, useStoreActions } from 'easy-peasy' interface KeyedFlashStore { addError: (message: string, title?: string) => void clearFlashes: () => void clearAndAddHttpError: (error?: Error | string | null) => void } const useFlash = (): Actions => { return useStoreActions( (actions: Actions) => actions.flashes ) } const useFlashKey = (key: string): KeyedFlashStore => { const { addFlash, clearFlashes, clearAndAddHttpError } = useFlash() return { addError: (message, title) => addFlash({ key, message, title, type: 'error' }), clearFlashes: () => clearFlashes(key), clearAndAddHttpError: error => clearAndAddHttpError({ key, error }), } } export { useFlashKey } export default useFlash