getServerApi only forwarded the auth token, using the default API base URL
and sending no workspace header. In the multi-tenant setup the per-workspace
backend URL (api_base_url) and id (workspace_uuid) live in httpOnly cookies,
and client requests reach the right tenant via the /api/proxy route. SSR
never replicated that, so server components hit the wrong/default backend and
got "not found" for resources that exist — e.g. the vendor detail page.
Read api_base_url and workspace_uuid from cookies and pass baseUrl +
X-Workspace-UUID to createApi, mirroring the proxy. Fixes every server-
rendered detail page, not just vendors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The vehicle form uploads as multipart/form-data for the image, and the
FormData builder stringified every value, turning has_insurance=false into
the literal "false". Laravel's boolean rule rejects "true"/"false" strings,
producing "The has insurance field must be true or false." Serialize
booleans as "1"/"0" so they validate; null values remain skipped (nullable).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat: integrate dialog close context in vendor select field and CRUD dialog components
feat: enhance vendor general info to format status using utility function
feat: implement form dialog context for managing dialog close actions
feat: add async select field dialog close context for better form handling
fix: update form mutation hook to close dialog on successful submission
feat: extend document print types to include expense and credit note
feat: add settings update payload type to include logo and other fields
feat: create employee attendance and work history pages with resource management
feat: implement payment made and received detail pages with actions
feat: add quick shortcuts component for easy navigation in the dashboard
feat: create actions for payment made and received with print and delete options
feat: implement dialog close context for better dialog management
feat: add error parsing utility for improved error handling in API responses
- Implemented TemplateCheckpointEditDialog for creating and editing inspection checkpoints.
- Added VendorActions component for managing vendor actions including edit, activate/deactivate, and delete.
- Created VendorContext for managing vendor state across components.
- Developed VendorGeneralInfo component to display detailed vendor information.
- Introduced AedSymbol and Money components for consistent currency representation.
- Added PromptDialog for user input prompts throughout the application.
- Implemented RelationLink component for unified related-data display in CRUD tables.
- Created InspectionTemplatesClient for API interactions related to inspection templates.
- Introduced ShareDocumentButton component for sharing documents.
- Added ShareDocumentDialog for email and WhatsApp sharing options.
- Integrated document sharing in estimates, invoices, inspections, job cards, bills, and purchase orders.
- Implemented useDocumentShare hook for handling share logic.
- Created DocumentShareClient for API interactions related to document sharing.
- Updated layouts and actions to include sharing options for relevant entities.