Krao Hasanee
4faf0e80b6
fix: hide counter on All tabs; reduce card-bg alpha ~20%
...
- Tasks + ProjectDetail: skip count badge when tab.id === 'all'
- card-bg 0.07 → 0.055, card-bg-2 0.12 → 0.09
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 16:46:02 -04:00
Krao Hasanee
623dcb7983
fix: subcontractor PDF quality, footer on all pages, header gap
...
- Canvas 3x scale + JPEG 0.97 (matches main invoice quality)
- Footer drawn on every page canvas
- Continuation header gap increased (headerH+28 → +50 with label)
- Pagination pre-calculated before rendering (no mid-render addPage)
- 'PO Date' label → 'Invoice Date'
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 16:17:20 -04:00
Krao Hasanee
48c8fbb7ff
style: white-based card-bg 0.07, blur 12px→20px for less transparency
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 16:06:56 -04:00
Krao Hasanee
1dd7ca1922
style: card-bg dark-based alpha to match Safari panel look
...
rgba(255,255,255,0.06) with backdrop blur renders lighter in Chrome.
rgba(0,0,0,0.35) gives consistent dark panel across all browsers.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 16:01:23 -04:00
Krao Hasanee
fa8ade83d6
fix: subcontractor PDF title + multi-page support
...
- 'PURCHASE ORDER' → 'SUBCONTRACTOR INVOICE'
- Items loop now calls addPage() when hitting safeBottom (792-80pt)
- Continuation pages get header with invoice number + '(continued)'
- Summary/Notes sections also page-break if needed
- Footer text updated to match invoice context
- Footer line position dynamic (tracks y), not hardcoded at 704
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 15:58:42 -04:00
Krao Hasanee
e450f1b0d1
style: increase card-bg alpha to match Safari rendering
...
0.02 → 0.06 dark theme, card-bg-2 0.08 → 0.10
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 15:54:59 -04:00
Krao Hasanee
e3b2df6e2c
fix: restore popupOverlayStyle import in ExternalMyInvoices
...
Removed during popup refactor but still used by +Invoice form popup.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 14:16:11 -04:00
Krao Hasanee
6e4e99c33c
feat: unify all invoice popups to shared InvoiceDetailPopup shell
...
All invoice popup modals (team invoice, sub-invoice team, client invoice,
external sub-invoice) now share InvoiceDetailPopup + SubcontractorInvoiceDetailView.
Same overlay, header, scroll body, footer action row — just different data per role.
- New InvoiceDetailPopup component (overlay shell, header, scrollable body, footer)
- SubcontractorInvoiceDetailView: respects item._inferredType if pre-set
- ClientInvoiceModal: uses shared components, adds sortable headers
- TeamInvoiceDetailPanel embedded: uses shared components, keeps edit-dates/email/company
- TeamInvoices sub-invoice popup: uses shared components, cleans descriptions
- ExternalMyInvoices popup: uses shared components, fixes detailSort vars (was unused)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 13:46:08 -04:00
Krao Hasanee
04e0911e9f
fix: crash bugs in TeamInvoices + faster load
...
Bug fixes:
- TeamInvoices: add useAuth import/currentUser (invoice-create crash)
- TeamInvoices: setChartYear -> setExportYear (year-dropdown crash)
- TeamDashboard: drop redundant setState-in-effect (cascading renders)
- Companies: delete dead _UnusedClientCompanies (illegal hook calls)
- annotate intentional empty PDF-fallback catches
Load speed:
- preconnect/dns-prefetch to Supabase origin
- lazy-load heic-to in Converters: page chunk 2737KB -> 9KB
- split recharts into its own 'charts' vendor chunk
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-08 12:59:11 -04:00
Krao Hasanee
96e90561b9
feat: expense/invoice popups, task row hover fix, delivery submissions
...
- Expense detail popup: 80vw×80vh, inline editing, save gated on dirty state, Download Receipt in footer
- Add expense form: same layout with FileAttachment drag-drop on right
- New invoice popup: 80vw×80vh inline form replacing navigate-away page
- Tasks table: suppress row hover background, only Name/Project table-links highlight
- TaskDetail Submissions tab: reads from deliveries table, shows R## version, sent_by, message
- Submit for Review: writes to deliveries + delivery_files (deliveries bucket)
- deliveries.version_number column added and backfilled from revision history
- Port 4173 for dev server
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-02 21:41:02 -04:00
Krao Hasanee
0b4705311b
Session 2026-05-30: task detail page overhaul
...
- New TaskDetail replaces /tasks/:id (was v2 at /requests/:id/v2)
- Overview tab: R00 request info, Requested By/Date/Sign Count inline row, Notes, Sign Family, files, amendments
- Revisions tab: R01+ from submissions, newest first, same layout as overview, per-entry Amend button
- Comments tab: single-line input, post on Enter, delete own comments, Supabase task_comments table
- Folder tab: placeholder for file sharing
- Tab badges showing revision/comment counts
- Amend Request modal: drag-drop file zone, popupOverlayStyle/Surface, Save+Cancel buttons
- Request Revision modal for clients on approved/invoiced/paid tasks
- JSZip download-all with progress popup for submission files
- Upload progress popup for Add Task and amend file uploads
- FileAttachment drop zone: 8px radius, transparent bg, label style fix (no all-caps override)
- PageLoader on task detail load
- task_comments migration with RLS policies
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-30 22:44:57 -04:00
Krao Hasanee
565d2ed4bc
Session 2026-05-20: UI fixes, invoice filtering, file browser, request approvals, sub invoice task scope
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 21:32:55 -04:00
Krao Hasanee
c32f9d1366
Add Project Files section and show company name for external users on project detail
2026-05-14 15:01:32 -04:00
Krao Hasanee
eee0885811
Fix file sharing load speed and move error; misc updates
...
- Remove recursive directory size calculations (single Seafile API call per list)
- Remove 'Used in this location' usage display
- Fix move using v2 per-type endpoints instead of broken batch endpoint
- Send entry type from frontend for correct move routing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:20:38 -04:00
Krao Hasanee
719209fa25
Refactor: clients → companies schema v2
2026-03-26 23:42:06 -04:00