From 072feaf373991987ec95b0761e29652baf6bbb89 Mon Sep 17 00:00:00 2001 From: DaKheera47 Date: Fri, 16 Jan 2026 03:29:45 +0000 Subject: [PATCH] responsiveness --- orchestrator/package-lock.json | 14 + orchestrator/package.json | 2 + .../src/client/components/DiscoveredPanel.tsx | 18 +- .../client/components/PipelineProgress.tsx | 4 +- .../src/client/components/ReadyPanel.tsx | 16 +- .../src/client/components/TailoringEditor.tsx | 8 +- orchestrator/src/client/components/layout.tsx | 18 +- .../src/client/pages/OrchestratorPage.tsx | 860 ++++++++++-------- .../src/client/pages/UkVisaJobsPage.tsx | 255 ++++-- .../src/client/pages/VisaSponsorsPage.tsx | 223 +++-- orchestrator/src/components/ui/drawer.tsx | 116 +++ 11 files changed, 926 insertions(+), 608 deletions(-) create mode 100644 orchestrator/src/components/ui/drawer.tsx diff --git a/orchestrator/package-lock.json b/orchestrator/package-lock.json index 12b67c2..b3e1494 100644 --- a/orchestrator/package-lock.json +++ b/orchestrator/package-lock.json @@ -11,6 +11,7 @@ "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-alert-dialog": "^1.1.15", "@radix-ui/react-checkbox": "^1.3.2", + "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.15", "@radix-ui/react-progress": "^1.1.8", "@radix-ui/react-separator": "^1.1.8", @@ -31,6 +32,7 @@ "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", "tw-animate-css": "^1.4.0", + "vaul": "^1.1.2", "zod": "^3.23.8" }, "devDependencies": { @@ -8722,6 +8724,18 @@ "node": ">= 0.8" } }, + "node_modules/vaul": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vaul/-/vaul-1.1.2.tgz", + "integrity": "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==", + "dependencies": { + "@radix-ui/react-dialog": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" + } + }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", diff --git a/orchestrator/package.json b/orchestrator/package.json index 3181d48..225d693 100644 --- a/orchestrator/package.json +++ b/orchestrator/package.json @@ -23,6 +23,7 @@ "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-alert-dialog": "^1.1.15", "@radix-ui/react-checkbox": "^1.3.2", + "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.15", "@radix-ui/react-progress": "^1.1.8", "@radix-ui/react-separator": "^1.1.8", @@ -43,6 +44,7 @@ "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", "tw-animate-css": "^1.4.0", + "vaul": "^1.1.2", "zod": "^3.23.8" }, "devDependencies": { diff --git a/orchestrator/src/client/components/DiscoveredPanel.tsx b/orchestrator/src/client/components/DiscoveredPanel.tsx index 51add18..d04e284 100644 --- a/orchestrator/src/client/components/DiscoveredPanel.tsx +++ b/orchestrator/src/client/components/DiscoveredPanel.tsx @@ -150,13 +150,13 @@ const DecideMode: React.FC = ({ {/* Primary/Secondary actions */} -
+
{/* Download PDF - primary artifact action */} - {/* Open job - to verify before applying */} - + + {showReadyPdf && + (selectedHasPdf ? ( + + ) : ( + + ))} + + {showGeneratePdf && ( + + )} + + {canApply && ( + + )} + + + + + + + {canProcess && !showGeneratePdf && ( + handleProcess(selectedJob.id)} + disabled={isProcessingSelected} + > + + {isProcessingSelected + ? "Processing..." + : selectedJob.status === "ready" + ? "Regenerate PDF" + : "Generate PDF"} + + )} + { + setDetailTab("description"); + setIsEditingDescription(true); + }} + > + + Edit description + + void handleCopyInfo(selectedJob)}> + + Copy info + + {selectedHasPdf && ( + <> + {!showReadyPdf && ( + + + + View PDF + + + )} + + + + Download PDF + + + + )} + {canSkip && ( + <> + + handleSkip(selectedJob.id)} + className="text-destructive focus:text-destructive" + > + + Skip job + + + )} + + +
+ setDetailTab(value as typeof detailTab)}> + + Overview + Tailoring + Description + + + + {selectedJob.suitabilityReason && ( +
+ "{selectedJob.suitabilityReason}" +
+ )} + +
+
+
Discipline
+
{selectedJob.disciplines || "-"}
+
+
+
Function
+
{selectedJob.jobFunction || "-"}
+
+
+
Level
+
{selectedJob.jobLevel || "-"}
+
+
+
Type
+
{selectedJob.jobType || "-"}
+
+
+ +
+ +
+ +
+
+
+ + + { + saveTailoringRef.current = save; + }} + onBeforeGenerate={() => confirmAndSaveEdits({ includeTailoring: false })} + /> + + + +
+
+ Job description +
+
+ {!isEditingDescription ? ( + + ) : ( + <> + + + + )} + + + + + + { + void copyTextToClipboard(selectedJob.jobDescription || ""); + toast.success("Copied raw description"); + }} + > + + Copy raw text + + + +
+
+ +
+ {isEditingDescription ? ( +
+