'use client' import * as React from 'react' // CONTEXT export interface QueryErrorResetBoundaryValue { clearReset: () => void isReset: () => boolean reset: () => void } function createValue(): QueryErrorResetBoundaryValue { let isReset = false return { clearReset: () => { isReset = false }, reset: () => { isReset = true }, isReset: () => { return isReset }, } } const QueryErrorResetBoundaryContext = React.createContext(createValue()) // HOOK export const useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext) // COMPONENT export interface QueryErrorResetBoundaryProps { children: | ((value: QueryErrorResetBoundaryValue) => React.ReactNode) | React.ReactNode } export const QueryErrorResetBoundary = ({ children, }: QueryErrorResetBoundaryProps) => { const [value] = React.useState(() => createValue()) return ( {typeof children === 'function' ? (children as Function)(value) : children} ) }