diff --git a/web/sections.ts b/web/sections.ts index 5e59476..bea7f94 100644 --- a/web/sections.ts +++ b/web/sections.ts @@ -29,6 +29,7 @@ import { Home, Info, Layers, Images, Handshake, Sparkles, Wrench, Settings, Mail export type SectionKey = | 'administration' + | 'galleries' | 'media' | 'messages' | 'site' @@ -154,6 +155,29 @@ export const SECTIONS: Section[] = [ built: true, requires: 'connection', }, + { + /* + Galleries — an entity of their own, not a list hanging off a page. + + Above Media and pinned with it, because the two are the same kind of thing: the raw material the + site is built from, held on this machine. Media is the files; a gallery is a set of them somebody + has chosen and put in an order, which is a decision worth keeping once rather than remaking on + every page that wants it. + + `requires: 'root'` and not `'connection'`. A gallery is made of originals on this disk, so it is + reachable as soon as there is a root location — the same reasoning that unlocked Media, and for + the same reason: gating it behind a site connection it does not use was the bug that made the + distinction necessary. + */ + key: 'galleries', + label: 'Galleries', + icon: Images, + hint: 'Named sets of media, reusable across the site', + path: null, + built: false, + requires: 'root', + pinned: true, + }, { /* The site's own media, browsed in place.