base_ui/stores/configStore.ts

93 lines
2.2 KiB
TypeScript
Raw Normal View History

2025-02-01 09:34:55 +00:00
import objectPath from "object-path";
import merge from "deepmerge";
// action types
export const SET_LAYOUT_CONFIG = "setLayoutConfig";
export const RESET_LAYOUT_CONFIG = "resetLayoutConfig";
export const OVERRIDE_LAYOUT_CONFIG = "overrideLayoutConfig";
export const OVERRIDE_PAGE_LAYOUT_CONFIG = "overridePageLayoutConfig";
// mutation types
export default {
state: {
config: {
"base_title": "تحریر",
"base_desc": "تحریر",
"base_key": "تحریر",
"base_login": "ورود و فعال سازی"
},
initial: {
"base_title": "تحریر",
"base_desc": "تحریر",
"base_key": "تحریر",
"base_login": "ورود و فعال سازی"
}
},
getters: {
/**
* Get config from layout config
* @param state
* @returns {function(path, defaultValue): *}
*/
layoutConfig: state => (path, defaultValue) => {
return objectPath.get(state.config, path, defaultValue);
}
},
actions: {
/**
* Set and replace the whole config
* @param state
* @param payload
*/
[SET_LAYOUT_CONFIG](state, payload) {
state.commit(SET_LAYOUT_CONFIG, payload);
},
/**
* Reset the config at the initial state
* @param state
*/
[RESET_LAYOUT_CONFIG](state) {
state.commit(RESET_LAYOUT_CONFIG);
},
/**
* Reset the config using saved config in the cache by the layout builder
* @param state
*/
[OVERRIDE_LAYOUT_CONFIG](state) {
state.commit(OVERRIDE_LAYOUT_CONFIG);
},
/**
* Override config by page level
* @param state
* @param payload
*/
[OVERRIDE_PAGE_LAYOUT_CONFIG](state, payload) {
state.commit(OVERRIDE_PAGE_LAYOUT_CONFIG, payload);
}
},
mutations: {
[SET_LAYOUT_CONFIG](state, payload) {
state.config = payload;
},
[RESET_LAYOUT_CONFIG](state) {
state.config = Object.assign({}, state.initial);
},
[OVERRIDE_LAYOUT_CONFIG](state) {
state.config = state.initial = Object.assign(
{},
state.initial,
JSON.parse(localStorage.getItem("config"))
);
},
[OVERRIDE_PAGE_LAYOUT_CONFIG](state, payload) {
state.config = merge(state.config, payload);
}
}
};