Files
react/components/utils/use-zeit-ui-context.ts
2020-03-19 01:15:58 +08:00

23 lines
724 B
TypeScript

import React from 'react'
import { ToastWithID } from '../toast/toast-container'
export type UpdateToastsFunction<T> = (fn: (toasts: Array<T>) => Array<T>) => any
export interface ZeitUiContextParams {
toasts: Array<ToastWithID>
toastHovering: boolean
updateToasts: UpdateToastsFunction<ToastWithID>
updateToastHoverStatus: Function
}
const defaultParams: ZeitUiContextParams = {
toasts: [],
toastHovering: false,
updateToasts: t => t,
updateToastHoverStatus: () => {}
}
export const ZEITUIContent:React.Context<ZeitUiContextParams> = React.createContext<ZeitUiContextParams>(defaultParams)
export const useZEITUIContext = (): ZeitUiContextParams => React.useContext<ZeitUiContextParams>(ZEITUIContent)