/** * `?doc=` — which design is on screen, and the one value that is not an id. * * Here rather than in either panel because both read it and neither owns it: the list writes it, the * canvas answers it, and a constant that lives in one of them makes the other import a component to * get at a string. * * ── Why a sentinel and not an absent parameter ── * * Absent already means something: "open whatever I had last", which the canvas answers with * `/documents/latest`. A blank canvas is a different request, and expressing it by removing the * parameter made New hand back the design already on screen — then point the next save at its id. * * `new` is not a valid id, so nothing can collide with it: `Number('new')` is NaN and every document * route rejects that before it reaches the database. */ export const NEW_DOC = 'new';