diff --git a/public/app.js b/public/app.js index 59066c4..3653b2b 100644 --- a/public/app.js +++ b/public/app.js @@ -116,7 +116,7 @@ const playAdJingle = async () => { function WelcomeBanner({ balance, onStart }) { const [fading, setFading] = useState(false); - const dismiss = () => { setFading(true); setTimeout(onStart, 400); }; + const dismiss = () => { setFading(true); track("click: start_spending"); setTimeout(onStart, 400); }; return (
@@ -154,7 +154,7 @@ function Modal({ sub, phase, successText, onSub, onMicro, onClose, onTopUp }) {
Insufficient Funds
Even your wallet is on a free tier.
- + ) : ( <> @@ -163,7 +163,7 @@ function Modal({ sub, phase, successText, onSub, onMicro, onClose, onTopUp }) {
{s.desc}
- + )} @@ -396,6 +396,7 @@ function PayPlay() { // ---- User actions ---- const handlePlay = async () => { + track(on ? "click: pause" : "click: play", { song: song.title }); if (on) { tryAct("pause", () => { stopAudio(); setOn(false); }); } else { if (prog > 0 && !has("continue")) { @@ -411,6 +412,7 @@ function PayPlay() { const handleSeek = e => { const r = e.currentTarget.getBoundingClientRect(), pct = (e.clientX - r.left) / r.width, tgt = Math.floor(pct * song.duration); + track("click: seek", { subscribed: !!has("seek") }); if (has("seek")) { setProg(tgt); if (on) { stopAudio(); startAudio(ci, tgt); } } else { setProg(Math.max(0, Math.min(song.duration, tgt + Math.floor(Math.random() * 40) - 15))); flash("Seek landed somewhere in the general vicinity.", "#f39c12"); } }; @@ -471,7 +473,7 @@ function PayPlay() {
{Object.keys(subs).length} subscription{Object.keys(subs).length !== 1 ? "s" : ""}
- +
)}