Changeset 8e1af9c in Klonkt for src/assets/js/mod/post-edit.js


Ignore:
Timestamp:
08/22/2026 09:11:56 AM (3 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
16fd4fe
Parents:
25dd08f
git-author:
Robin <roboburr@…> (08/22/2026 09:11:36 AM)
git-committer:
Robin <roboburr@…> (08/22/2026 09:11:56 AM)
Message:

Mixtape als posttype, kiesbaar in de composer

Het bandje bestond wel als soort playlist, maar je kon er geen post van maken.
Nu wel: een eigen knop met een eigen teken, en het muziekpaneel deelt hij met
album en playlist -- het verschil zit in de playlist die je insluit, niet in
wat je uploadt.

KEUZE_TYPES en MUZIEK_TYPES in config/post-types.js waren de goede plek; dat
bestand bestaat precies omdat die lijst eerder drie keer los rondslingerde.

Nog twee keer dezelfde binaire vorm opgeruimd, en de tweede was een echte:

  • VOLGBAAR kende geen mixtape, dus het type volgde de muziek niet.
  • De editor zocht de soort op met de vorm p.kind === 'playlist' ? 'playlist' : 'album'. Het scherm zag dus album terwijl de server mixtape opsloeg: het type verspringt onder je handen bij het bewaren.
  • De renderer koos teken en woord met dezelfde tweewegkeuze, waardoor een ingesloten mixtape het jasje van een album droeg.

De SPELER is er nog niet -- een mixtape rendert voorlopig als de gewone lijst.
Wat af is, is dat hij overal zichzelf noemt.

Zes tests, waaronder de opslagweg door de echte route: kent de opslag een type
niet, dan wordt de post zonder melding een gewone post, en dat is precies de
fout waar config/post-types.js voor waarschuwt. Een van de tests riep eerst een
methode aan die niet bestaat en sloeg zichzelf over; die gaat nu door
embedPlaylistShortcodes heen en valt om als je de tweewegkeuze terugzet.

MOD_V naar 51.

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/assets/js/mod/post-edit.js

    r25dd08f r8e1af9c  
    88// Dezelfde regel die de server gebruikt -- zie shared/post-music-type.js voor
    99// waarom hij daar staat en niet twee keer.
    10 import { afleidenUitInsluitingen } from '../shared/post-music-type.js';
     10import { afleidenUitInsluitingen, SOORTEN } from '../shared/post-music-type.js';
    1111
    1212// De oude inline scripts draaiden bij ELKE render; een module draait zijn
     
    10201020    // alleen als ijkpunt onthouden. Anders zou een oude post van type veranderen
    10211021    // door hem te bekijken.
    1022     const VOLGBAAR = new Set(['post', 'album', 'playlist', 'audio']);
     1022    const VOLGBAAR = new Set(['post', 'album', 'playlist', 'mixtape', 'audio']);
    10231023    const kindVan = new Map();
    10241024    let vorigeAfleiding = null;
     
    10281028      .then((j) => {
    10291029        if (j && j.ok && Array.isArray(j.playlists)) {
    1030           for (const p of j.playlists) kindVan.set(p.id, p.kind === 'playlist' ? 'playlist' : 'album');
     1030          // De soort ZOALS HIJ IS. Dit was `=== 'playlist' ? 'playlist' : 'album'`,
     1031          // en dan ziet de editor een mixtape als album terwijl de server hem
     1032          // als mixtape opslaat: het type verspringt onder je handen bij het
     1033          // bewaren. SOORTEN is dezelfde lijst die de server gebruikt.
     1034          for (const p of j.playlists) kindVan.set(p.id, SOORTEN.includes(p.kind) ? p.kind : 'album');
    10311035        }
    10321036      })
Note: See TracChangeset for help on using the changeset viewer.