No description
  • TypeScript 97.9%
  • Dockerfile 1.6%
  • JavaScript 0.5%
Find a file
Roelof cfe48ac160
All checks were successful
Build APK / build (push) Successful in 3m58s
Toon tegenstanders in popup en volledige dagnaam
- MatchDate: volledige dagnaam met hoofdletter i.p.v. afkorting.
- HomeCard: "reserves:" op eigen regel met namen eronder in meerdere kolommen.
- OpponentsCard: tegenstanders in een scrollbare popup (info-knop) i.p.v.
  inline; backdrop en sheet als siblings zodat de ScrollView vrij scrollt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 18:23:52 +02:00
.claude Bouw side-loadbare APK via EAS in Forgejo workflow 2026-06-10 14:11:54 +02:00
.forgejo Bouw APK lokaal op de runner i.p.v. EAS-cloud 2026-06-17 17:43:12 +02:00
app Verwijder admin-sectie en SignalR 2026-06-16 16:19:45 +02:00
assets Vanaf DevOps 2026-06-10 11:49:11 +02:00
src Toon tegenstanders in popup en volledige dagnaam 2026-06-18 18:23:52 +02:00
.env.example Toon dagnaam voor matchdatum en stijl HomeCard-kop 2026-06-18 07:31:52 +02:00
.gitignore Bouw side-loadbare APK via EAS in Forgejo workflow 2026-06-10 14:11:54 +02:00
app.json Fix startup-crash door expo-font op SDK 54 te pinnen 2026-06-16 16:20:41 +02:00
babel.config.js Vanaf DevOps 2026-06-10 11:49:11 +02:00
CLAUDE.md Vanaf DevOps 2026-06-10 11:49:11 +02:00
eas.json Bouw side-loadbare APK via EAS in Forgejo workflow 2026-06-10 14:11:54 +02:00
eslint.config.js Vanaf DevOps 2026-06-10 11:49:11 +02:00
metro.config.js Vanaf DevOps 2026-06-10 11:49:11 +02:00
package-lock.json Fix startup-crash door expo-font op SDK 54 te pinnen 2026-06-16 16:20:41 +02:00
package.json Fix startup-crash door expo-font op SDK 54 te pinnen 2026-06-16 16:20:41 +02:00
README.md Vanaf DevOps 2026-06-10 11:49:11 +02:00
tsconfig.json Vanaf DevOps 2026-06-10 11:49:11 +02:00

LibreAndroid

React Native + Expo port of LibreWeb for "Biljartclub 't Wold".

Setup

npm install
cp .env.example .env
# edit .env to point EXPO_PUBLIC_LIBRE_API_URL and EXPO_PUBLIC_LIBRE_API_KEY
npm run start

Then scan the QR code with the Expo Go app on an Android device, or press a/i/w in the CLI to launch the Android emulator, iOS simulator, or web build respectively.

Environment

Expo only exposes env vars prefixed with EXPO_PUBLIC_ to the JS bundle:

  • EXPO_PUBLIC_LIBRE_API_URL — base URL of the Libre backend
  • EXPO_PUBLIC_LIBRE_API_KEYX-API-KEY header value
  • EXPO_PUBLIC_LIBRE_EDITMODE"true" enables edit mode at startup (dev only)

Architecture

Mirrors LibreWeb 1:1 where possible:

  • Routing: expo-router (file-based) under app/. Tabs across the bottom replace the top NavBar.
  • Data: TanStack Query v5 + Axios via src/services/apiClient.ts and src/services/useApiQuery.ts (identical to LibreWeb).
  • Models: src/models/ — pure TS interfaces, copied verbatim.
  • Hooks: src/hooks/ — identical to LibreWeb except useUpdateHub.ts reads process.env.EXPO_PUBLIC_LIBRE_API_URL instead of import.meta.env.
  • UI primitives: src/components/libreui/ — re-implemented for React Native, prop API matches LibreWeb so page ports were near-mechanical. No Bootstrap; styling uses RN StyleSheet.
  • Forms: Formik (same as LibreWeb). libreui Input/CheckBox are Formik-aware via useField.
  • Charts: react-native-chart-kit (replaces chart.js/react-chartjs-2).
  • Login state: a small in-memory state machine (mobile code → pin), same flow as web.