From e2648f466c329ec596c1a810f6317d07559d48a8 Mon Sep 17 00:00:00 2001 From: Vamsi krishna Date: Tue, 18 Mar 2025 18:21:46 +0530 Subject: [PATCH 1/4] chore: issue detail refactor --- .../issues/issue-detail-widgets/additional-widgets.tsx | 10 ++++++++++ web/ce/components/issues/issue-detail-widgets/index.ts | 1 + web/ce/store/issue/helpers/base-issue-store.ts | 4 ++++ .../issue-detail-widget-collapsibles.tsx | 8 ++++++++ web/core/components/issues/issue-detail/sidebar.tsx | 1 - 5 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 web/ce/components/issues/issue-detail-widgets/additional-widgets.tsx create mode 100644 web/ce/components/issues/issue-detail-widgets/index.ts create mode 100644 web/ce/store/issue/helpers/base-issue-store.ts diff --git a/web/ce/components/issues/issue-detail-widgets/additional-widgets.tsx b/web/ce/components/issues/issue-detail-widgets/additional-widgets.tsx new file mode 100644 index 00000000000..04288603abc --- /dev/null +++ b/web/ce/components/issues/issue-detail-widgets/additional-widgets.tsx @@ -0,0 +1,10 @@ +import { FC } from "react"; + +export type TWorkItemAdditionalWidgets = { + workspaceSlug: string; + projectId: string; + workItemId: string; + disabled: boolean; +}; + +export const WorkItemAdditionalWidgets: FC = (props) => <>; diff --git a/web/ce/components/issues/issue-detail-widgets/index.ts b/web/ce/components/issues/issue-detail-widgets/index.ts new file mode 100644 index 00000000000..a972c50538f --- /dev/null +++ b/web/ce/components/issues/issue-detail-widgets/index.ts @@ -0,0 +1 @@ +export * from "./additional-widgets"; diff --git a/web/ce/store/issue/helpers/base-issue-store.ts b/web/ce/store/issue/helpers/base-issue-store.ts new file mode 100644 index 00000000000..b75a4916a1e --- /dev/null +++ b/web/ce/store/issue/helpers/base-issue-store.ts @@ -0,0 +1,4 @@ +import { TIssue } from "@plane/types"; +import { getIssueIds } from "@/store/issue/helpers/base-issues-utils"; + +export const workItemSortWithOrderByExtended = (array: TIssue[], key?: string) => getIssueIds(array); diff --git a/web/core/components/issues/issue-detail-widgets/issue-detail-widget-collapsibles.tsx b/web/core/components/issues/issue-detail-widgets/issue-detail-widget-collapsibles.tsx index 26ec7b6bfa7..1f3d148dc58 100644 --- a/web/core/components/issues/issue-detail-widgets/issue-detail-widget-collapsibles.tsx +++ b/web/core/components/issues/issue-detail-widgets/issue-detail-widget-collapsibles.tsx @@ -11,6 +11,7 @@ import { // hooks import { useIssueDetail } from "@/hooks/store"; // Plane-web +import { WorkItemAdditionalWidgets } from "@/plane-web/components/issues/issue-detail-widgets"; import { useTimeLineRelationOptions } from "@/plane-web/components/relations"; type Props = { @@ -68,6 +69,13 @@ export const IssueDetailWidgetCollapsibles: FC = observer((props) => { disabled={disabled} /> )} + + ); }); diff --git a/web/core/components/issues/issue-detail/sidebar.tsx b/web/core/components/issues/issue-detail/sidebar.tsx index d132b4e77ab..8e7bf151bfb 100644 --- a/web/core/components/issues/issue-detail/sidebar.tsx +++ b/web/core/components/issues/issue-detail/sidebar.tsx @@ -299,7 +299,6 @@ export const IssueDetailsSidebar: React.FC = observer((props) => { projectId={projectId} workspaceSlug={workspaceSlug} isEditable={isEditable} - isPeekView /> From a62269772ad157f878e8a2838cccd19e2ca83bbb Mon Sep 17 00:00:00 2001 From: Vamsi krishna Date: Mon, 24 Mar 2025 16:31:00 +0530 Subject: [PATCH 2/4] chore: added generator for swr key --- packages/constants/src/index.ts | 1 + packages/constants/src/swr-keys.ts | 1 + packages/utils/src/common.ts | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 packages/constants/src/swr-keys.ts diff --git a/packages/constants/src/index.ts b/packages/constants/src/index.ts index 7fedff05d78..4905055c09e 100644 --- a/packages/constants/src/index.ts +++ b/packages/constants/src/index.ts @@ -29,3 +29,4 @@ export * from "./event-tracker"; export * from "./spreadsheet"; export * from "./dashboard"; export * from "./page"; +export * from "./swr-keys"; diff --git a/packages/constants/src/swr-keys.ts b/packages/constants/src/swr-keys.ts new file mode 100644 index 00000000000..c71b352edfd --- /dev/null +++ b/packages/constants/src/swr-keys.ts @@ -0,0 +1 @@ +export enum SWR_KEYS {} diff --git a/packages/utils/src/common.ts b/packages/utils/src/common.ts index fff5d9d8ef9..862a684ae2f 100644 --- a/packages/utils/src/common.ts +++ b/packages/utils/src/common.ts @@ -1,6 +1,6 @@ import { clsx, type ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; - +import { SWR_KEYS } from "@plane/constants"; // Support email can be configured by the application export const getSupportEmail = (defaultEmail: string = ""): string => defaultEmail; @@ -39,3 +39,16 @@ export const partitionValidIds = (ids: string[], validIds: string[]): { valid: s return { valid, invalid }; }; + +/** + * Generates a unique key for SWR cache + * @param workspaceSlug - The slug of the workspace + * @param label - The label for the cache key + * @param params - The parameters for the cache key + * @returns The unique key in array format + */ +export const getSwrKey = (workspaceSlug: string, label: SWR_KEYS, params: string[] = []) => [ + label, + workspaceSlug, + ...params, +]; From 64d883d6f13b53ff12028c34ef478fd26b28eca9 Mon Sep 17 00:00:00 2001 From: Vamsi krishna Date: Mon, 24 Mar 2025 16:51:59 +0530 Subject: [PATCH 3/4] chore:added type to swr key constants --- packages/constants/src/swr-keys.ts | 2 ++ packages/utils/src/common.ts | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/constants/src/swr-keys.ts b/packages/constants/src/swr-keys.ts index c71b352edfd..a3c7973084a 100644 --- a/packages/constants/src/swr-keys.ts +++ b/packages/constants/src/swr-keys.ts @@ -1 +1,3 @@ export enum SWR_KEYS {} + +export type TSWRKey = SWR_KEYS; diff --git a/packages/utils/src/common.ts b/packages/utils/src/common.ts index 862a684ae2f..f5c64163bde 100644 --- a/packages/utils/src/common.ts +++ b/packages/utils/src/common.ts @@ -1,6 +1,6 @@ import { clsx, type ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; -import { SWR_KEYS } from "@plane/constants"; +import { TSWRKey } from "@plane/constants"; // Support email can be configured by the application export const getSupportEmail = (defaultEmail: string = ""): string => defaultEmail; @@ -47,7 +47,7 @@ export const partitionValidIds = (ids: string[], validIds: string[]): { valid: s * @param params - The parameters for the cache key * @returns The unique key in array format */ -export const getSwrKey = (workspaceSlug: string, label: SWR_KEYS, params: string[] = []) => [ +export const getSwrKey = (workspaceSlug: string, label: TSWRKey, params: string[] = []) => [ label, workspaceSlug, ...params, From 85e639f0fc6f85ca387bbe6b332d756f49488aab Mon Sep 17 00:00:00 2001 From: Vamsi krishna Date: Mon, 24 Mar 2025 16:59:38 +0530 Subject: [PATCH 4/4] chore: initialize SWR keys configuration structure --- packages/constants/src/swr-keys.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/constants/src/swr-keys.ts b/packages/constants/src/swr-keys.ts index a3c7973084a..c4608ee5772 100644 --- a/packages/constants/src/swr-keys.ts +++ b/packages/constants/src/swr-keys.ts @@ -1,3 +1,7 @@ -export enum SWR_KEYS {} +export enum SWR_KEYS_CORE {} -export type TSWRKey = SWR_KEYS; +export const SWR_KEYS = { + ...SWR_KEYS_CORE, +} as const; + +export type TSWRKey = SWR_KEYS_CORE;