payfrit-beacon-ios/PayfritBeacon/DevBanner.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

29 lines
831 B
Swift

import SwiftUI
struct DevRibbon: View {
var body: some View {
if Api.IS_DEV {
GeometryReader { geo in
ZStack {
Text("DEV")
.font(.system(size: 11, weight: .bold))
.tracking(2)
.foregroundColor(.white)
.frame(width: 140, height: 22)
.background(Color(red: 255/255, green: 152/255, blue: 0/255))
.rotationEffect(.degrees(45))
.position(x: 35, y: geo.size.height - 35)
}
}
.allowsHitTesting(false)
}
}
}
struct DevBanner: ViewModifier {
func body(content: Content) -> some View {
content.overlay {
DevRibbon()
}
}
}