From b2b8ebfd78075da545299811c2e2bfe8840e1072 Mon Sep 17 00:00:00 2001 From: b1rdmania <102524336+b1rdmania@users.noreply.github.com> Date: Tue, 3 Mar 2026 11:55:50 +0000 Subject: [PATCH] ux: clarify two-click MP3 download Explain that MP3 export takes time and requires a second click to save, and make the ready-state button label explicit. Made-with: Cursor --- src/main.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main.ts b/src/main.ts index 893d902..748d334 100644 --- a/src/main.ts +++ b/src/main.ts @@ -885,8 +885,8 @@ class MotifApp { try { this.downloadMp3Btn.disabled = true; - this.downloadMp3Btn.textContent = 'Preparing…'; - this.updateStatus('Rendering audio…'); + this.downloadMp3Btn.textContent = 'Preparing MP3…'; + this.updateStatus('Preparing MP3… this can take a bit. When it says “Ready”, click Download MP3 again to save.'); // Stop any current playback this.handleMotifStop(); @@ -899,7 +899,7 @@ class MotifApp { sampleRate ); - this.updateStatus('Encoding MP3…'); + this.updateStatus('Encoding MP3… (almost there)'); const Mp3Encoder = (lamejs as any)?.Mp3Encoder; if (!Mp3Encoder) throw new Error('MP3 encoder not loaded'); @@ -936,8 +936,8 @@ class MotifApp { // Store prepared download and let the user click once more to save. this.preparedMp3 = { url, filename }; - this.downloadMp3Btn.textContent = 'Tap to download'; - this.updateStatus('MP3 ready. Tap Download MP3 again to save.'); + this.downloadMp3Btn.textContent = 'Download MP3 (ready)'; + this.updateStatus('MP3 ready. Click Download MP3 again to save.'); // Auto-cleanup to avoid leaking blob URLs. this.preparedMp3RevokeTimeout = window.setTimeout(() => {