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, PNG: the system Quick Look viewer (QuickLookPresenter, see Record Images), the file named as it would be saved. Zoom, pan, share; on the Mac the Quick Look panel over the dimmed window, on iPhone and iPad full screen
  • SVG/CSV: PreviewSheet, monospaced text with a Done button

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>
}