diff --git a/frontend/src/features/notes/ui/cardInteractions.js b/frontend/src/features/notes/ui/cardInteractions.js
index 09e083c41..4160e5c1b 100644
--- a/frontend/src/features/notes/ui/cardInteractions.js
+++ b/frontend/src/features/notes/ui/cardInteractions.js
@@ -112,7 +112,7 @@ export function createCardInteractions({
if (state.selectMode) {
body.querySelectorAll('.note-card').forEach(card => {
card.addEventListener('click', (e) => {
- if (e.target.closest('.note-card-cb')) return; // checkbox handles itself
+ if (e.target.closest('.note-card-cb, a')) return; // links open without toggling selection
e.stopPropagation();
tapToEditOrSelect(card);
});
diff --git a/frontend/src/features/notes/ui/editor.js b/frontend/src/features/notes/ui/editor.js
index f5bdc7c9f..678b08804 100644
--- a/frontend/src/features/notes/ui/editor.js
+++ b/frontend/src/features/notes/ui/editor.js
@@ -51,7 +51,7 @@ export function createEditor({
- ${currentImageUrl && type !== 'draw' ? `
` : ''}
+ ${currentImageUrl && type !== 'draw' ? `` : ''}
${type === 'note'
? `
`
@@ -297,7 +297,7 @@ export function createEditor({
form.querySelector('.note-form-image-wrap')?.remove();
const wrap = document.createElement('div');
wrap.className = 'note-form-image-wrap';
- wrap.innerHTML = `
![]()
`;
+ wrap.innerHTML = `
![]()
`;
// Insert AFTER the whole header (a flex-row), not after the
// title input itself : otherwise the image lands as a sibling
// of the title inside the header and flex puts them side-by-side.
diff --git a/frontend/src/features/notes/ui/text.js b/frontend/src/features/notes/ui/text.js
index 75ecbaf78..bb71cb690 100644
--- a/frontend/src/features/notes/ui/text.js
+++ b/frontend/src/features/notes/ui/text.js
@@ -31,7 +31,7 @@ export function createText({
url = url.slice(0, -1);
}
const href = url.startsWith('www.') ? `https://${url}` : url;
- return `
${url}` + (url !== m ? m.slice(url.length) : '');
+ return `
${url}` + (url !== m ? m.slice(url.length) : '');
});
}