@@ -5,6 +5,7 @@ import 'package:querya_desktop/core/motion/querya_motion.dart';
55import 'package:querya_desktop/core/motion/querya_motion_context.dart' ;
66import 'package:querya_desktop/features/workspace/grid_groupings_engine.dart' ;
77import 'package:querya_desktop/features/workspace/result_grid_view.dart' ;
8+ import 'package:querya_desktop/shared/widgets/querya_dropdown.dart' ;
89import 'package:shadcn_flutter/shadcn_flutter.dart' ;
910
1011/// Groupings / Pivot view tab for tabular data with hierarchical grouping and custom aggregations.
@@ -139,21 +140,17 @@ class _DataGridGroupingsViewState
139140 const Gap (6 ),
140141 const Text ('Group:' ).small ().semiBold (),
141142 const Gap (6 ),
142- material.DropdownButton <int >(
143+ QueryaDropdown <int >(
144+ compact: true ,
143145 value: _selectedColIndices.isNotEmpty &&
144146 _selectedColIndices.first < widget.columns.length
145147 ? _selectedColIndices.first
146148 : 0 ,
147- isDense: true ,
148- underline: const material.SizedBox .shrink (),
149- style: TextStyle (fontSize: 12 , color: cs.foreground),
150- items: List .generate (widget.columns.length, (i) {
151- return material.DropdownMenuItem <int >(
152- value: i,
153- child: Text (widget.columns[i]),
154- );
155- }),
156- onChanged: (idx) {
149+ items: [
150+ for (var i = 0 ; i < widget.columns.length; i++ )
151+ QueryaDropdownItem (value: i, label: widget.columns[i]),
152+ ],
153+ onSelected: (idx) {
157154 if (idx != null ) {
158155 setState (() {
159156 _selectedColIndices = [idx];
@@ -177,18 +174,14 @@ class _DataGridGroupingsViewState
177174 // Aggregation Selector
178175 const Text ('Agg:' ).small ().semiBold (),
179176 const Gap (6 ),
180- material.DropdownButton <GroupingAggType >(
177+ QueryaDropdown <GroupingAggType >(
178+ compact: true ,
181179 value: _aggType,
182- isDense: true ,
183- underline: const material.SizedBox .shrink (),
184- style: TextStyle (fontSize: 12 , color: cs.foreground),
185- items: GroupingAggType .values.map ((t) {
186- return material.DropdownMenuItem <GroupingAggType >(
187- value: t,
188- child: Text (t.label),
189- );
190- }).toList (),
191- onChanged: (val) {
180+ items: [
181+ for (final t in GroupingAggType .values)
182+ QueryaDropdownItem (value: t, label: t.label),
183+ ],
184+ onSelected: (val) {
192185 if (val != null ) {
193186 setState (() {
194187 _aggType = val;
@@ -199,21 +192,17 @@ class _DataGridGroupingsViewState
199192 ),
200193 if (_aggType != GroupingAggType .count) ...[
201194 const Gap (4 ),
202- material.DropdownButton <int >(
195+ QueryaDropdown <int >(
196+ compact: true ,
203197 value: _aggTargetColIndex != null &&
204198 _aggTargetColIndex! < widget.columns.length
205- ? _aggTargetColIndex
199+ ? _aggTargetColIndex!
206200 : 0 ,
207- isDense: true ,
208- underline: const material.SizedBox .shrink (),
209- style: TextStyle (fontSize: 12 , color: cs.foreground),
210- items: List .generate (widget.columns.length, (i) {
211- return material.DropdownMenuItem <int >(
212- value: i,
213- child: Text (widget.columns[i]),
214- );
215- }),
216- onChanged: (idx) {
201+ items: [
202+ for (var i = 0 ; i < widget.columns.length; i++ )
203+ QueryaDropdownItem (value: i, label: widget.columns[i]),
204+ ],
205+ onSelected: (idx) {
217206 if (idx != null ) {
218207 setState (() {
219208 _aggTargetColIndex = idx;
@@ -237,18 +226,14 @@ class _DataGridGroupingsViewState
237226 // Sort Selector
238227 const Text ('Sort:' ).small ().semiBold (),
239228 const Gap (6 ),
240- material.DropdownButton <GroupSortBy >(
229+ QueryaDropdown <GroupSortBy >(
230+ compact: true ,
241231 value: _sortBy,
242- isDense: true ,
243- underline: const material.SizedBox .shrink (),
244- style: TextStyle (fontSize: 12 , color: cs.foreground),
245- items: GroupSortBy .values.map ((s) {
246- return material.DropdownMenuItem <GroupSortBy >(
247- value: s,
248- child: Text (s.label),
249- );
250- }).toList (),
251- onChanged: (val) {
232+ items: [
233+ for (final t in GroupSortBy .values)
234+ QueryaDropdownItem (value: t, label: t.label),
235+ ],
236+ onSelected: (val) {
252237 if (val != null ) {
253238 setState (() {
254239 _sortBy = val;
0 commit comments