You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We're building an ATS as a Twenty App. A recruiter needs to read a candidate's CV (PDF) while taking notes and running actions on the same record page — i.e. the document must be visible inline and persistent, side-by-side with the record, not in a blocking overlay.
What already exists
Twenty ships a capable host-side DocumentViewer (@cyntler/react-doc-viewer, PDF + ~11 formats). But it's only reachable through GlobalFilePreviewModal — clicking a file opens a modal, which blocks interaction with the record underneath. There's no native way to embed that viewer inline in a record page.
The gap for App builders
The natural place to put an inline viewer from an App is a FrontComponent, but the Remote DOM sandbox (correctly) forces sandbox on the FC iframe, and in our testing Chrome's native PDF viewer refuses to initialize inside any sandboxed iframe — so a real PDF can't render inside an FC. Today the only inline workaround is rasterizing the PDF to images, which loses text/selection/multipage fidelity. (To be clear: we are not asking to weaken the FC sandbox — the security direction there makes sense.)
Proposed direction (we'd be happy to contribute the PR)
Expose the existing DocumentViewer for inline, host-side composition — e.g. one of:
A record-page widget / page-layout tab type that renders a document field's file inline (host-side, outside the FC sandbox), or
A small refactor extracting the viewer from GlobalFilePreviewModal so it can be embedded, plus a supported way for an App's record-page layout to point at it.
Question for maintainers
Is inline document preview something you'd want upstream, and if so which shape fits your record-page architecture best? We have a working implementation and can open a PR shaped to your preference.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Use case
We're building an ATS as a Twenty App. A recruiter needs to read a candidate's CV (PDF) while taking notes and running actions on the same record page — i.e. the document must be visible inline and persistent, side-by-side with the record, not in a blocking overlay.
What already exists
Twenty ships a capable host-side
DocumentViewer(@cyntler/react-doc-viewer, PDF + ~11 formats). But it's only reachable throughGlobalFilePreviewModal— clicking a file opens a modal, which blocks interaction with the record underneath. There's no native way to embed that viewer inline in a record page.The gap for App builders
The natural place to put an inline viewer from an App is a FrontComponent, but the Remote DOM sandbox (correctly) forces
sandboxon the FC iframe, and in our testing Chrome's native PDF viewer refuses to initialize inside any sandboxed iframe — so a real PDF can't render inside an FC. Today the only inline workaround is rasterizing the PDF to images, which loses text/selection/multipage fidelity. (To be clear: we are not asking to weaken the FC sandbox — the security direction there makes sense.)Proposed direction (we'd be happy to contribute the PR)
Expose the existing
DocumentViewerfor inline, host-side composition — e.g. one of:GlobalFilePreviewModalso it can be embedded, plus a supported way for an App's record-page layout to point at it.Question for maintainers
Is inline document preview something you'd want upstream, and if so which shape fits your record-page architecture best? We have a working implementation and can open a PR shaped to your preference.
All reactions