Showing 1 changed files with 40 additions and 0 deletions
+40 -0
Documentation/Issues/2026-03-24_17-30-catalyst-tabview-freeze.md
@@ -0,0 +1,40 @@
1
+# Issue: macOS Catalyst Navigation Freeze with TabView in MeterView
2
+
3
+## Description
4
+- Aplicația USB Meter (SwiftUI + Catalyst) se bloca complet la navigarea `NavigationLink` push și la deschiderea modalului `sheet` în mod macOS Catalyst (macOS 26 + Apple Silicon).
5
+- Condiții: în detaliu (right pane) existau layout-uri cu tab-uri și paginare.
6
+
7
+## Impact
8
+- Nu se puteau deschide ferestre modal și nici naviga spre info/settings.
9
+- Doar pe Apple Silicon + macOS 26. Intel + Sonoma nu era afectat.
10
+
11
+## Root cause
12
+- Commit introdus `324f2f8` a adus:
13
+  - `TabView` + `PageTabViewStyle` în `MeterView` landscape
14
+  - `GeometryReader` intern și `.navigationBarHidden(landscape)`
15
+- `PageTabViewStyle` pe Catalyst, în split NavigationView, pare să interfereze cu `UINavigationController` intern, blocând stările de navigare.
16
+
17
+## Investigatie și attempts
18
+1. `git bisect` => first bad commit `324f2f8`.
19
+2. Diagnostic: `PageTabViewStyle` suspect.
20
+3. Inițial workaround: `#if targetEnvironment(macCatalyst)` exclude `PageTabViewStyle`.
21
+4. Alte modificări încercate: blocare actualizare nav bar ascuns pe Catalyst, reducere BLE churn, diverse pipeline fixes (wireless caching etc.).
22
+
23
+## Soluție finală aplicată
24
+- În `USB Meter/Views/Meter/MeterView.swift`:
25
+  1. Eliminat `PageTabViewStyle` intern (deși nu era principal, s-a migrat la custom tab).
26
+  2. `navigationBarHidden(landscape)` folosit doar iOS, nu Catalyst.
27
+  3. Înlocuit `Picker(.segmented)` cu tab bar custom `HStack` + `Button` + icon/text, pentru consistență.
28
+  4. Mutați datele `MeterInfoView` în tab `Home` (fără buton `info` separat).
29
+  5. adaptare portrait/landscape cu `segment` stabil.
30
+  6. titlu nav inline să comprime spațiul pe macOS.
31
+
32
+## Commit-uri relevante
33
+- `ef857c8` - custom tabs + blocker solution
34
+- `08a8ff3` - migrat MeterInfo content în Home și eliminat info button
35
+
36
+## Verificare
37
+- Reproducere: deschide app pe macOS Catalyst Apple Silicon, selectează un meter, comută taburile, deschide history modal; verifică fără blocaje.
38
+
39
+## Document location
40
+- `Documentation/Issue-Report-Catalyst-TabView-Blocking.md`