2024-06-10 06:46:23 +00:00
|
|
|
import { IStateLite, IWorkspaceLite, TIssuePriorities, TStateGroups } from "@plane/types";
|
|
|
|
|
2024-05-16 07:37:47 +00:00
|
|
|
export type TIssueLayout = "list" | "kanban" | "calendar" | "spreadsheet" | "gantt";
|
|
|
|
export type TIssueLayoutOptions = {
|
|
|
|
[key in TIssueLayout]: boolean;
|
|
|
|
};
|
2023-09-01 11:12:30 +00:00
|
|
|
|
2024-05-16 07:37:47 +00:00
|
|
|
export type TIssueFilterPriorityObject = {
|
2024-06-10 06:46:23 +00:00
|
|
|
key: TIssuePriorities;
|
2023-09-01 11:12:30 +00:00
|
|
|
title: string;
|
|
|
|
className: string;
|
|
|
|
icon: string;
|
2024-05-16 07:37:47 +00:00
|
|
|
};
|
2023-09-01 11:12:30 +00:00
|
|
|
|
2024-05-16 07:37:47 +00:00
|
|
|
export type TIssueFilterKeys = "priority" | "state" | "labels";
|
|
|
|
|
|
|
|
export type TDisplayFilters = {
|
|
|
|
layout: TIssueLayout;
|
|
|
|
};
|
|
|
|
|
|
|
|
export type TFilters = {
|
2024-06-10 06:46:23 +00:00
|
|
|
state: TStateGroups[];
|
|
|
|
priority: TIssuePriorities[];
|
2024-05-16 07:37:47 +00:00
|
|
|
labels: string[];
|
|
|
|
};
|
|
|
|
|
|
|
|
export type TIssueFilters = {
|
|
|
|
display_filters: TDisplayFilters;
|
|
|
|
filters: TFilters;
|
|
|
|
};
|
|
|
|
|
|
|
|
export type TIssueQueryFilters = Partial<TFilters>;
|
|
|
|
|
|
|
|
export type TIssueQueryFiltersParams = Partial<Record<keyof TFilters, string>>;
|
2023-09-01 11:12:30 +00:00
|
|
|
|
2024-06-10 06:46:23 +00:00
|
|
|
export type TIssuesResponse = {
|
|
|
|
states: IStateLite[];
|
|
|
|
labels: IIssueLabel[];
|
|
|
|
issues: IIssue[];
|
|
|
|
};
|
|
|
|
|
2023-09-01 11:12:30 +00:00
|
|
|
export interface IIssue {
|
|
|
|
id: string;
|
|
|
|
comments: Comment[];
|
|
|
|
description_html: string;
|
|
|
|
label_details: any;
|
|
|
|
name: string;
|
|
|
|
priority: TIssuePriorityKey | null;
|
|
|
|
project: string;
|
|
|
|
project_detail: any;
|
|
|
|
reactions: IIssueReaction[];
|
|
|
|
sequence_id: number;
|
|
|
|
start_date: any;
|
|
|
|
state: string;
|
2023-11-07 10:45:34 +00:00
|
|
|
state_detail: {
|
|
|
|
id: string;
|
|
|
|
name: string;
|
|
|
|
group: TIssueGroupKey;
|
|
|
|
color: string;
|
|
|
|
};
|
2023-09-01 11:12:30 +00:00
|
|
|
target_date: any;
|
2023-09-01 15:08:53 +00:00
|
|
|
votes: IVote[];
|
2023-09-01 11:12:30 +00:00
|
|
|
}
|
|
|
|
|
2024-05-22 10:09:28 +00:00
|
|
|
export type IPeekMode = "side" | "modal" | "full";
|
|
|
|
|
2023-09-01 11:12:30 +00:00
|
|
|
export interface IIssueLabel {
|
|
|
|
id: string;
|
|
|
|
name: string;
|
|
|
|
color: string;
|
2024-06-10 06:46:23 +00:00
|
|
|
parent: string | null;
|
2023-09-01 11:12:30 +00:00
|
|
|
}
|
|
|
|
|
2023-09-01 15:08:53 +00:00
|
|
|
export interface IVote {
|
|
|
|
issue: string;
|
|
|
|
vote: -1 | 1;
|
|
|
|
workspace: string;
|
|
|
|
project: string;
|
|
|
|
actor: string;
|
|
|
|
actor_detail: ActorDetail;
|
|
|
|
}
|
|
|
|
|
2023-09-01 11:12:30 +00:00
|
|
|
export interface Comment {
|
|
|
|
actor_detail: ActorDetail;
|
2023-09-06 06:29:57 +00:00
|
|
|
access: string;
|
|
|
|
actor: string;
|
|
|
|
attachments: any[];
|
|
|
|
comment_html: string;
|
|
|
|
comment_reactions: {
|
|
|
|
actor_detail: ActorDetail;
|
|
|
|
comment: string;
|
|
|
|
id: string;
|
|
|
|
reaction: string;
|
|
|
|
}[];
|
|
|
|
comment_stripped: string;
|
|
|
|
created_at: Date;
|
|
|
|
created_by: string;
|
|
|
|
id: string;
|
|
|
|
is_member: boolean;
|
|
|
|
issue: string;
|
2023-09-01 11:12:30 +00:00
|
|
|
issue_detail: IssueDetail;
|
2023-09-06 06:29:57 +00:00
|
|
|
project: string;
|
2023-09-01 11:12:30 +00:00
|
|
|
project_detail: ProjectDetail;
|
|
|
|
updated_at: Date;
|
|
|
|
updated_by: string;
|
|
|
|
workspace: string;
|
2024-06-10 06:46:23 +00:00
|
|
|
workspace_detail: IWorkspaceLite;
|
2023-09-01 11:12:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IIssueReaction {
|
|
|
|
actor_detail: ActorDetail;
|
|
|
|
id: string;
|
|
|
|
issue: string;
|
|
|
|
reaction: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ActorDetail {
|
2023-09-01 15:08:53 +00:00
|
|
|
avatar?: string;
|
|
|
|
display_name?: string;
|
|
|
|
first_name?: string;
|
|
|
|
id?: string;
|
|
|
|
is_bot?: boolean;
|
|
|
|
last_name?: string;
|
2023-09-01 11:12:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IssueDetail {
|
|
|
|
id: string;
|
|
|
|
name: string;
|
|
|
|
description: Description;
|
|
|
|
description_html: string;
|
|
|
|
priority: string;
|
|
|
|
start_date: null;
|
|
|
|
target_date: null;
|
|
|
|
sequence_id: number;
|
|
|
|
sort_order: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface Description {
|
|
|
|
type: string;
|
|
|
|
content: DescriptionContent[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DescriptionContent {
|
|
|
|
type: string;
|
|
|
|
attrs?: Attrs;
|
|
|
|
content: ContentContent[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface Attrs {
|
|
|
|
level: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ContentContent {
|
|
|
|
text: string;
|
|
|
|
type: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ProjectDetail {
|
|
|
|
id: string;
|
|
|
|
identifier: string;
|
|
|
|
name: string;
|
|
|
|
cover_image: string;
|
|
|
|
icon_prop: null;
|
|
|
|
emoji: string;
|
|
|
|
description: string;
|
|
|
|
}
|
|
|
|
|
2024-05-14 08:56:54 +00:00
|
|
|
export interface IIssueFilterOptions {
|
|
|
|
state?: string[] | null;
|
|
|
|
labels?: string[] | null;
|
|
|
|
priority?: string[] | null;
|
|
|
|
}
|