payfrit-beacon-ios/PayfritBeacon/PayfritBeaconApp.swift
John Pinkyfloyd 962a767863 Rewrite app: simplified architecture, CoreLocation beacon scanning, UI fixes
- Flatten project structure: remove Models/, Services/, ViewModels/, Views/ subdirs
- Replace APIService actor with simpler Api class, IS_DEV flag controls dev vs prod URL
- Rewrite BeaconScanner to use CoreLocation (CLBeaconRegion ranging) instead of
  CoreBluetooth — iOS blocks iBeacon data from CBCentralManager
- Add SVG logo on login page with proper scaling (was showing green square)
- Make login page scrollable, add "enter 6-digit code" OTP instruction
- Fix text input visibility (white on white) with .foregroundColor(.primary)
- Add diagonal orange DEV ribbon banner (lower-left corner), gated on Api.IS_DEV
- Update app icon: logo 10% larger, wifi icon closer
- Add en.lproj/InfoPlist.strings for display name localization
- Fix scan flash: keep isScanning=true until enrichment completes
- Add Podfile with SVGKit, Kingfisher, CocoaLumberjack dependencies

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 22:07:39 -08:00

24 lines
1.1 KiB
Swift

import SwiftUI
@main
struct PayfritBeaconApp: App {
var body: some Scene {
WindowGroup {
RootView()
}
}
}
extension Color {
static let payfritGreen = Color(red: 34/255, green: 178/255, blue: 75/255) // #22B24B
static let signalStrong = Color(red: 76/255, green: 175/255, blue: 80/255) // #4CAF50
static let signalMedium = Color(red: 249/255, green: 168/255, blue: 37/255) // #F9A825
static let signalWeak = Color(red: 186/255, green: 26/255, blue: 26/255) // #BA1A1A
static let infoBlue = Color(red: 33/255, green: 150/255, blue: 243/255) // #2196F3
static let warningOrange = Color(red: 255/255, green: 152/255, blue: 0/255) // #FF9800
static let errorRed = Color(red: 186/255, green: 26/255, blue: 26/255) // #BA1A1A
static let successGreen = Color(red: 76/255, green: 175/255, blue: 80/255) // #4CAF50
static let newBg = Color(red: 76/255, green: 175/255, blue: 80/255).opacity(0.12)
static let assignedBg = Color(red: 33/255, green: 150/255, blue: 243/255).opacity(0.12)
static let bannedBg = Color(red: 186/255, green: 26/255, blue: 26/255).opacity(0.12)
}