mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
New route #view=playlist&pubkey=<hex>&id=<playlist id>: - views/playlist.html: title + meta + the shared #videoList grid. - js/playlistView.js: initPlaylistView() reads pubkey+id from the hash, fetches the playlist (facade), resolves its ordered `a` refs against the app's active videos (buildVideoAddressPointer keys, same 30078 contract), points the back link at the creator's channel, and renders via app.renderVideoList with preserveOrder:true so the playlist's order is kept (not re-sorted by date — #21). Unresolved refs are skipped; the meta line shows "N of M available". Gated by FEATURE_PLAYLISTS. - FEED_TYPES.PLAYLIST + viewManager registration (getApp: getApplication). The channel-section cards now resolve to a working view. node --check + lint + build clean. End-to-end browser verification comes with the create/edit slice (needs a way to actually make a playlist). Co-Authored-By: Claude Opus 4.8 <[email protected]>
28 lines
991 B
HTML
28 lines
991 B
HTML
<!-- views/playlist.html — creator playlist (#37). Renders the playlist's ordered
|
|
videos into the shared #videoList grid via app.renderVideoList. -->
|
|
<section data-ds="new">
|
|
<div class="mb-4">
|
|
<a
|
|
href="#view=most-recent-videos"
|
|
id="playlistBackLink"
|
|
class="text-sm text-info-strong hover:underline"
|
|
>← Back to channel</a
|
|
>
|
|
</div>
|
|
<div class="flex items-center gap-2 mb-2">
|
|
<h2 id="playlistTitle" class="text-xl font-semibold text-text">Playlist</h2>
|
|
</div>
|
|
<p id="playlistMeta" class="text-sm text-muted mb-4"></p>
|
|
<div id="videoList" class="bv-grid-video" data-testid="video-list">
|
|
<div class="sidebar-loading-wrapper" role="status" aria-live="polite">
|
|
<div class="sidebar-loading-indicator">
|
|
<span
|
|
class="status-spinner status-spinner--inline"
|
|
aria-hidden="true"
|
|
></span>
|
|
<span class="sidebar-loading-text">Loading playlist…</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|