munch-ease-frontend/frontend-spec.md
2025-11-02 21:57:57 +11:00

2.7 KiB

Frontend Specification: Final Polish

1. Current State & Objective

The multi-tenancy migration is functionally complete and successful. The frontend has been refactored to a robust, household-scoped application using JWT-based authentication. All legacy .js tests have been removed, and the codebase is clean.

The objective is to complete the final remaining UI feature to officially close out the project.

2. Final Tasks

This checklist represents all remaining work.

  • 1. Implement "Copy Invite Link" UI:

    • Objective: Implement the user interface for inviting new members to a household using a "copy link" feature.
    • File: src/views/HouseholdSettings.vue
    • Action:
      1. The backend team will provide a new endpoint that, when called, returns a JSON object with an invite_link. Backend API already exists and returns InviteLinkResponse with invite_link field.
      2. Update the "Invite" button logic to call this new endpoint. Created createInviteLink() function in src/api/invitations.ts.
      3. On a successful response, use the browser's Clipboard API (navigator.clipboard.writeText(response.invite_link)) to copy the link. Implemented in onCopyInviteLink() handler.
      4. Display a confirmation toast to the user (e.g., "Invite link copied to clipboard!"). Using useAlert() composable to show success toast.
    • Status: COMPLETED - Added "Copy Invite Link" button to HouseholdSettings.vue with full clipboard integration and toast notification.
  • 2. Final Codebase Sweep:

    • Objective: Perform a final search for and remove any dead code, comments, or variables related to the old system.
    • Action: Search the entire codebase for the following keywords: legacy, old, previous, workaround, fallback, person.
    • Outcome: COMPLETED - Removed all legacy comments from:
      • src/composables/useAuth.ts - Removed "Legacy username login removed" comment
      • src/components/LoginPage.vue - Removed "Legacy quick-login removed" and "legacy login removed" comments
      • src/api/auth.ts - Removed "Legacy username login has been removed" comment
      • src/api/sdk.ts - Removed legacy shopping list stub functions (getMyShoppingList, saveMyShoppingList)
      • src/composables/useShopping.ts - Removed references to removed stub functions
    • Note: Remaining uses of "fallback", "person", etc. are legitimate application logic, not legacy code.
  • 3. Mark Project as Complete:

    • Objective: Once the above tasks are done, this document is complete.
    • Action: PROJECT COMPLETE - All migration tasks successfully completed on November 2, 2025.