docking-vue/src/hooks/useQueryCriteria.js

55 lines
1.6 KiB
JavaScript

import { useMiscellaneousStore } from "@/pinia/miscellaneous.js";
export const getQueryCriteria = () => {
const miscellaneousStore = useMiscellaneousStore();
const key = window.location.href;
let queryCriteria = miscellaneousStore.getQueryCriteria[key] || {};
if (queryCriteria.tabsActiveName) {
queryCriteria =
miscellaneousStore.getQueryCriteria[
key + "/" + queryCriteria.tabsActiveName
] || {};
}
const pagination = queryCriteria.pagination;
const searchForm = queryCriteria.searchForm;
const tabsActiveName = queryCriteria.tabsActiveName;
return {
pagination,
searchForm,
tabsActiveName,
};
};
export const setQueryCriteria = (data) => {
const miscellaneousStore = useMiscellaneousStore();
let key = window.location.href;
if (data.tabsActiveName) {
miscellaneousStore.setQueryCriteria({
...miscellaneousStore.getQueryCriteria,
[key]: {
...miscellaneousStore.getQueryCriteria[key],
tabsActiveName: data.tabsActiveName,
},
});
key = key + "/" + data.tabsActiveName;
}
miscellaneousStore.setQueryCriteria({
...miscellaneousStore.getQueryCriteria,
[key]: {
...miscellaneousStore.getQueryCriteria[key],
...data,
},
});
};
export const resetQueryCriteria = () => {
const miscellaneousStore = useMiscellaneousStore();
miscellaneousStore.resetQueryCriteria();
};
export const getTabsActiveName = () => {
const key = window.location.href;
const miscellaneousStore = useMiscellaneousStore();
const queryCriteria = miscellaneousStore.getQueryCriteria[key] || {};
return queryCriteria.tabsActiveName;
};