/* * Copyright (c) 2020-2024. The Nextcloud Bookmarks contributors. * * This file is licensed under the Affero General Public License version 3 or later. See the COPYING file. */ import { generateUrl } from '@nextcloud/router' import { showError } from '@nextcloud/dialogs' import linkify from 'linkify-it' const Linkify = linkify() window.addEventListener('DOMContentLoaded', () => { if (!window.OCA?.Talk?.registerMessageAction) { return } window.OCA.Talk.registerMessageAction({ label: t('bookmarks', 'Create bookmarks for mentioned links'), icon: 'icon-favorite', async callback({ message: { message, actorDisplayName }, metadata: { name: conversationName, token: conversationToken } }) { try { const urls = Linkify.match(message) if (!urls || !urls.length) { showError(t('bookmarks', 'No links found in this message')) return } const bookmarkletUrl = window.location.origin + generateUrl('/apps/bookmarks/bookmarklet') urls.forEach((url) => { window.open(`${bookmarkletUrl}?url=` + encodeURIComponent(url.text), 'bkmk_popup', 'left=' + ((window.screenX || window.screenLeft) + 10) + ',top=' + ((window.screenY || window.screenTop) + 10) + ',height=650px,width=550px,resizable=1,alwaysRaised=1') }) } catch (e) { console.debug('Bookmark creation dialog was canceled') } }, }) })