import { Notification, toast } from '@/components/ui' import { generateBackgroundWorkers } from '@/services/background-worker.service' import { getLocalization } from '@/services/localization.service' import { store } from '@/store' import { clearRedisCache } from './languageText.service' import { kickUser } from './identity.service' import { getSetupMigrate } from './setup.service' export abstract class UiEvalService { static Init = () => { //console.log('init') } private static translate = ( localizationKey: string, params?: Record, defaultResourceName?: string, ): string => { const { texts, config } = store.getState().abpConfig if (!texts) return localizationKey return getLocalization( texts, defaultResourceName ?? config?.localization?.defaultResourceName, localizationKey, params, ) } private static runWithToast = (asyncFn: () => Promise, toastKey: string) => { asyncFn() toast.push( {UiEvalService.translate(toastKey)} , { placement: 'top-end' }, ) } static ApiGenerateBackgroundWorkers = () => { UiEvalService.runWithToast(() => generateBackgroundWorkers(), '::App.BackgroundWorkers.Message') } static ApiClearRedisCache = () => { UiEvalService.runWithToast(() => clearRedisCache(), '::App.ClearRedisCache.Message') } static ApiKickUser = (userId: string, gridRef?: any) => { UiEvalService.runWithToast(async () => { await kickUser(userId) if (gridRef?.current) { gridRef.current.instance().refresh() } }, '::App.KickUser.Message') } static ApiDbMigrate = () => { UiEvalService.runWithToast(async () => { await getSetupMigrate() }, '::App.DbMigrate.StartMessage') } } const _global = (window || global) as any _global.UiEvalService = UiEvalService