Skip to content

Tier-7 - #2

Merged
Hum2a merged 3 commits into
tier-6from
tier-7
Jul 3, 2026
Merged

Tier-7#2
Hum2a merged 3 commits into
tier-6from
tier-7

Conversation

@Hum2a

@Hum2a Hum2a commented Jul 3, 2026

Copy link
Copy Markdown
Owner
  • Updated the FileField component to include a visible button for file selection, improving user experience.
  • Implemented state management to display the selected file name, enhancing feedback for users.
  • Modified tooltip descriptions in the documentation to clarify the new file input pattern and usage guidelines.
  • Ensured accessibility by maintaining proper aria attributes and labels for the file input.

Summary by cubic

Adds offline-ready PWA with cached session data, i18n, and a print-ready scorecard export. Also improves file upload UX and hardens API caching and session ID validation.

  • New Features

    • Offline read-only PWA: vite-plugin-pwa + persisted queries (@tanstack/react-query-persist-client, @tanstack/query-sync-storage-persister) with an offline banner; mutations stay online-only.
    • Export scorecard from session detail to a print-ready page (save as PDF).
    • i18n via react-i18next (EN) for nav, session detail, and scorecard labels.
    • Docs & analytics: static Redoc at /docs with OpenAPI JSON exported during apps/web build; optional privacy analytics via VITE_PLAUSIBLE_DOMAIN or VITE_CF_WEB_ANALYTICS_TOKEN.
    • FileField now uses a hidden input + visible “Choose file” button and shows the selected file name.
  • Refactors

    • Session list cache: Cloudflare KV TTL 60s, HTTP max-age=15, graceful KV errors; headers include X-Cache.
    • Validate session IDs as UUIDs on detail/update routes; return 404 early on invalid IDs.
    • React Query defaults: reads are offlineFirst; mutations are online; only sessions and session queries are persisted.

Written for commit b4b02f2. Summary will update on new commits.

Review in cubic

Hum2a added 3 commits July 3, 2026 13:48
- Updated session list caching to use a 60s TTL in Cloudflare KV with a 15s HTTP max-age for responses, improving cache efficiency.
- Introduced a new utility function `isSessionId` for validating session IDs against a UUID format.
- Enhanced session retrieval routes to validate session IDs before processing requests, ensuring better error handling.
- Refactored cache-related functions to handle errors gracefully, maintaining API reliability.
- Updated documentation to reflect changes in caching strategy and session ID validation.
- Integrated PWA capabilities using vite-plugin-pwa, enabling offline access and caching for session data.
- Added i18n support with react-i18next, providing English translations for navigation and session details.
- Implemented a scorecard export feature, allowing users to generate print-ready scorecards for sessions.
- Introduced an OfflineBanner component to notify users when offline, enhancing user experience.
- Updated package dependencies to include necessary libraries for analytics and query persistence.
- Enhanced documentation to reflect new features and usage instructions.
… updates

- Updated the `FileField` component to include a visible button for file selection, improving user experience.
- Implemented state management to display the selected file name, enhancing feedback for users.
- Modified tooltip descriptions in the documentation to clarify the new file input pattern and usage guidelines.
- Ensured accessibility by maintaining proper aria attributes and labels for the file input.
@Hum2a
Hum2a merged commit 796efd1 into tier-6 Jul 3, 2026
1 check failed
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.

1 participant