feat(ARC-3813): add the driekeuzespeler content block - #436
Open
RobbeBierebeeck wants to merge 45 commits into
Open
feat(ARC-3813): add the driekeuzespeler content block#436RobbeBierebeeck wants to merge 45 commits into
RobbeBierebeeck wants to merge 45 commits into
Conversation
IE_OBJECT_WITH_SNIPPET_TIME_FIELDS held the object picker inline, so a block that points at an object without a snippet could not reuse it. Moves the field to defaults.ts next to the other field helpers and has the snippet helper call it, with the fields it resets on change as a parameter. No behaviour change: the timeline and video blocks get the same field they had.
A new HET_ARCHIEF content block that offers three curated interests at random, each a tile with its object's thumbnail and a coloured pill. Clicking a tile opens the object in a modal; the shuffle CTA deals three more. Config holds a title, one colour pair per tile position, the shuffle label and 3 to 200 interests. The colours belong to the position rather than the interest, because a shuffle decides which interest lands where. Also adds a ThemeSelect editor type for picking the one theme an interest links to, and a config slot for the host's IIIF viewer so a newspaper opens in the real viewer rather than a flat still. Two parts of the FA are not in here: the secondary CTA needs a theme search filter that does not exist yet, and the hover animation still awaits the example the FA lists as an open question.
reunefe
requested changes
Aug 27, 2026
reunefe
left a comment
Contributor
There was a problem hiding this comment.
Voor ik er verder in detail doorga, lijkt het me beter om de bestaande zaken reeds op te pikken.
Vooral de roundtrips via meerdere API calls lijkt me niet ideaal. Doel van de playable data was net om dat te vermijden.
…f declaring it twice
…-3813_driekeuzespeler # Conflicts: # ui/src/react-admin/core/config/config.types.ts # ui/src/react-admin/modules/content-page/components/blocks/BlockTitleWithParallax/BlockTitleWithParallax.scss
…open The tile objects were already prefetched, but the theme behind the modal's secondary CTA was still fetched when a tile was opened. Resolve all three with the selection instead, deduplicated and sorted so a shuffle back to a selection already seen is served from the cache.
reunefe
requested changes
Aug 31, 2026
bertyhell
approved these changes
Aug 31, 2026
…dpoints The block uses the shared playable-data hook instead of its own, so the narrowing param and the newspaper page list come off playable-display-data again. The IIIF viewer is handed a whole ie-object from the general ie-objects endpoint. The shuffle CTA moves to the shared button.
…block The helper takes a label and an isRequired flag, which is what the objects grid needed to stop declaring its own copy of the same picker.
Rendering both variants and letting CSS pick one means keeping two buttons in sync, which the width branch was chosen over. The divider moves out of the shared component to the one block that needs it.
The shapes layer drops from five boxes to two, the shapes are masked so they take the block's WCAG colour, and the interest pill scales with the stage so it no longer overflows its tile between 700px and the design's 1440.
…-3813_driekeuzespeler # Conflicts: # ui/src/react-admin/modules/content-page/components/IeObjectMetadata/IeObjectMetadata.tsx
The block resolves its three objects through the general ie-objects endpoint and tickets a file only when a tile is opened, so the playable media endpoint on the proxy needs no change at all.
reunefe
requested changes
Sep 1, 2026
bertyhell
approved these changes
Sep 1, 2026
reunefe
requested changes
Sep 1, 2026
Removes the local re-exports of IeObject(File/Page)/IeObjectType/SimpleIeObjectType and updates every consumer to import them straight from @viaa/avo2-types.
Moves theme-search url building out of BlockDriekeuzespelerModal into ThemesService.getThemeSearchPath, mirroring IeObjectsService.getObjectDetailPath. The host app can now supply its own url via config; unconfigured falls back to the plain search page instead of the previous hardcoded, ignored query param.
…-3813_driekeuzespeler # Conflicts: # ui/src/react-admin/modules/content-page/components/IeObjectMetadata/IeObjectMetadata.tsx # ui/src/react-admin/modules/content-page/components/blocks/BlockThemeReels/BlockThemeReelSection.tsx
reunefe
approved these changes
Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://meemoo.atlassian.net/browse/ARC-3813
Adds the driekeuzespeler: three random interests as tiles, each opening its
object in a modal.