mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-28 00:12:25 +00:00
Makes the NIP-71 mirror user-facing via the My Videos tab — the natural manage-my-videos surface — without touching the single-writer publish path. - js/constants.js: new FEATURE_NIP71_MIRROR flag (default on). Independent of FEATURE_PUBLISH_NIP71, which is already wired to the LEGACY 21/22 auto-publish in videoPublisher.js — flipping that would activate the wrong (non-opt-in) model, so the opt-in mirror gets its own flag and that legacy path stays dormant. - js/services/nip71MirrorFlags.js: per-video opt-in persistence (pubkey+videoRootId, off by default) + pure resolveMirrorToggle decision. - MyVideosController: per-row "Share to apps" / "Shared ✓" toggle (gated by the flag), wired to nip71MirrorService.publish/remove. Ineligible videos show a disabled "Share off" with the reason (private / NSFW-not-allowed-here / needs hosted URL) — the ALLOW_NSFW_CONTENT moderation gate surfaces here too. tests/nip71-mirror-flags.test.mjs: persistence scoping + toggle decision (enabled→remove, eligible→publish, ineligible→blocked). Mutation-verified. Co-Authored-By: Claude Opus 4.8 <[email protected]>