zy-vue-library/hooks/useQueryCriteria/index.js

44 lines
1.4 KiB
JavaScript

import { useQueryCriteriaStore } from "../../pinia/queryCriteria/index.js";
function getCriteriaKey(tabsActiveName) {
const key = window.location.href;
return tabsActiveName ? `${key}/${tabsActiveName}` : key;
}
export const getQueryCriteria = (tabsActiveName) => {
const miscellaneousStore = useQueryCriteriaStore();
const criteriaKey = getCriteriaKey(tabsActiveName);
const queryCriteria = miscellaneousStore.getQueryCriteria[criteriaKey] || {};
return {
pagination: queryCriteria.pagination,
searchForm: queryCriteria.searchForm,
tabsActiveName,
};
};
export const setQueryCriteria = (data, tabsActiveName) => {
const miscellaneousStore = useQueryCriteriaStore();
const criteriaKey = getCriteriaKey(tabsActiveName);
miscellaneousStore.setQueryCriteria({
...miscellaneousStore.getQueryCriteria,
[criteriaKey]: {
...miscellaneousStore.getQueryCriteria[criteriaKey],
...data,
},
});
};
export const resetQueryCriteria = () => {
const miscellaneousStore = useQueryCriteriaStore();
miscellaneousStore.resetQueryCriteria();
};
export const getTabsActiveName = () => {
const miscellaneousStore = useQueryCriteriaStore();
return miscellaneousStore.getQueryCriteriaTabsActiveName;
};
export const setTabsActiveName = (name) => {
const miscellaneousStore = useQueryCriteriaStore();
miscellaneousStore.setQueryCriteriaTabsActiveName(name);
};