mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Revamp attachment editor + preview UI, and support more types, including PDFs.
Summary: - New UI for the modal look mostly following the design prepared previously. - Use <object> for rendering PDFs (on a Mac works on Firefox, Chrome, Safari; needs checking on Windows) - While we are at it, use <video> and <audio> for relevant files (object would render them too, but without the option to disable autoplay). - Use <object> for unknown types, except for text/html (unsafe) and other text types (need more work to render well). - Fix skipping save on Escape or when attachments are unsaved (previously a noop action was emitted, creating surprises with undo). - Display extension for files without preview, both in-cell and in the modal. - Replace tiny "eye" icon to preview particular attachment with double-clicking. - As an accidental feature, a particular attachment can be previewed by typing 1, 2, 3, etc into cell. - Renamed PreviewsWidget/PreviewModel to AttachmentsWidget/AttachmentsEditor. Test Plan: Unified old and new tests for attachments, added new test cases. Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D2667
This commit is contained in:
@@ -47,9 +47,11 @@ export type ModalWidth =
|
||||
export function modal(createFn: (ctl: IModalControl, owner: MultiHolder) => DomElementArg,
|
||||
options: IModalOptions = {}): void {
|
||||
function close() {
|
||||
document.body.removeChild(modalDom);
|
||||
// Ensure we run the disposers for the DOM contained in the modal.
|
||||
dom.domDispose(modalDom);
|
||||
if (modalDom.isConnected) {
|
||||
document.body.removeChild(modalDom);
|
||||
// Ensure we run the disposers for the DOM contained in the modal.
|
||||
dom.domDispose(modalDom);
|
||||
}
|
||||
}
|
||||
|
||||
const modalDom = cssModalBacker(
|
||||
|
||||
Reference in New Issue
Block a user