Skip to content

features results review and export

Douwe de Vries edited this page Jul 2, 2026 · 1 revision

Results review and export

Active contributors: Douwe de Vries

Purpose

Results review presents the comparison summary, filters, searchable/sortable rows, expandable differences, and export actions. Users can export CSV through the backend or HTML from the frontend.

Directory layout

frontend/src/components/app/ResultsStep.tsx
frontend/src/components/SummaryStats.tsx
frontend/src/components/FilterBar.tsx
frontend/src/components/ResultsTable.tsx
frontend/src/features/results/
src/data/export.rs

Key abstractions

Name File Description
ResultsStep frontend/src/components/app/ResultsStep.tsx Step 3 layout and save/export actions.
SummaryStats frontend/src/components/SummaryStats.tsx Summary cards and banners.
ResultRowViewModel frontend/src/features/results/presentation.ts Render-ready row model.
buildSearchFields frontend/src/features/results/search.ts Field-scoped searchable text.
export_results_to_bytes src/data/export.rs Backend CSV export.
buildResultsHtmlDocument frontend/src/features/results/htmlExport.ts Frontend standalone HTML export.

How it works

src/comparison/engine.rs returns RowComparisonResult values and summary counts. src/presentation/responses.rs serializes them for the frontend. The frontend builds view models, applies the selected filter and query, sorts rows, and renders rows in chunks of 200 in frontend/src/components/ResultsTable.tsx.

graph LR
    Engine[RowComparisonResult] --> Response[ResultResponse]
    Response --> VM[buildResultRows]
    VM --> Filter[filter/search/sort]
    Filter --> Table[ResultsTable]
    Response --> CSV[src/data/export.rs]
    Response --> HTML[htmlExport.ts]
Loading

Integration points

CSV export goes through src/api/handlers.rs or src-tauri/src/commands.rs. HTML export is built client-side and saved through browser download or Tauri save dialog from frontend/src/services/tauri.ts.

Entry points for modification

Add result types in src/data/types.rs, src/presentation/responses.rs, frontend/src/types/api.ts, and frontend/src/features/results/presentation.ts together. Change export columns in src/data/export.rs or frontend/src/features/results/htmlExportTemplate.ts.

Key source files

File Purpose
frontend/src/components/ResultsTable.tsx Detailed result table.
frontend/src/features/results/presentation.ts View-model, filtering, summary, detail logic.
frontend/src/features/results/search.ts Search field model.
frontend/src/features/results/htmlExport.ts HTML export document.
src/data/export.rs CSV export.

Clone this wiki locally