diff --git a/apps/machine/src/stores/atm.ts b/apps/machine/src/stores/atm.ts index a65f900..f1764e0 100644 --- a/apps/machine/src/stores/atm.ts +++ b/apps/machine/src/stores/atm.ts @@ -1639,6 +1639,15 @@ export const useAtmStore = defineStore('atm', () => { send({ type: 'DEV_UNLOCK' }) } + /** + * End the current tap-in session on demand and re-lock immediately (drops the + * loaded Bolt Card via `locked`'s entry), instead of waiting out the idle + * timeout. No-op unless the gate is active and we're on the idle menu. + */ + function endSession() { + send({ type: 'END_SESSION' }) + } + // Convenience methods for common events function selectCashIn() { send({ type: 'SELECT_CASH_IN' }) @@ -1799,6 +1808,7 @@ export const useAtmStore = defineStore('atm', () => { grantAccess, denyAccess, devUnlock, + endSession, // Actions initialize, diff --git a/apps/machine/src/views/IdleView.vue b/apps/machine/src/views/IdleView.vue index 3465cc1..a538ff2 100644 --- a/apps/machine/src/views/IdleView.vue +++ b/apps/machine/src/views/IdleView.vue @@ -183,6 +183,21 @@ function handleCashOut() { ? + + +