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 } export interface LocaleStoreActions { setLang: Action onSetLang: ThunkOn setUiVersion: Action setTenantName: Action } export type LocaleModel = LocaleStoreModel & LocaleStoreActions const initialState: LocaleStoreModel = { currentLang: appConfig.locale, currentUiVersion: appConfig.uiVersion, currentTenantName: undefined } 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 }), }