aboutsummaryrefslogtreecommitdiffstats
path: root/src/app.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-21 10:56:47 -0700
committerAdam Soltys <[email protected]>2026-09-21 10:56:47 -0700
commitffec5e1a52596a3be867558c41b43ac9b3892c0c (patch)
treef50097e6e0e9ba7841bee22ee7e03fd636906f89 /src/app.js
parent683184f65eb71bdfd12550e7293f0c721100dd9b (diff)
downloadcoinosv3-ffec5e1a52596a3be867558c41b43ac9b3892c0c.tar.gz
coinosv3-ffec5e1a52596a3be867558c41b43ac9b3892c0c.zip
Point of sale: /pos, a per-device till mode, an on-screen pad — and off the Receive tab.
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 <[email protected]> Claude-Session: https://claude.ai/code/session_01Tmfg8k5f3TbNJS34qiqHAp
Diffstat (limited to 'src/app.js')
-rw-r--r--src/app.js11
1 files changed, 11 insertions, 0 deletions
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');