feat(kiosk): add Android APK and PWA support
This commit is contained in:
parent
f51a1072fe
commit
046bb9361e
4 changed files with 36 additions and 2 deletions
10
frontend/package-lock.json
generated
10
frontend/package-lock.json
generated
|
|
@ -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",
|
||||
|
|
|
|||
14
frontend/public/.well-known/assetlinks.json
Normal file
14
frontend/public/.well-known/assetlinks.json
Normal 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"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
BIN
frontend/public/visitorkiosk.apk
Normal file
BIN
frontend/public/visitorkiosk.apk
Normal file
Binary file not shown.
|
|
@ -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>
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue