From ffec5e1a52596a3be867558c41b43ac9b3892c0c Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 21 Sep 2026 10:56:47 -0700 Subject: Point of sale: /pos, a per-device till mode, an on-screen pad — and off the Receive tab. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v3.coinos.io/pos opens the point of sale once a wallet is up (claimed at boot before any feature reads the path), so the till can be bookmarked or put on a home screen. Settings → Payments gains "Start in point of sale on this device" (localStorage, not synced: the till, not every phone the owner carries). The amount and the custom tip get a 3×4 pad that edits the same field a keyboard or a paste would. The button under the payment address on Receive is gone. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01Tmfg8k5f3TbNJS34qiqHAp --- src/app.js | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/app.js') diff --git a/src/app.js b/src/app.js index 58bc242..08a6901 100644 --- a/src/app.js +++ b/src/app.js @@ -5487,6 +5487,17 @@ const wakeDone = () => { try { if (WAKE_PAYLOAD != null && window.CoinosHost && window.CoinosHost.done) window.CoinosHost.done(); } catch {} }; +// v3.coinos.io/pos: the point of sale, straight away — a bookmark or a +// home-screen icon for the till. Consumed here (before any feature reads +// the path) and opened once a wallet is up; the pos feature owns the rest. +const BOOT_POS = (() => { + try { + if (!/^\/pos\/?$/i.test(location.pathname)) return false; + history.replaceState(null, '', '/' + (location.search || '')); + return true; + } catch { return false; } +})(); +if (BOOT_POS) ui.posAtBoot = true; const INTENT_URI = (() => { try { const u = new URLSearchParams(location.search).get('u'); -- cgit v1.2.3