Video, chosen from the media store

The picker offers it now, and choosing it opens the media picker rather than a dialog. A video is a
PATH, saved as soon as it is chosen: free text needs a draft because writing is something people do
halfway, and picking a file is one act with one outcome.

Edit means whatever editing that KIND means. The canvas draws one button; which door it opens is decided
in the panel, where the kinds are known — so Edit on a video reopens the picker and Edit on text opens
the editor.

Image and Gallery stay named and disabled. Both are things the site already has.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-31 06:03:07 +01:00
co-authored by Claude Opus 5
parent 56c0f05056
commit 466ad26f11
2 changed files with 48 additions and 5 deletions
+2 -2
View File
@@ -23,7 +23,7 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/u
* A kind the server would accept and this has never heard of is not creatable anyway.
*/
export type ComponentKind = 'free-text';
export type ComponentKind = 'free-text' | 'video';
type Choice = {
kind: ComponentKind | null;
@@ -42,7 +42,7 @@ type Choice = {
const CHOICES: Choice[] = [
{ kind: 'free-text', label: 'Text', hint: 'Words, headings and links', Icon: Type },
{ kind: null, label: 'Image', hint: 'One picture from the media store', Icon: Images },
{ kind: null, label: 'Video', hint: 'A video, with a poster', Icon: Video },
{ kind: 'video', label: 'Video', hint: 'No controls, a poster, autoplay and loop', Icon: Video },
{ kind: null, label: 'Gallery', hint: 'A named set of media', Icon: Images },
];