aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/copy-link.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/copy-link.js')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/copy-link.js21
1 files changed, 2 insertions, 19 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/copy-link.js b/packages/meshbay-hub/src/meshbay_hub/static/copy-link.js
index ad6c3be..4cc3f30 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/copy-link.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/copy-link.js
@@ -1,6 +1,7 @@
import { t } from './i18n.js';
import * as platform from './platform.js';
import { groupLinkRoute } from './group-link.js';
+import { say } from './note.js';
/**
* "Copy link": the `#/name@owner/path` address of a file or folder
@@ -41,27 +42,9 @@ async function _write(text) {
return ok;
}
-let _note = null;
-let _noteTimer = null;
-
-// Said once and gone, in the playlists' note (style.css `.playlist-note`).
-// Appended to the body rather than rendered by a view, because the views that
-// copy include modals and a context menu that has already closed.
-function _say(text) {
- if (!_note) {
- _note = document.createElement('div');
- _note.className = 'playlist-note copy-link-note';
- _note.setAttribute('role', 'status');
- }
- _note.textContent = text;
- document.body.appendChild(_note);
- clearTimeout(_noteTimer);
- _noteTimer = setTimeout(() => { if (_note) _note.remove(); }, 2500);
-}
-
/** Copy `url`, and say whether it worked. The link itself is shown if not. */
export async function copyLink(url) {
if (!url) return;
const ok = await _write(url);
- _say(ok ? t('link.copied') : t('link.copy_failed', { url }));
+ say(ok ? t('link.copied') : t('link.copy_failed', { url }));
}