managarten/apps/mana/apps/web/src/lib/modules/presi/views
Till JS 303058d406 refactor(visibility): M6.1 — drop legacy isPublic everywhere
Removes the deprecated `isPublic` field from picture, memoro, cards,
presi, and uload. The unified `visibility` enum has been the source
of truth since M3 (picture) / M6 (others) and the soft-fallback in
queries was the last consumer of the legacy field. Killing it
cleanly:

- types: drops isPublic from LocalX + X interfaces, and from
  CreateDeckInput/UpdateDeckInput/UpdateDeckDto.
- queries.ts: type converters now read `visibility ?? 'space'` (or
  'private' for picture) without the isPublic fallback. Cards's
  `getPublicDecks` helper now filters on `visibility === 'public'`.
- stores: createX no longer initializes isPublic; updateX no longer
  accepts/mirrors it; setVisibility no longer writes the mirror.
- UI: cards CreateDeckModal drops the public-toggle (use the
  Picker in DetailView post-create); DeckCard + presi ListView +
  /cards/decks/[id] page badges read `visibility === 'public'`.
- collections.ts: drops isPublic: false from seed rows.
- embeds.ts: picture/memoro/cards/presi resolvers drop the
  isPublic fallback. Top comment updated to reference
  canEmbedOnWebsite as the canonical gate.

Existing IndexedDB rows still carry the stale isPublic value but
nothing reads it. No Dexie schema bump needed (field was never
indexed). No data loss — visibility was mirrored on every flip
during the soft-migrate window so all "public" intent has already
propagated to the unified field.

Closes M6.1 — picture/memoro/cards/presi/uload now have no
legacy visibility flags. Events' isPublished/publicToken stays
(orthogonal RSVP-snapshot system, not legacy).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 18:16:57 +02:00
..
DetailView.svelte refactor(visibility): M6.1 — drop legacy isPublic everywhere 2026-04-25 18:16:57 +02:00