You've already forked AstralRinth
forked from didirus/AstralRinth
refactor: migrate to common eslint+prettier configs (#4168)
* refactor: migrate to common eslint+prettier configs * fix: prettier frontend * feat: config changes * fix: lint issues * fix: lint * fix: type imports * fix: cyclical import issue * fix: lockfile * fix: missing dep * fix: switch to tabs * fix: continue switch to tabs * fix: rustfmt parity * fix: moderation lint issue * fix: lint issues * fix: ui intl * fix: lint issues * Revert "fix: rustfmt parity" This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711. * feat: revert last rs
This commit is contained in:
@@ -1,38 +1,38 @@
|
||||
import { injectNotificationManager } from "@modrinth/ui";
|
||||
import { injectNotificationManager } from '@modrinth/ui'
|
||||
|
||||
type AsyncFunction<TArgs extends any[], TResult> = (...args: TArgs) => Promise<TResult>;
|
||||
type ErrorFunction = (err: any) => void | Promise<void>;
|
||||
type VoidFunction = () => void | Promise<void>;
|
||||
type AsyncFunction<TArgs extends any[], TResult> = (...args: TArgs) => Promise<TResult>
|
||||
type ErrorFunction = (err: any) => void | Promise<void>
|
||||
type VoidFunction = () => void | Promise<void>
|
||||
|
||||
type useClientTry = <TArgs extends any[], TResult>(
|
||||
fn: AsyncFunction<TArgs, TResult>,
|
||||
onFail?: ErrorFunction,
|
||||
onFinish?: VoidFunction,
|
||||
) => (...args: TArgs) => Promise<TResult | undefined>;
|
||||
fn: AsyncFunction<TArgs, TResult>,
|
||||
onFail?: ErrorFunction,
|
||||
onFinish?: VoidFunction,
|
||||
) => (...args: TArgs) => Promise<TResult | undefined>
|
||||
|
||||
const defaultOnError: ErrorFunction = (error) => {
|
||||
const { addNotification } = injectNotificationManager();
|
||||
addNotification({
|
||||
title: "An error occurred",
|
||||
text: error?.data?.description || error.message || error || "Unknown error",
|
||||
type: "error",
|
||||
});
|
||||
};
|
||||
const { addNotification } = injectNotificationManager()
|
||||
addNotification({
|
||||
title: 'An error occurred',
|
||||
text: error?.data?.description || error.message || error || 'Unknown error',
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
|
||||
export const useClientTry: useClientTry =
|
||||
(fn, onFail = defaultOnError, onFinish) =>
|
||||
async (...args) => {
|
||||
startLoading();
|
||||
try {
|
||||
return await fn(...args);
|
||||
} catch (err) {
|
||||
if (onFail) {
|
||||
await onFail(err);
|
||||
} else {
|
||||
console.error("[CLIENT TRY ERROR]", err);
|
||||
}
|
||||
} finally {
|
||||
if (onFinish) await onFinish();
|
||||
stopLoading();
|
||||
}
|
||||
};
|
||||
(fn, onFail = defaultOnError, onFinish) =>
|
||||
async (...args) => {
|
||||
startLoading()
|
||||
try {
|
||||
return await fn(...args)
|
||||
} catch (err) {
|
||||
if (onFail) {
|
||||
await onFail(err)
|
||||
} else {
|
||||
console.error('[CLIENT TRY ERROR]', err)
|
||||
}
|
||||
} finally {
|
||||
if (onFinish) await onFinish()
|
||||
stopLoading()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user