feat(kiosk): add Android APK and PWA support
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s

This commit is contained in:
fullsizemalt 2025-12-11 20:22:03 -08:00
parent f51a1072fe
commit 046bb9361e
4 changed files with 36 additions and 2 deletions

View file

@ -23,6 +23,7 @@
"konva": "^9.3.6",
"lucide-react": "^0.556.0",
"qrcode": "^1.5.4",
"qrcode.react": "^4.2.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-i18next": "^16.4.1",
@ -6761,6 +6762,15 @@
"node": ">=10.13.0"
}
},
"node_modules/qrcode.react": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-4.2.0.tgz",
"integrity": "sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==",
"license": "ISC",
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",

View file

@ -0,0 +1,14 @@
[
{
"relation": [
"delegate_permission/common.handle_all_urls"
],
"target": {
"namespace": "android_app",
"package_name": "run.runfoo.wolfpack.visitorkiosk",
"sha256_cert_fingerprints": [
"TODO_REPLACE_WITH_ACTUAL_SHA256_FINGERPRINT"
]
}
}
]

Binary file not shown.

View file

@ -1,6 +1,6 @@
import { useState, useEffect, useRef } from 'react';
import { QRCodeSVG as QRCode } from 'qrcode.react';
import { User, Building, Clock, CheckCircle, XCircle, UserPlus, LogOut, Search, Shield, AlertTriangle, Camera, Trash2 } from 'lucide-react';
import { User, Building, Clock, CheckCircle, XCircle, UserPlus, LogOut, Search, Shield, AlertTriangle, Camera, Trash2, Download } from 'lucide-react';
import { visitorsApi, Visitor, ActiveVisitor } from '../lib/visitorsApi';
type KioskMode = 'home' | 'new-visitor' | 'returning' | 'check-in' | 'check-out' | 'success';
@ -581,8 +581,18 @@ export default function VisitorKioskPage() {
</main>
{/* Footer */}
<footer className="bg-slate-800/50 border-t border-white/10 p-4 text-center text-slate-500 text-sm">
<footer className="bg-slate-800/50 border-t border-white/10 p-4 text-center text-slate-500 text-sm flex flex-col md:flex-row justify-center items-center gap-4">
<p>By signing in, you agree to follow all facility rules and regulations.</p>
<div className="hidden md:block w-px h-4 bg-white/10" />
<a
href="/visitorkiosk.apk"
className="text-emerald-500/80 hover:text-emerald-400 font-medium transition-colors flex items-center gap-2 px-3 py-1 rounded-lg hover:bg-emerald-500/10"
download
title="Download the Android App"
>
<Download size={14} />
Download Kiosk App
</a>
</footer>
</div>
);