Skip to content

feat(forms): drag/menu no Quadro V2, redesign subpáginas do cliente e…#392

Merged
GRHInvDev merged 1 commit into
mainfrom
388-intranet---regua-de-emocoes---correcoes
Jun 17, 2026
Merged

feat(forms): drag/menu no Quadro V2, redesign subpáginas do cliente e…#392
GRHInvDev merged 1 commit into
mainfrom
388-intranet---regua-de-emocoes---correcoes

Conversation

@GRHInvDev

@GRHInvDev GRHInvDev commented Jun 17, 2026

Copy link
Copy Markdown
Owner

… exportação XLSX

  • Central V2 (Quadro): arrastar entre níveis (portal no body + z-index p/ ficar por cima e seguir o cursor), menu de contexto no botão direito e toast ao mover
  • Menu de contexto: corrige label para "Mover para {próxima etapa}"
  • Minhas solicitações: reescrita V2 (KPIs, Lista|Quadro, chips, linhas ricas e drawer de detalhe reaproveitando ResponseDetails + ResponseChat)
  • Raiz do formulário: faixa de info + preview, e barra de ações reposicionada (gestão à esquerda, solicitante à direita, criar chamado manual abaixo)
  • Responder: cabeçalho do painel + estado de sucesso V2
  • Catálogo: botão "Ver" leva direto à raiz do formulário
  • Fundo de identidade (v2-scope) passa a cobrir o layout inteiro (fixed)
  • Exportação de respostas (geral e por usuário) agora gera .xlsx de verdade

Bump 1.43.1 -> 1.46.0

Summary by CodeRabbit

  • New Features

    • Added keyboard navigation and drag-and-drop interactions for request management.
    • Request details now open in a dedicated side panel.
  • Improvements

    • Form submission success page now links to your requests list.
    • Require field count displayed on request forms.
    • Export spreadsheets now in XLSX format instead of CSV.
    • Enhanced request list and board views with better filtering.
    • Updated request management interface with improved interactions.
  • Documentation

    • Added comprehensive design documentation for the requests module interface.
  • Version

    • Updated to version 1.46.0.

… exportação XLSX

- Central V2 (Quadro): arrastar entre níveis (portal no body + z-index p/ ficar
  por cima e seguir o cursor), menu de contexto no botão direito e toast ao mover
- Menu de contexto: corrige label para "Mover para {próxima etapa}"
- Minhas solicitações: reescrita V2 (KPIs, Lista|Quadro, chips, linhas ricas e
  drawer de detalhe reaproveitando ResponseDetails + ResponseChat)
- Raiz do formulário: faixa de info + preview, e barra de ações reposicionada
  (gestão à esquerda, solicitante à direita, criar chamado manual abaixo)
- Responder: cabeçalho do painel + estado de sucesso V2
- Catálogo: botão "Ver" leva direto à raiz do formulário
- Fundo de identidade (v2-scope) passa a cobrir o layout inteiro (fixed)
- Exportação de respostas (geral e por usuário) agora gera .xlsx de verdade

Bump 1.43.1 -> 1.46.0

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

You don't have permission to create a Preview Deployment for this Vercel project: elo.

View Documentation: https://vercel.com/docs/accounts/team-members-and-roles

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c6d7e08e-44ad-49b6-9a5f-3e1909837178

📥 Commits

Reviewing files that changed from the base of the PR and between 89f0046 and a865853.

