Components › Overlays & dialogs › Dialog › Record drawer

Record drawer

canon

The side panel that opens a record next to its listing without leaving it; the listing behind stays live. The only drawer in the canon.

React implementation lives in the app (apps/web/src/components/drawer/RecordDrawer.tsx); DrawerForm shares only the .pdr shell, not .pdr-sec/.pdr-row. AD 14 September 2026 (OV-2): the only drawer — Drawer form is deprecated. The catalog stories and the overlays proposal still show an OLD body (.pdr-sec/.pdr-row sections) and an old two-button footer („Přidat do segmentu" / „Odemknout informace"). Measured on deployed dev (Lidé → row click): the body is the record rail in drawer variant (PersonRail variant="drawer": stav spolupráce, quick actions, nejbližší aktivita, quick note, Aktivita/Poznámky tabs, Detail záznamu) and the footer holds one primary „Otevřít osobu" — the same card the ↗ in the header opens in a new tab. Stories must be rebuilt from the real call site. Delivered 14 September 2026 (OV-2b, acrm !3515), verified on dev: the footer is gone; ↗ in the head opens the detail in the same tab with the listing context (onOpenDetail), Ctrl/⌘+click opens a new tab; the dead „Odemknout informace" button in segments went with it. Catalog stories still show the old body and footer — to be rebuilt.

Used in 6 files · 6 areas · 7× — components/setkani, pages/FirmyPage, pages/LidePage, pages/PipelinePage, pages/SegmentDetailPage, pages/telefony

Default

components--record-drawer--defaultOpen standalone ↗Code

Variants

person — avatar in the head, fact strip, sections of rows
without the fact strip — the drawer is only as tall as its content (there is no footer to fall back on, see the header comment)
company — square mark instead of a round avatar
components--record-drawer--variantsOpen standalone ↗Code

States

loading — one sentence in the middle, the head keeps the close button
failed — the drawer says what happened and offers the retry, it does not close itself
masked value — a locked record shows what it may
components--record-drawer--statesOpen standalone ↗Code

Composition

The list keeps working next to the drawer — that is why the drawer has no scrim.
components--record-drawer--compositionOpen standalone ↗Code