Share Export Sheet

Export format selection and actions. Opened from 407-history-section.

Formats

FormatDescriptionService
PDF ReportVisual report with chart310-webkit-service
SVG ReportVector graphics version307-svg-renderer
PNG ReportRaster image (2x resolution)310-webkit-service
CSV DataTabular data export302-export

Actions

ActionAvailabilityDescription
PreviewAllView before exporting
Save FileMac onlyNative save panel
ShareAllSystem share sheet
Copy as TextSVG/CSVCopy to clipboard

Preview

  • PDF: PDFKit viewer
  • PNG: Image view
  • SVG/CSV: Monospaced text

Data Flow

  1. Receives snapshot of filtered records
  2. User selects format
  3. Generates data via appropriate service
  4. Presents action options

Snapshot Pattern

Uses captured data to prevent re-render:

struct ExportSnapshot {
    let records: [TimeRecord]
    let startDate: Date
    let endDate: Date
    let selectedTags: Set<UUID>
}

Related