@@ -361,6 +361,39 @@ const handlePostMessagesCollabora = async (event: MessageEvent) => {
361361 }),
362362 focusTrapInitial: false
363363 })
364+ return
365+ }
366+
367+ if (message .MessageId === ' UI_InsertFile' ) {
368+ const callback = message .Values ?.callback
369+ const mimeTypeFilter = message .Values ?.mimeTypeFilter
370+
371+ dispatchModal ({
372+ elementClass: ' file-picker-modal' ,
373+ title:
374+ callback === ' Action_CompareDocuments'
375+ ? $gettext (' Select document to compare' )
376+ : $gettext (' Insert file' ),
377+ customComponent: FilePickerModal ,
378+ hideActions: true ,
379+ customComponentAttrs : () => ({
380+ parentFolderLink: getParentFolderLink (resource ),
381+ allowedFileTypes: mimeTypeFilter || [],
382+ callbackFn : async ({ resource }: { resource: Resource }) => {
383+ const { downloadURL : url } = await webdav .getFileInfo (space , resource , {
384+ davProperties: [DavProperty .DownloadURL ]
385+ })
386+
387+ const values: Record <string , unknown > = { url }
388+ if (callback === ' Action_CompareDocuments' ) {
389+ values .filename = resource .name
390+ }
391+
392+ postMessageToCollabora (callback , values )
393+ }
394+ }),
395+ focusTrapInitial: false
396+ })
364397 }
365398 } catch (e ) {
366399 console .debug (' Error parsing Collabora PostMessage' , e )
0 commit comments