flutter_fa_davi_table 1.0.3
flutter_fa_davi_table: ^1.0.3 copied to clipboard
A high-performance data table wrapper built on top of Davi. Optimized for lazy loading, infinite scrolling, and smart O(1) multi-platform grid rendering.
Changelog #
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning (SemVer).
1.0.3 #
- Update Dependencies.
1.0.2 #
- Update Dependencies.
1.0.1 #
- Update Dependencies.
1.0.0 - 2026-06-12 #
⚠️ BREAKING CHANGES #
Version 1.0.0 introduces a fundamental architectural redesign across the core library layers, completely moving away from volatile row index-based configurations to a robust, modern Identity-Based State Engine.
-
Removal of Index-Based Style Configurations:
- The legacy internal tracking parameters inside
RowThemeDatathat checked physical row numbers (int row) to resolve conditional grid backgrounds are deprecated and removed. FaDaviTableThemeDatano longer accepts functional block parameters like identity extraction properties. It focuses strictly and purely on descriptive presentation layout tokens.
- The legacy internal tracking parameters inside
-
Identity-Driven API Contracts:
FaDaviTablenow enforces direct identity binding across the entire widget lifecycle. To properly resolve row highlights and prevent alignment glitches, you must explicitly supply an identity extractor callback (getItemId) alongside the reactive state sets (currentItemId,selectedItemIds,checkedItemIds).
✨ Added #
- Identity-Based Row State Matrix: Integrated native, dedicated support for tracking
currentItemId(ID?),selectedItemIds(Set<ID>), andcheckedItemIds(Set<ID>). This completely prevents row background de-synchronization or state mismatch issues when rows shift layout positions during business block sorting or filtering phases. - Unified State-Color Theme Matrix: Introduced
rowColorBuilderinsideFaDaviTableThemeDatautilizing the unifiedFaRowStateColorBuilder<ITEM>signature. This centralizes row style evaluations (Hovered, Current, Selected, Checked) into a single, cohesive presentation mapping model. - Reactive Lifecycle Propagation: Implemented a comprehensive state intersection validation pass inside
didUpdateWidget. The grid wrapper now dynamically monitors upstream identity key set mutations and automatically coordinates internal element layout redraws via a controlledsetState()call. - Full Dartdoc Coverage: Documented all public signatures, parameters, constructors, and custom enum flags using strict
///Dartdoc blocks to optimize API transparency and maximize the pub.dev documentation score.
Performance Optimizations #
- Shallow Array Pointer Verification: Implemented an ultra-fast structural memory address scanning pass (
_isSameList) across collection boundaries to completely suppress redundant widget tree re-renders when data lists remain identical. - Optimized View-Side Sorting Transformations: Refactored the
_updateDaviModelsorting utility routine to construct an efficient $O(1)$ index lookup table duringSortRuleSide.viewSideevaluations, substituting heavy linear-scan lookup complexities.
Upgrade Migration Guide #
Migrating Table Initialization Layers
Ensure that you update your existing table view workspaces to wire up your identity key sets from your controllers or reactive business components directly into the widget tree parameters:
FaDaviTable<int, SystemLogInfo>(
items: block.items,
getItemId: (item) => item.id, // Single tracking identity mapper definition
currentItemId: block.currentItem?.id,
selectedItemIds: block.selectedItemIds,
checkedItemIds: block.checkedItemIds, // New multi-checked target states collection
themeData: myGlobalThemeDataConfiguration, // Centralized style configuration mapping state flags
sortRuleSide: SortRuleSide.blockSide,
modelSettings: myTableSettings,
)
0.9.3 #
- Initial release.