feat: OS Share Target for recipe URLs (v0.67.0)
Declares share_target in manifest.ts (action /recipes, GET, title/text/url params). recipes/page.tsx extracts the shared link -- preferring the url param, falling back to the first http(s) URL found inside text since senders vary on where they put it -- and passes it to RecipesHeader as sharedUrl. UrlImportDialog gained initialUrl/autoImport props so the existing import-from-URL flow opens pre-filled and fires immediately instead of requiring the user to paste the link back in. Chromium/Android only -- Safari has no Share Target API at all, same restriction already documented for the install-prompt banner. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -130,7 +130,7 @@ Status legend: **Exists** (fully working) · **Partial** (works but with a real
|
||||
| Push (client + server) | Exists end-to-end | Real subscribe/unsubscribe with correct state sync, VAPID, multiple triggers wired | `apps/web/lib/push.ts` |
|
||||
| Voice control | **Exists** | Web Speech API in cooking mode (this was previously assumed missing — it isn't) | `apps/web/components/cooking-mode/cooking-mode.tsx` |
|
||||
| Barcode scanning | **Exists** (pantry only) | `BarcodeDetector` isn't used, but a manual-entry-triggered Open Food Facts API lookup covers the same use case | `apps/web/app/api/v1/pantry/scan/barcode` |
|
||||
| OS Share Target (share a URL into Epicure from another app) | **Missing** | No `share_target` in the manifest | — |
|
||||
| OS Share Target (share a URL into Epicure from another app) | Exists (Chromium/Android only) | Manifest `share_target` → `/recipes?title&text&url`; extracts the shared link from either `url` or a URL substring in `text` (senders vary), auto-opens the existing import-from-URL dialog pre-filled and auto-imports. Safari has no Share Target API at all — same Apple-restriction story as install prompts. | `apps/web/app/manifest.ts`, `apps/web/app/(app)/recipes/page.tsx`, `apps/web/components/recipe/url-import-dialog.tsx` |
|
||||
| Home-screen widgets, Siri/Assistant shortcuts | **Missing**, expected — N/A for a pure PWA without a native shell | — |
|
||||
| Native mobile app (React Native/Capacitor/Expo) | **Missing** | Confirmed PWA-only, no native project anywhere in the monorepo | — |
|
||||
|
||||
@@ -144,7 +144,7 @@ Ranked roughly by likely value:
|
||||
2. **Recipe video** — no support at all.
|
||||
3. **Nutrition trend/history view** — diary is single-day only, no multi-day chart.
|
||||
4. **USDA/nutrition-database lookup** — all nutrition numbers are AI-estimated; barcode scan only gets product name, not nutrition facts.
|
||||
5. **OS Share Target** — can't share a recipe link into Epicure from another app's share sheet.
|
||||
5. ~~OS Share Target~~ — closed 2026-07-21 (Chromium/Android only, no Safari equivalent exists).
|
||||
6. ~~Push click-through handling~~ — closed 2026-07-21 (`push`/`notificationclick` listeners added to `sw.js`).
|
||||
7. **Anonymous public link for meal plans** — shopping lists have this, meal plans don't.
|
||||
8. **Grocery delivery/live pricing** beyond the Instacart stub (which needs a partnership agreement to go live).
|
||||
|
||||
Reference in New Issue
Block a user