refactor: added params to filters, and removed manual mutation (#480)

* refractor: added params to fetch key

* feat: create views directly from views list page

fix: selected filter not showing up in multi-level dropdown, refactor: arranged imports

* refactor: added params to filters, and removed manual mutation
This commit is contained in:
Dakshesh Jain 2023-03-21 12:47:47 +05:30 committed by GitHub
parent 505b14e3a6
commit 53df658b60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 40 deletions

View File

@ -1,16 +1,19 @@
const paramsToKey = (params: any) => { const paramsToKey = (params: any) => {
const { state, priority, assignees } = params; const { state, priority, assignees } = params;
let stateKey = state ? state.split(",").join(" ") : ""; let stateKey = state ? state.split(",") : [];
let priorityKey = priority ? priority.split(",").join(" ") : ""; let priorityKey = priority ? priority.split(",") : [];
let assigneesKey = assignees ? assignees.split(",").join(" ") : ""; let assigneesKey = assignees ? assignees.split(",") : [];
const type = params.type ? params.type.toUpperCase() : "NULL";
const groupBy = params.group_by ? params.group_by.toUpperCase() : "NULL";
const orderBy = params.order_by ? params.order_by.toUpperCase() : "NULL";
// sorting each keys in ascending order // sorting each keys in ascending order
stateKey = stateKey.split(" ").sort().join(""); stateKey = stateKey.sort().join("_");
priorityKey = priorityKey.split(" ").sort().join(""); priorityKey = priorityKey.sort().join("_");
assigneesKey = assigneesKey.split(" ").sort().join(""); assigneesKey = assigneesKey.sort().join("_");
return `${stateKey}_${priorityKey}_${assigneesKey}`; return `${stateKey}_${priorityKey}_${assigneesKey}_${type}_${groupBy}_${orderBy}`;
}; };
export const CURRENT_USER = "CURRENT_USER"; export const CURRENT_USER = "CURRENT_USER";

View File

@ -424,39 +424,6 @@ export const IssueViewContextProvider: React.FC<{ children: React.ReactNode }> =
}); });
}, [myViewProps, viewDetails]); }, [myViewProps, viewDetails]);
useEffect(() => {
const params: any = {
order_by: state.orderBy,
group_by: state.groupByProperty,
assignees: state.filters?.assignees ? state.filters?.assignees.join(",") : undefined,
state: state.filters?.state ? state.filters?.state.join(",") : undefined,
priority: state.filters?.priority ? state.filters?.priority.join(",") : undefined,
type: state.filters?.type ? state.filters?.type : undefined,
labels: state.filters?.labels ? state.filters?.labels.join(",") : undefined,
issue__assignees__id: state.filters?.issue__assignees__id
? state.filters?.issue__assignees__id.join(",")
: undefined,
issue__labels__id: state.filters?.issue__labels__id
? state.filters?.issue__labels__id.join(",")
: undefined,
};
// TODO: think of a better way to do this
if (cycleId) {
mutate(CYCLE_ISSUES_WITH_PARAMS(cycleId as string, params), {}, false);
mutate(CYCLE_ISSUES_WITH_PARAMS(cycleId as string, params));
} else if (moduleId) {
mutate(MODULE_ISSUES_WITH_PARAMS(moduleId as string, params), {}, false);
mutate(MODULE_ISSUES_WITH_PARAMS(moduleId as string, params));
} else if (viewId) {
mutate(VIEW_ISSUES(viewId as string), {}, false);
mutate(VIEW_ISSUES(viewId as string));
} else {
mutate(PROJECT_ISSUES_LIST_WITH_PARAMS(projectId as string, params), {}, false);
mutate(PROJECT_ISSUES_LIST_WITH_PARAMS(projectId as string, params));
}
}, [state, projectId, cycleId, moduleId, viewId]);
return ( return (
<issueViewContext.Provider <issueViewContext.Provider
value={{ value={{