📒 Files selected for processing (28)
  • package.json
  • public/handoffs/design_handoff_solicitacoes_2/HANDOFF-subpaginas.md
  • public/handoffs/design_handoff_solicitacoes_2/README.md
  • public/handoffs/design_handoff_solicitacoes_2/Solicitacoes.html
  • public/handoffs/design_handoff_solicitacoes_2/classic.jsx
  • public/handoffs/design_handoff_solicitacoes_2/client.jsx
  • public/handoffs/design_handoff_solicitacoes_2/data.js
  • public/handoffs/design_handoff_solicitacoes_2/icons.jsx
  • public/handoffs/design_handoff_solicitacoes_2/pages.jsx
  • public/handoffs/design_handoff_solicitacoes_2/shell.jsx
  • public/handoffs/design_handoff_solicitacoes_2/tech.jsx
  • src/app/(authenticated)/forms/[id]/page.tsx
  • src/app/(authenticated)/forms/[id]/respond/page.tsx
  • src/app/(authenticated)/forms/kanban/_components/tags-context-menu.tsx
  • src/app/(authenticated)/forms/my-responses/page.tsx
  • src/components/forms/create-manual-response-button-wrapper.tsx
  • src/components/forms/create-manual-response-button.tsx
  • src/components/forms/form-response.tsx
  • src/components/forms/form-responses-export-by-user-dialog.tsx
  • src/components/forms/form-responses-export-dialog.tsx
  • src/components/forms/user-responses-list.tsx
  • src/components/forms/v2/central-view.tsx
  • src/components/forms/v2/forms-list-v2.tsx
  • src/components/forms/v2/virtualized-board.tsx
  • src/lib/download-file.ts
  • src/lib/form-xlsx-export.ts
  • src/server/api/routers/form-response.ts
  • src/styles/globals.css

📝 Walkthrough

Walkthrough

This PR adds a complete standalone design-handoff HTML/React prototype for the Solicitações module redesign, migrates all spreadsheet exports from CSV to XLSX (new server utilities, renamed tRPC procedures, updated dialogs), refactors UserResponsesList into a list/board toggle with Sheet-based details, upgrades the v2 kanban board to @hello-pangea/dnd with optimistic drag-and-drop, and updates form sub-pages with new action bars, info grids, and UI copy changes.

Changes

Design Handoff Prototype

Layer / File(s) Summary
Mock data and icon system
public/handoffs/design_handoff_solicitacoes_2/data.js, public/handoffs/design_handoff_solicitacoes_2/icons.jsx
Defines all global window data objects (FORMS, MY_REQUESTS, TICKETS, BOARD_COUNTS, STATUS_META, PRIORITY_META, FORM_FIELDS) and the reusable Ic/EloGlyph/I icon catalog exposed on window.
Client catalog view
public/handoffs/design_handoff_solicitacoes_2/client.jsx
Implements CatalogRow, MyRequestCard, Drawer, and ClientView with search/filter state; exposes statusPill and ClientView on window.
Sub-page shell, field controls, and form pages
public/handoffs/design_handoff_solicitacoes_2/pages.jsx
Adds SubPageShell, field input primitives (MultiCombo, FileInput, FieldInput, FieldRow), FormRootPage, RespondForm/RespondPage, and MyResponsesPage with RequestDrawer; inlines pagesCss and registers all on window.
Classic fallback views
public/handoffs/design_handoff_solicitacoes_2/classic.jsx
Defines ClassicCard, ClassicClient, ClassicKanbanCard, ClassicTech, and ClassicView with inline classicCss for the pre-v2 layout.
Technician queue, detail, and kanban board
public/handoffs/design_handoff_solicitacoes_2/tech.jsx
Implements QueueRow, Detail (status/assignment/reply), Board (kanban columns), and TechView stateful screen; exposes window.TechView.
App shell, routing, HTML entry point, and docs
public/handoffs/design_handoff_solicitacoes_2/Solicitacoes.html, public/handoffs/design_handoff_solicitacoes_2/shell.jsx, public/handoffs/design_handoff_solicitacoes_2/README.md, public/handoffs/design_handoff_solicitacoes_2/HANDOFF-subpaginas.md
Adds Sidebar, Topbar, App (theme/collapse/newLayout/role/route state), RoleSwitch, the HTML entry point with CSS tokens and React bootstrap, and both handoff documentation files.

CSV → XLSX Export Migration

Layer / File(s) Summary
XLSX generation and download utilities
src/lib/form-xlsx-export.ts, src/lib/download-file.ts
Adds buildXlsxBase64FromRows and sanitizeXlsxFilename for server-side workbook generation, and XLSX_MIME plus downloadBase64File for browser-side base64-to-file download.
tRPC procedures renamed to XLSX
src/server/api/routers/form-response.ts
Replaces exportSpreadsheetCsv and exportByUserCsv with exportSpreadsheetXlsx and exportByUserXlsx; payload switches from csv to xlsxBase64 with XLSX filename sanitization.
Export dialogs updated to XLSX
src/components/forms/form-responses-export-dialog.tsx, src/components/forms/form-responses-export-by-user-dialog.tsx
Both dialogs call the new XLSX mutations, download via downloadBase64File, and update all UI labels from "CSV" to "XLSX".

