UNPKG

@brightlayer-ui/react-native-auth-workflow

Version:

Re-usable workflow components for Authentication and Registration within Eaton applications.

34 lines (33 loc) 1.41 kB
import { useState } from 'react'; import { useErrorContext } from '.'; export const useErrorManager = () => { const errorConfig = useErrorContext(); const [error, setError] = useState(new Error()); const isAuthError = (err) => err.cause !== undefined; const getErrorDisplayConfig = (err) => { if (isAuthError(err)) { return Object.assign(Object.assign({}, errorConfig), { dialogConfig: Object.assign(Object.assign({}, errorConfig.dialogConfig), { title: err.cause.title }), error: err.cause.errorMessage, errorOptions: err.cause.errorOptions, titleOptions: err.cause.titleOptions, onClose: () => { setError(new Error()); } }); } return Object.assign(Object.assign({}, errorConfig), { error: err.message, onClose: () => { setError(new Error()); } }); }; const triggerError = (err) => { if (isAuthError(err)) { setError({ cause: { title: err.cause.title, errorMessage: err.cause.errorMessage, errorOptions: err.cause.errorOptions, titleOptions: err.cause.titleOptions, }, }); } else { setError(err); } }; return { triggerError: triggerError, errorManagerConfig: getErrorDisplayConfig(error) }; };