erp-platform/ui/src/store/locale.model.ts

46 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-05-06 06:45:49 +00:00
import type { Action, ThunkOn } from 'easy-peasy'
import { action, thunkOn } from 'easy-peasy'
import appConfig from '../configs/app.config'
import { Injections, StoreModel } from '.'
export interface LocaleStoreModel {
currentLang: string
currentUiVersion: string | undefined
currentTenantName?: string
2025-05-06 06:45:49 +00:00
}
export interface LocaleStoreActions {
setLang: Action<LocaleStoreModel, string>
onSetLang: ThunkOn<LocaleModel, Injections, StoreModel>
setUiVersion: Action<LocaleStoreModel, string | undefined>
setTenantName: Action<LocaleStoreModel, string | undefined>
2025-05-06 06:45:49 +00:00
}
export type LocaleModel = LocaleStoreModel & LocaleStoreActions
const initialState: LocaleStoreModel = {
currentLang: appConfig.locale,
currentUiVersion: appConfig.uiVersion,
currentTenantName: undefined
2025-05-06 06:45:49 +00:00
}
export const localeModel: LocaleModel = {
...initialState,
setLang: action((state, payload) => {
state.currentLang = payload
}),
onSetLang: thunkOn(
(actions) => actions.setLang,
async (actions, target, helpers) => {
// Dil değiştiğince AppConfig ve Localizationları tekrar al
helpers.getStoreActions().abpConfig.getConfig(false)
},
),
setUiVersion: action((state, payload) => {
state.currentUiVersion = payload
}),
setTenantName: action((state, payload) => {
state.currentTenantName = payload
}),
2025-05-06 06:45:49 +00:00
}