mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-10 12:38:52 +01:00
* build/refactor: move lint/prettier packages to project root, install husky, add pre-commit hook * refactor: reformat files * build: put full eslintrc back with all rules
33 lines
787 B
TypeScript
33 lines
787 B
TypeScript
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;
|
|
};
|