mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 10:29:58 +02:00
feat(apple): type-safe SF Symbols via SFSafeSymbols
Replaces every stringly-typed SF Symbol name with a compile-time-checked SFSymbol case, mirroring the L10n accessor approach. A mistyped or OS-unavailable symbol is now a build error instead of a silently blank glyph at runtime. Adds the SFSafeSymbols SPM package (project.yml) and migrates all call sites: Image(systemName:)/Label(systemImage:) -> systemSymbol, and the five symbol-carrying view properties (AppDestination.systemSymbol, SettingsRow.icon, AboutPoint.symbol, MethodRow.icon, PolicyOption.icon) flipped from String to SFSymbol end to end.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import Foundation
|
||||
import SFSafeSymbols
|
||||
|
||||
/// Top-level destinations, ported from `ui/navigation/AppDestination.kt`.
|
||||
enum AppDestination: String, CaseIterable, Identifiable {
|
||||
@@ -17,11 +18,11 @@ enum AppDestination: String, CaseIterable, Identifiable {
|
||||
}
|
||||
|
||||
/// SF Symbol approximating the Compose line icon.
|
||||
var systemImage: String {
|
||||
var systemSymbol: SFSymbol {
|
||||
switch self {
|
||||
case .send: return "paperplane"
|
||||
case .receive: return "tray.and.arrow.down"
|
||||
case .settings: return "gearshape"
|
||||
case .send: return .paperplane
|
||||
case .receive: return .trayAndArrowDown
|
||||
case .settings: return .gearshape
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user