better error handling

This commit is contained in:
kakkokari-gtyih 2024-10-12 10:55:41 +09:00
parent 02e85ca670
commit 5670b29cfa
3 changed files with 15 additions and 4 deletions

View file

@ -51,6 +51,11 @@ watch(name, () => {
// null??使
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
name: name.value || null,
}, undefined, {
'SCREEN_NAME_CONTAINS_PROHIBITED_WORDS': {
title: i18n.ts.screenNameContainsProhibitedWords,
text: i18n.ts.screenNameContainsProhibitedWordsDescription,
},
});
});

View file

@ -35,6 +35,7 @@ export const apiWithDialog = (<E extends keyof Misskey.Endpoints = keyof Misskey
endpoint: E,
data: P = {} as any,
token?: string | null | undefined,
customErrors?: Record<string, { title?: string; text: string; }>,
) => {
const promise = misskeyApi(endpoint, data, token);
promiseDialog(promise, null, async (err) => {
@ -77,9 +78,9 @@ export const apiWithDialog = (<E extends keyof Misskey.Endpoints = keyof Misskey
} else if (err.message.startsWith('Unexpected token')) {
title = i18n.ts.gotInvalidResponseError;
text = i18n.ts.gotInvalidResponseErrorDescription;
} else if (err.code === 'SCREEN_NAME_CONTAINS_PROHIBITED_WORDS') {
title = i18n.ts.screenNameContainsProhibitedWords;
text = i18n.ts.screenNameContainsProhibitedWordsDescription;
} else if (customErrors && customErrors[err.code] != null) {
title = customErrors[err.code].title;
text = customErrors[err.code].text;
}
alert({
type: 'error',
@ -89,7 +90,7 @@ export const apiWithDialog = (<E extends keyof Misskey.Endpoints = keyof Misskey
});
return promise;
}) as typeof misskeyApi;
});
export function promiseDialog<T extends Promise<any>>(
promise: T,

View file

@ -206,6 +206,11 @@ function save() {
lang: profile.lang || null,
isBot: !!profile.isBot,
isCat: !!profile.isCat,
}, undefined, {
'SCREEN_NAME_CONTAINS_PROHIBITED_WORDS': {
title: i18n.ts.screenNameContainsProhibitedWords,
text: i18n.ts.screenNameContainsProhibitedWordsDescription,
},
});
globalEvents.emit('requestClearPageCache');
claimAchievement('profileFilled');