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??使 // null??使
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
name: name.value || null, 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, endpoint: E,
data: P = {} as any, data: P = {} as any,
token?: string | null | undefined, token?: string | null | undefined,
customErrors?: Record<string, { title?: string; text: string; }>,
) => { ) => {
const promise = misskeyApi(endpoint, data, token); const promise = misskeyApi(endpoint, data, token);
promiseDialog(promise, null, async (err) => { 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')) { } else if (err.message.startsWith('Unexpected token')) {
title = i18n.ts.gotInvalidResponseError; title = i18n.ts.gotInvalidResponseError;
text = i18n.ts.gotInvalidResponseErrorDescription; text = i18n.ts.gotInvalidResponseErrorDescription;
} else if (err.code === 'SCREEN_NAME_CONTAINS_PROHIBITED_WORDS') { } else if (customErrors && customErrors[err.code] != null) {
title = i18n.ts.screenNameContainsProhibitedWords; title = customErrors[err.code].title;
text = i18n.ts.screenNameContainsProhibitedWordsDescription; text = customErrors[err.code].text;
} }
alert({ alert({
type: 'error', type: 'error',
@ -89,7 +90,7 @@ export const apiWithDialog = (<E extends keyof Misskey.Endpoints = keyof Misskey
}); });
return promise; return promise;
}) as typeof misskeyApi; });
export function promiseDialog<T extends Promise<any>>( export function promiseDialog<T extends Promise<any>>(
promise: T, promise: T,

View file

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