Forms UI Redesign

Layer / File(s) Summary
Form detail, respond, and my-responses page updates
src/app/(authenticated)/forms/[id]/page.tsx, src/app/(authenticated)/forms/[id]/respond/page.tsx, src/app/(authenticated)/forms/my-responses/page.tsx, src/components/forms/form-response.tsx, src/components/forms/create-manual-response-button*.tsx
Reworks the form detail page with a new action bar and InfoCell info grid; adds required-fields count on the respond page; adds a "Nova solicitação" action to my-responses; updates the success UI, submit label, and icons in form-response.tsx; adds optional className passthrough to the manual response button components.
UserResponsesList refactored
src/components/forms/user-responses-list.tsx
Replaces the tabbed drag-and-drop list with a view toggle (lista/quadro), chip-based status filter, memoized KPIs/grouping, and a Sheet-based RequestDetail panel with ResponseDetails and ResponseChat; adds Kpi, RequestRow, BoardCard, and RequestDetail subcomponents.
v2 VirtualizedBoard upgraded to @hello-pangea/dnd
src/components/forms/v2/virtualized-board.tsx
Replaces react-window with DragDropContext/Droppable/Draggable columns; adds BoardCard with ResponseContextMenu, tag-removal mutation, new-message badge, and portal rendering while dragging; expands props with availableTags and action callbacks.
CentralView optimistic DnD and edit modal
src/components/forms/v2/central-view.tsx
Adds local responses state synced via useEffect, onDragEnd with optimistic status update, handleOpenDetails/handleEdit/handleMoveToNextStatus handlers, and EditResponseModal state wired to VirtualizedBoard.
Accessibility, label, and CSS fixes
src/components/forms/v2/forms-list-v2.tsx, src/app/(authenticated)/forms/kanban/_components/tags-context-menu.tsx, src/styles/globals.css, package.json
CatalogRow switches to role="button" div with keyboard handler; "Ver" becomes a Link with propagation stop; next-status labels corrected to Portuguese; .v2-scope::before glow changed to position: fixed; version bumped to 1.46.0.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • GRHInvDev/elo#375: Directly related — this PR continues and extends the same v2 components (central-view.tsx, virtualized-board.tsx) introduced or refined there.
  • GRHInvDev/elo#383: Shares the FormsSubPageShell/FormsPanel shell infrastructure that multiple authenticated forms pages in this PR render within.
  • GRHInvDev/elo#322: Both modify src/components/forms/form-response.tsx, changing different sections of FormResponse (success-state flow here vs. dynamic-field support there).

Suggested reviewers

  • rbxyz

🐇 Hop, hop, hooray — the spreadsheets gleam,
No more CSV, XLSX is the dream!
The kanban cards drag with a satisfying click,
And the handoff prototype is looking quite slick.
From queue to board, the técnico's delight,
The bunny stamps "approved" — the design looks right! 🌟

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 388-intranet---regua-de-emocoes---correcoes

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

public/handoffs/design_handoff_solicitacoes_2/classic.jsx

Parsing error: "parserOptions.project" has been provided for @typescript-eslint/parser.
The file was not found in any of the provided project(s): public/handoffs/design_handoff_solicitacoes_2/classic.jsx

public/handoffs/design_handoff_solicitacoes_2/client.jsx

Parsing error: "parserOptions.project" has been provided for @typescript-eslint/parser.
The file was not found in any of the provided project(s): public/handoffs/design_handoff_solicitacoes_2/client.jsx

public/handoffs/design_handoff_solicitacoes_2/data.js

Parsing error: "parserOptions.project" has been provided for @typescript-eslint/parser.
The file was not found in any of the provided project(s): public/handoffs/design_handoff_solicitacoes_2/data.js

  • 5 others

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@GRHInvDev
GRHInvDev merged commit 28c9d41 into main Jun 17, 2026
6 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants