mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
|
import { TIssueBoardKeys } from "types/issue";
|
||
|
import { IIssueFilterOptions, TIssueParams } from "./types";
|
||
|
|
||
|
export const isNil = (value: any) => {
|
||
|
if (value === undefined || value === null) return true;
|
||
|
|
||
|
return false;
|
||
|
};
|
||
|
|
||
|
export interface ILayoutDisplayFiltersOptions {
|
||
|
filters: (keyof IIssueFilterOptions)[];
|
||
|
display_properties: boolean | null;
|
||
|
display_filters: null;
|
||
|
extra_options: null;
|
||
|
}
|
||
|
|
||
|
export const ISSUE_DISPLAY_FILTERS_BY_LAYOUT: {
|
||
|
[pageType: string]: { [layoutType: string]: ILayoutDisplayFiltersOptions };
|
||
|
} = {
|
||
|
issues: {
|
||
|
list: {
|
||
|
filters: ["priority", "state", "labels"],
|
||
|
display_properties: null,
|
||
|
display_filters: null,
|
||
|
extra_options: null,
|
||
|
},
|
||
|
kanban: {
|
||
|
filters: ["priority", "state", "labels"],
|
||
|
display_properties: null,
|
||
|
display_filters: null,
|
||
|
extra_options: null,
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export const handleIssueQueryParamsByLayout = (
|
||
|
layout: TIssueBoardKeys | undefined,
|
||
|
viewType: "issues"
|
||
|
): TIssueParams[] | null => {
|
||
|
const queryParams: TIssueParams[] = [];
|
||
|
|
||
|
if (!layout) return null;
|
||
|
|
||
|
const layoutOptions = ISSUE_DISPLAY_FILTERS_BY_LAYOUT[viewType][layout];
|
||
|
|
||
|
// add filters query params
|
||
|
layoutOptions.filters.forEach((option) => {
|
||
|
queryParams.push(option);
|
||
|
});
|
||
|
|
||
|
return queryParams;
|
||
|
};
|