diff --git a/packages/phrases/src/locales/en.ts b/packages/phrases/src/locales/en.ts index 4aaafeb5b..5f8b17915 100644 --- a/packages/phrases/src/locales/en.ts +++ b/packages/phrases/src/locales/en.ts @@ -81,8 +81,8 @@ const translation = { passwords_do_not_match: 'Passwords do not match.', agree_terms_required: 'You must agree to the Terms of Use before continuing.', invalid_passcode: 'The passcode is invalid.', - request: 'Request error ({{code}}):{{message}}', - unknown: 'Unknown error, please try again later.', + request: 'Request Error:{{message}}', + unknown: 'Request Error, please try again later.', }, }, admin_console: { diff --git a/packages/phrases/src/locales/zh-cn.ts b/packages/phrases/src/locales/zh-cn.ts index 0e554dc41..8b72a1f18 100644 --- a/packages/phrases/src/locales/zh-cn.ts +++ b/packages/phrases/src/locales/zh-cn.ts @@ -81,8 +81,8 @@ const translation = { passwords_do_not_match: '密码不匹配。', agree_terms_required: '你需要同意使用条款以继续。', invalid_passcode: '无效的验证码。', - request: '请求错误({{ code }}):{{ message }}', - unknown: '未知错误,请稍后重试。', + request: '请求异常:{{ message }}', + unknown: '请求异常,请稍后重试。', }, }, admin_console: { diff --git a/packages/ui/src/hooks/use-api.ts b/packages/ui/src/hooks/use-api.ts index 66f2946ed..87b5da365 100644 --- a/packages/ui/src/hooks/use-api.ts +++ b/packages/ui/src/hooks/use-api.ts @@ -29,6 +29,26 @@ function useApi( const { setLoading, setToast } = useContext(PageContext); + const parseError = useCallback( + async (error: unknown) => { + if (error instanceof HTTPError) { + try { + const kyError = await error.response.json(); + setError(kyError); + } catch { + setToast(t('error.unknown')); + console.log(error); + } + + return; + } + + setToast(t('error.unknown')); + console.log(error); + }, + [setToast, t] + ); + const run = useCallback( async (...args: Args) => { setLoading(true); @@ -41,20 +61,12 @@ function useApi( return result; } catch (error: unknown) { - if (error instanceof HTTPError && error.response.body) { - const kyError = await error.response.json(); - setError(kyError); - - return; - } - - setToast(t('error.unknown')); - console.log(error); + void parseError(error); } finally { setLoading(false); } }, - [api, setLoading, setToast, t] + [api, parseError, setLoading] ); useEffect(() => {