mirror of
https://github.com/makeplane/plane.git
synced 2026-07-12 13:29:56 +02:00
53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
// types
|
|
import { TIssueActivityComment } from "@plane/types";
|
|
// ce constants
|
|
import {
|
|
TActivityFilters as TActivityFiltersCe,
|
|
EActivityFilterType,
|
|
ACTIVITY_FILTER_TYPE_OPTIONS as ACTIVITY_FILTER_TYPE_OPTIONS_CE,
|
|
} from "@/ce/constants/issues";
|
|
|
|
export enum EActivityFilterTypeEE {
|
|
WORKLOG = "WORKLOG",
|
|
ISSUE_ADDITIONAL_PROPERTIES_ACTIVITY = "ISSUE_ADDITIONAL_PROPERTIES_ACTIVITY",
|
|
}
|
|
|
|
export type TActivityFilters = TActivityFiltersCe | EActivityFilterTypeEE.WORKLOG;
|
|
|
|
export const ACTIVITY_FILTER_TYPE_OPTIONS: Record<TActivityFilters, { label: string }> = {
|
|
...ACTIVITY_FILTER_TYPE_OPTIONS_CE,
|
|
[EActivityFilterTypeEE.WORKLOG]: {
|
|
label: "Worklogs",
|
|
},
|
|
};
|
|
|
|
export const defaultActivityFilters: TActivityFilters[] = [
|
|
EActivityFilterType.ACTIVITY,
|
|
EActivityFilterType.COMMENT,
|
|
EActivityFilterTypeEE.WORKLOG,
|
|
];
|
|
|
|
export type TActivityFilterOption = {
|
|
key: TActivityFilters;
|
|
label: string;
|
|
isSelected: boolean;
|
|
onClick: () => void;
|
|
};
|
|
|
|
const shouldRenderActivity = (activity: TIssueActivityComment, filter: TActivityFilters): boolean =>
|
|
activity.activity_type === filter ||
|
|
(filter === EActivityFilterType.ACTIVITY &&
|
|
activity.activity_type === EActivityFilterTypeEE.ISSUE_ADDITIONAL_PROPERTIES_ACTIVITY);
|
|
|
|
export const filterActivityOnSelectedFilters = (
|
|
activity: TIssueActivityComment[],
|
|
filters: TActivityFilters[]
|
|
): TIssueActivityComment[] =>
|
|
activity.filter((activity) => filters.some((filter) => shouldRenderActivity(activity, filter)));
|
|
|
|
export { EActivityFilterType };
|
|
|
|
export const ENABLE_LOCAL_DB_CACHE = true;
|
|
|
|
export const ENABLE_ISSUE_DEPENDENCIES = true;
|