From a669018b29d1180747b8d6e1215bd391ebe03935 Mon Sep 17 00:00:00 2001 From: Dao Ho <84757503+Dao-Ho@users.noreply.github.com> Date: Sat, 8 Aug 2026 20:18:38 -0700 Subject: [PATCH] feat: move edit ux when selected --- .../components/ApplicationsClient.tsx | 69 ++++++---------- .../applications/components/BulkActionBar.tsx | 82 +++++++++++++++++++ .../applications/components/TableView.tsx | 16 ++-- 3 files changed, 116 insertions(+), 51 deletions(-) create mode 100644 frontend/src/app/(portal)/reviewer/applications/components/BulkActionBar.tsx diff --git a/frontend/src/app/(portal)/reviewer/applications/components/ApplicationsClient.tsx b/frontend/src/app/(portal)/reviewer/applications/components/ApplicationsClient.tsx index 6eaf199..2f4508f 100644 --- a/frontend/src/app/(portal)/reviewer/applications/components/ApplicationsClient.tsx +++ b/frontend/src/app/(portal)/reviewer/applications/components/ApplicationsClient.tsx @@ -2,8 +2,7 @@ import { PageContainer } from '@/components/PageContainer' import { useMemo, useState } from 'react' -import { Loader2, Search, List, Columns } from 'lucide-react' -import { Button } from '@/components/ui/button' +import { Search, List, Columns } from 'lucide-react' import { Select, SelectContent, @@ -26,7 +25,7 @@ import { pickDefaultCycleId, useCycles } from '@/lib/queries/cycles' import { useQuestionsByCycleRoles } from '@/lib/queries/questions' import { useCurrentUser } from '@/lib/queries/users' import { ROLE_COLUMNS, ROLE_LABEL } from '@/lib/roles' -import { ORDERED_STAGES, stageLabel } from './constants' +import { BulkActionBar } from './BulkActionBar' import { AVAILABILITY_DAY_OPTIONS, availabilityOptionsFor, @@ -218,6 +217,14 @@ export function ApplicationsClient() { }) } + // Dropping the selection also drops the bar's transient state, so a failure + // notice from a previous batch can't linger into the next one. + function clearSelection() { + setSelectedIds(new Set()) + setBulkStage('') + setBulkFailed(0) + } + async function applyBulkStage() { if (!bulkStage || selectedIds.size === 0) return setApplyingBulk(true) @@ -352,49 +359,6 @@ export function ApplicationsClient() { - {view === 'table' && isChief && ( -