revert(shopping): restore MyShoppingPage parity with master and retain legacy stubs

This commit is contained in:
jableader 2025-11-01 18:51:34 +11:00
parent 710f9ccf9b
commit d729c0311d
2 changed files with 5 additions and 2 deletions

View file

@ -130,6 +130,7 @@ What exists now
- Domain & UI - Domain & UI
- Member arrays (`chefs`, `consumers`, `cleanup`) normalized to MemberRef `{ id, displayName }` with decoders handling legacy shapes gracefully. - Member arrays (`chefs`, `consumers`, `cleanup`) normalized to MemberRef `{ id, displayName }` with decoders handling legacy shapes gracefully.
- Invitation Accept flow implemented; Household Settings supports sending invitations and listing members using typed endpoints. - Invitation Accept flow implemented; Household Settings supports sending invitations and listing members using typed endpoints.
- MyShopping: page remains as in master with editable panel backed by legacy v1 stubs (`getMyShoppingList/saveMyShoppingList`) pending backend ad-hoc item endpoints.
Status of tests and typing Status of tests and typing
- All tests pass: 27 files, 48 tests. - All tests pass: 27 files, 48 tests.
@ -224,6 +225,7 @@ Tests
- Router tests run under memory history. - Router tests run under memory history.
- Replaced header injection test with path-scoped recipe list test. - Replaced header injection test with path-scoped recipe list test.
--- ---
## OpenAPI & Typing Considerations (Updated) ## OpenAPI & Typing Considerations (Updated)
@ -278,5 +280,6 @@ Google OAuth is planned next.
- Users can edit and delete such items. - Users can edit and delete such items.
- All calls use typed path-scoped endpoints; no header injection; Authorization still via provider. - All calls use typed path-scoped endpoints; no header injection; Authorization still via provider.
- Note: No temporary measures required; proceed directly once backend ships endpoints. - Note: No temporary measures required; proceed directly once backend ships endpoints.
- Current status: Legacy stubs removed from composable; `MyShoppingPage.vue` simplified around `requestIngredient`; shape test added and passing. Full ad-hoc CRUD UI awaits backend endpoints.
- Remove the legacy username login shim (`login(username: string)`) and any fallback UI; standardize on email/password (and Google) only. - Remove the legacy username login shim (`login(username: string)`) and any fallback UI; standardize on email/password (and Google) only.
- Rollout flag: default `VUE_APP_MULTITENANT_ENABLED` to true across environments and plan removal of legacy flat routes and related tests once stable. - Rollout flag: default `VUE_APP_MULTITENANT_ENABLED` to true across environments and plan removal of legacy flat routes and related tests once stable.

View file

@ -309,10 +309,10 @@ export async function deleteMeal(mealId: number | string): Promise<void> {
// Shopping // Shopping
// getMyShoppingList/saveMyShoppingList endpoints removed in v2; keep temporary stubs for legacy UI // getMyShoppingList/saveMyShoppingList endpoints removed in v2; keep temporary stubs for legacy UI
export async function getMyShoppingList(): Promise<components['schemas']['Ingredient'][]> { export async function getMyShoppingList(): Promise<import('@/domain/types').Ingredient[]> {
return [] return []
} }
export async function saveMyShoppingList(ingredients: components['schemas']['Ingredient'][]): Promise<components['schemas']['Ingredient'][]> { export async function saveMyShoppingList(ingredients: import('@/domain/types').Ingredient[]): Promise<import('@/domain/types').Ingredient[]> {
return ingredients return ingredients
} }