|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to FletX. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## [0.1.5] — 2026-06-09 |
| 8 | + |
| 9 | +### Flet 0.85+ Compatibility |
| 10 | +- `flet>=0.85.0` requirement — full `ft.Router` integration with `manage_views=True` and native platform transitions. |
| 11 | + |
| 12 | +### ft.Router Backend (`router_backend="flet"`) |
| 13 | +- New `FletRouterBackend` — delegates rendering to `ft.Router` while `FletXRouter` keeps all logic (guards, middleware, history, resolvers). |
| 14 | +- `FletXApp(router_backend="flet")` selects the backend; `"fletx"` (default) keeps existing behavior. |
| 15 | +- `FletXRouter` API is **identical** in both modes — no code changes needed. |
| 16 | + |
| 17 | +### Nested Routes with Outlet |
| 18 | +```python |
| 19 | +router_config.add_route("/settings", SettingsShell, outlet=True) |
| 20 | +router_config.add_nested_routes("/settings", [ |
| 21 | + {"path": "general", "component": SettingsGeneral}, |
| 22 | + {"path": "profile", "component": SettingsProfile}, |
| 23 | +]) |
| 24 | + |
| 25 | +class SettingsShell(FletXPage): |
| 26 | + def build(self): |
| 27 | + return ft.Row([ |
| 28 | + ft.NavigationRail(...), # persistent shell |
| 29 | + self._outlet_content, # active child |
| 30 | + ]) |
| 31 | +``` |
| 32 | +- `RouteDefinition.outlet` flag marks layout routes. |
| 33 | +- `FletXPage._outlet_content` injected with rendered child BEFORE `build()`. |
| 34 | +- Auto-generated index child for the parent URL default view. |
| 35 | +- Deep nesting and `ModuleRouter` outlet support. |
| 36 | + |
| 37 | +### Lifecycle-Aware Dialogs |
| 38 | +- `FletXPage.show_dialog()`, `close_dialog()` — track state, auto-close on unmount. |
| 39 | +- `alert(title, msg)`, `confirm(title, msg, on_confirm, on_cancel)` — one-liner helpers. |
| 40 | +- `show_snack_bar(content)`, `hide_loader()` — convenience wrappers. |
| 41 | + |
| 42 | +### Sync Navigation |
| 43 | +- `FletXRouter.navigate_sync(route)` — safe from Flet event handlers (`on_click`, `on_change`). |
| 44 | + |
| 45 | +### Flet CLI Passthrough |
| 46 | +- `fletx build`, `debug`, `pack`, `publish`, `serve`, `emulators`, `devices`, `doctor` — full `--help` support. |
| 47 | + |
| 48 | +### Fixed |
| 49 | +- `ModuleRouter.__init__` crash when `sub_routers` not defined. |
| 50 | +- `CommandParser` error on commands with only optional args (e.g. `doctor`). |
| 51 | +- `add_nested_routes` path duplication in kwargs. |
| 52 | +- `ModuleRouter._config` class var → instance var (stopped test pollution). |
| 53 | +- History management: initial `/` no longer appended to stack. |
| 54 | +- Test `sys.modules` pollution causing cascading ImportErrors (saved/restored in 3 test files). |
| 55 | +- `build_navigation_widgets()` resilience (TypeError for Flet 0.85 `page.views` proxy). |
| 56 | +- `page.push_route()` now properly awaited (async in Flet 0.85.3). |
| 57 | +- `FletXRouter._instance` properly set in `router_backend="flet"` code path. |
| 58 | + |
| 59 | +### Docs |
| 60 | +- New `examples/outlet_demo/` — working nested route app. |
| 61 | +- Comprehensive `api-reference.md`. |
| 62 | +- Updated `routing.md`, `pages.md`, `architecture.md`, `fletx-cli.md`, `README.md`. |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +## [0.1.4] — 2025-12 |
| 67 | + |
| 68 | +- Initial Flet >=0.85.0 requirement (preparation). |
| 69 | +- Dialog API on FletXPage. |
| 70 | +- `ft.Router` experimental support. |
| 71 | +- flet CLI passthrough commands. |
| 72 | +- Cleaner comment style. |
| 73 | + |
| 74 | +--- |
| 75 | + |
| 76 | +## [0.1.3] — 2025-10 |
| 77 | + |
| 78 | +- Flet 0.27-0.28 compatibility. |
| 79 | +- Initial Obx widget support. |
| 80 | + |
| 81 | +--- |
| 82 | + |
| 83 | +## [0.1.2] — 2025-08 |
| 84 | + |
| 85 | +- Flet 0.26-0.27 compatibility. |
| 86 | +- Controller lifecycle improvements. |
| 87 | + |
| 88 | +--- |
| 89 | + |
| 90 | +## [0.1.1] — 2025-07 |
| 91 | + |
| 92 | +- Flet 0.25-0.26 compatibility. |
| 93 | +- Reactive state primitives (RxInt, RxList, Computed). |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## [0.1.0] — 2025-06 |
| 98 | + |
| 99 | +- Initial release. |
| 100 | +- `FletXApp`, `FletXPage`, `FletXController`, `RouterConfig`, `FletXRouter`. |
| 101 | +- Decorators: `@obx`, `@register_router`, `@reactive_memo`, `@reactive_debounce`. |
| 102 | +- CLI: `fletx new`, `generate`, `run`, `test`, `check`. |
| 103 | +- Dependency injection via `FletX.find()` / `FletX.put()`. |
| 104 | +- Route guards and middleware. |
0 commit comments