| import React, { useState } from 'react'; | |
| export type ApiError = { | |
| error: any; | |
| setError: (error: any) => void; | |
| }; | |
| const ApiErrorBoundaryContext = React.createContext<ApiError | undefined>(undefined); | |
| export const ApiErrorBoundaryProvider = ({ | |
| value, | |
| children, | |
| }: { | |
| value?: ApiError; | |
| children: React.ReactNode; | |
| }) => { | |
| const [error, setError] = useState(false); | |
| return ( | |
| <ApiErrorBoundaryContext.Provider value={value ? value : { error, setError }}> | |
| {children} | |
| </ApiErrorBoundaryContext.Provider> | |
| ); | |
| }; | |
| export const useApiErrorBoundary = () => { | |
| const context = React.useContext(ApiErrorBoundaryContext); | |
| if (context === undefined) { | |
| throw new Error('useApiErrorBoundary must be used inside ApiErrorBoundaryProvider'); | |
| } | |
| return context; | |
| }; | |