From fa7a9821339c25ea574d3b4c21fb7402d0909745 Mon Sep 17 00:00:00 2001 From: Aaryan Khandelwal Date: Wed, 18 Oct 2023 18:43:32 +0530 Subject: [PATCH] dev: implement spreadsheet navigation using cmdk --- .../spreadsheet/spreadsheet-column.tsx | 6 +- .../spreadsheet/spreadsheet-view.tsx | 183 ++++++++++-------- 2 files changed, 101 insertions(+), 88 deletions(-) diff --git a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-column.tsx b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-column.tsx index 994f1c212..1f5bf43a6 100644 --- a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-column.tsx @@ -7,6 +7,7 @@ import { ListFilter, MoveRight, } from "lucide-react"; +import { Command } from "cmdk"; // hooks import useLocalStorage from "hooks/use-local-storage"; // components @@ -168,8 +169,9 @@ export const SpreadsheetColumn: React.FC = (props) => {
{issues?.map((issue) => ( -
{property === "state" ? ( @@ -243,7 +245,7 @@ export const SpreadsheetColumn: React.FC = (props) => { issue={issue} /> ) : null} -
+ ))}
diff --git a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx index 2be3a927e..183e6812f 100644 --- a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx @@ -2,6 +2,7 @@ import React, { useEffect, useRef, useState } from "react"; import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; import { PlusIcon } from "lucide-react"; +import { Command } from "cmdk"; // components import { SpreadsheetColumnsList, @@ -80,66 +81,74 @@ export const SpreadsheetView: React.FC = observer((props) => { }, []); return ( -
-
-
- {issues ? ( - <> -
-
-
- {displayProperties.key && ( - ID - )} - Issue + console.log(e)}> + + +
+
+
+ {issues ? ( + <> +
+
+
+ {displayProperties.key && ( + ID + )} + Issue +
+ + {issues.map((issue: IIssue, index) => ( + + ))} +
- {issues.map((issue: IIssue, index) => ( - - ))} + + + ) : ( +
+
-
- - - - ) : ( -
- + )}
- )} -
-
-
- {/* +
+ {/* setIsInlineCreateIssueFormOpen(false)} prePopulatedData={{ @@ -147,43 +156,45 @@ export const SpreadsheetView: React.FC = observer((props) => { ...(moduleId && { module: moduleId.toString() }), }} /> */} -
+
- {!disableUserActions && - !isInlineCreateIssueFormOpen && - (type === "issue" ? ( - - ) : ( - setIsInlineCreateIssueFormOpen(true)} > New Issue - } - optionsClassName="left-5 !w-36" - noBorder - > - setIsInlineCreateIssueFormOpen(true)}> - Create new - - {openIssuesListModal && ( - Add an existing issue - )} - - ))} + ) : ( + + + New Issue + + } + optionsClassName="left-5 !w-36" + noBorder + > + setIsInlineCreateIssueFormOpen(true)}> + Create new + + {openIssuesListModal && ( + Add an existing issue + )} + + ))} +
+
-
-
+ + ); });