Добавлена возможность указывать для invokeWebApiWrapperAsync в качестве текста ошибки метод, принимающий самую ошибку и возвращающий текст

This commit is contained in:
goodmice 2021-12-07 19:37:13 +05:00
parent 8a848b56c5
commit f389097439

View File

@ -31,7 +31,11 @@ export const notify = (body: string|any, notifyType:string ='info', other?: any)
type asyncFunction = (...args:any) => Promise<any|void>; type asyncFunction = (...args:any) => Promise<any|void>;
export const invokeWebApiWrapperAsync = async (funcAsync: asyncFunction, setShowLoader: Dispatch<SetStateAction<boolean>>, errorNotifyText: string) => { export const invokeWebApiWrapperAsync = async (
funcAsync: asyncFunction,
setShowLoader: Dispatch<SetStateAction<boolean>>,
errorNotifyText: (string | ((ex: unknown) => string))
) => {
if(setShowLoader) if(setShowLoader)
setShowLoader(true) setShowLoader(true)
try{ try{
@ -39,8 +43,11 @@ export const invokeWebApiWrapperAsync = async (funcAsync: asyncFunction, setShow
} catch (ex) { } catch (ex) {
if(process.env.NODE_ENV === 'development') if(process.env.NODE_ENV === 'development')
console.error(ex) console.error(ex)
if(errorNotifyText) if(errorNotifyText) {
notify(errorNotifyText, 'error') if (typeof errorNotifyText === 'function')
notify(errorNotifyText(ex), 'error')
else notify(errorNotifyText, 'error')
}
} finally{ } finally{
if(setShowLoader) if(setShowLoader)
setShowLoader(false) setShowLoader(false)