feat(notes): strip explanatory UI copy

Removed the "your note saves as you type" / "encrypted at rest" /
tip-list filler that telegraphs AI-generated code. UI now reads
the way a real app reads — names where names go, no paragraphs
explaining what a button does.

  • Module header: "Notes" — removed the paragraph tagline.
  • Empty state: icon + "New note" button only — removed the
    "Hello 👋" heading, the description, and the three-tip list.
  • Placeholders: "Title" / "Search" — removed the "…" ellipses
    and the "Note title" / "Search notes" verbosity.
  • Status + meta: emptied the "New note — will save automatically
    once you type" meta string and the "This note is empty. Tap
    Edit to add content" reader placeholder.
  • Empty-list copy trimmed to just "No matches" when the search
    filter is active.

SW cache bumped to pedscribe-v12-notes3.
This commit is contained in:
Daniel 2026-04-24 12:49:15 +02:00
parent ce7245d3a0
commit cd6e2a26e1
3 changed files with 9 additions and 19 deletions

View file

@ -1,6 +1,5 @@
<div class="module-header"> <div class="module-header">
<h2><i class="fas fa-note-sticky" style="color:#f59e0b;"></i> My Notes</h2> <h2><i class="fas fa-note-sticky" style="color:#f59e0b;"></i> Notes</h2>
<p>A quiet place for your thoughts — jot ideas, paste references, or dictate and let AI tidy it up. Only you can see these.</p>
</div> </div>
<!-- data-view controls which pane is visible on mobile (<900px): <!-- data-view controls which pane is visible on mobile (<900px):
@ -17,7 +16,7 @@
</button> </button>
<div class="notes-search"> <div class="notes-search">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
<input type="text" id="notes-search" placeholder="Search notes…" autocomplete="off"> <input type="text" id="notes-search" placeholder="Search" autocomplete="off">
</div> </div>
</div> </div>
<div id="notes-list" class="notes-list"> <div id="notes-list" class="notes-list">
@ -56,7 +55,7 @@
</button> </button>
<input type="text" id="note-title" <input type="text" id="note-title"
class="notes-title-input" class="notes-title-input"
placeholder="Note title…" placeholder="Title"
maxlength="200" maxlength="200"
autocomplete="off"> autocomplete="off">
<div class="notes-editor-actions"> <div class="notes-editor-actions">
@ -98,17 +97,10 @@
<!-- Empty placeholder — shown on desktop when nothing's picked --> <!-- Empty placeholder — shown on desktop when nothing's picked -->
<section id="notes-empty-state" class="notes-empty-state"> <section id="notes-empty-state" class="notes-empty-state">
<div class="notes-empty-card"> <div class="notes-empty-card">
<div class="notes-empty-icon"><i class="fas fa-feather"></i></div> <div class="notes-empty-icon"><i class="fas fa-note-sticky"></i></div>
<h3>Hello 👋</h3>
<p>Pick a note on the left, or start a fresh one. You can type, paste, or tap <strong>Dictate</strong> to let AI clean up your voice into a polished note.</p>
<button id="btn-notes-new-empty" type="button" class="btn-primary notes-empty-cta"> <button id="btn-notes-new-empty" type="button" class="btn-primary notes-empty-cta">
<i class="fas fa-plus"></i> Create your first note <i class="fas fa-plus"></i> New note
</button> </button>
<div class="notes-empty-tips">
<div><i class="fas fa-bolt"></i> <span>Press <kbd>Ctrl</kbd>+<kbd>S</kbd> to save</span></div>
<div><i class="fas fa-microphone"></i> <span>Dictate turns your voice into a clean note</span></div>
<div><i class="fas fa-lock"></i> <span>Encrypted at rest — only you can read them</span></div>
</div>
</div> </div>
</section> </section>

View file

@ -190,9 +190,7 @@
} }
if (filtered.length === 0) { if (filtered.length === 0) {
listEl.innerHTML = '<div class="notes-empty">' listEl.innerHTML = '<div class="notes-empty">'
+ (_search + (_search ? 'No matches' : '')
? 'No notes match "' + esc(_search) + '".'
: 'No notes yet. Tap <strong>New note</strong> to create one.')
+ '</div>'; + '</div>';
return; return;
} }
@ -223,7 +221,7 @@
$('notes-reader-meta').textContent = 'Created ' + formatWhen(note.created_at) + ' · Updated ' + formatWhen(note.updated_at); $('notes-reader-meta').textContent = 'Created ' + formatWhen(note.created_at) + ' · Updated ' + formatWhen(note.updated_at);
var body = $('notes-reader-body'); var body = $('notes-reader-body');
body.innerHTML = note.body ? sanitizeHtml(note.body) : '<p style="color:var(--g400);font-style:italic;">This note is empty. Tap Edit to add content.</p>'; body.innerHTML = note.body ? sanitizeHtml(note.body) : '';
setView('reader'); setView('reader');
renderList(); renderList();
@ -235,7 +233,7 @@
_activeId = null; _activeId = null;
_dirty = false; _dirty = false;
$('note-title').value = ''; $('note-title').value = '';
$('note-meta').textContent = 'New note — will save automatically once you type.'; $('note-meta').textContent = '';
$('btn-note-delete').style.display = 'none'; $('btn-note-delete').style.display = 'none';
mountTiptap($('note-body-editor'), ''); mountTiptap($('note-body-editor'), '');
updateStatus('', ''); updateStatus('', '');

View file

@ -4,7 +4,7 @@
// API calls always fresh (critical for medical data accuracy) // API calls always fresh (critical for medical data accuracy)
// ============================================================ // ============================================================
var CACHE_NAME = 'pedscribe-v12-notes2'; var CACHE_NAME = 'pedscribe-v12-notes3';
var SHELL_ASSETS = [ var SHELL_ASSETS = [
'/', '/',
'/index.html', '/index.html',