[DEV] Separated selectors configurations
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
//s2 Core Packages Imports
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'src/radio.selector.dart';
|
||||
import 'src/chip.selector.dart';
|
||||
import 'src/configuration.dart';
|
||||
import 'src/Radio/radio.selector.dart';
|
||||
import 'src/Chip/chip.selector.dart';
|
||||
import 'src/Radio/configuration.dart';
|
||||
import 'src/Chip/configuration.dart';
|
||||
//
|
||||
export 'src/radio.selector.dart';
|
||||
export 'src/chip.selector.dart';
|
||||
export 'src/configuration.dart';
|
||||
export 'src/Radio/configuration.dart';
|
||||
export 'src/Chip/configuration.dart';
|
||||
|
||||
class AstromicSelectors {
|
||||
//S1 -- Radio
|
||||
@@ -14,7 +14,7 @@ class AstromicSelectors {
|
||||
T? initialSelectedValue,
|
||||
Function(T selectedItem)? onChanged,
|
||||
//
|
||||
AstromicSelectorConfiguration? configurations,
|
||||
AstromicRadioSelectorConfiguration? configurations,
|
||||
//
|
||||
double? itemSpacing = 4,
|
||||
//
|
||||
@@ -25,7 +25,7 @@ class AstromicSelectors {
|
||||
initialSelectedValue: initialSelectedValue,
|
||||
onChanged: onChanged,
|
||||
//
|
||||
configuration: configurations ?? const AstromicSelectorConfiguration(),
|
||||
configuration: configurations ?? const AstromicRadioSelectorConfiguration(),
|
||||
//
|
||||
itemSpacing: itemSpacing ?? 8.0,
|
||||
//
|
||||
@@ -38,7 +38,7 @@ class AstromicSelectors {
|
||||
List<T>? initialSelectedValues,
|
||||
void Function(List<T> selectedItems)? onChanged,
|
||||
//
|
||||
AstromicSelectorConfiguration? configuration,
|
||||
AstromicChipSelectorConfiguration? configuration,
|
||||
bool isCustom = false,
|
||||
//
|
||||
double? itemSpacing = 4,
|
||||
|
||||
@@ -10,7 +10,7 @@ import 'package:flutter/material.dart';
|
||||
//---------------
|
||||
//s2 SERVICES
|
||||
//s2 MODELS
|
||||
import '../../../Infrastructure/list_extensions.dart';
|
||||
import '../../../../Infrastructure/list_extensions.dart';
|
||||
import 'configuration.dart';
|
||||
|
||||
//s2 MISC
|
||||
@@ -26,7 +26,7 @@ class AstromicChipSelector<T> extends StatefulWidget {
|
||||
final Function(List<T> selectedItems)? onChanged;
|
||||
//s1 -- Configuration
|
||||
final bool isCustom;
|
||||
final AstromicSelectorConfiguration? configuration;
|
||||
final AstromicChipSelectorConfiguration? configuration;
|
||||
//s1 -- Style
|
||||
final double? itemSpacing;
|
||||
final double? runSpacing;
|
||||
@@ -71,7 +71,7 @@ class AstromicChipSelector<T> extends StatefulWidget {
|
||||
final List<T>? initialSelectedValues,
|
||||
final Function(List<T> selectedItems)? onChanged,
|
||||
//s1 -- Configuration
|
||||
final AstromicSelectorConfiguration? configuration,
|
||||
final AstromicChipSelectorConfiguration? configuration,
|
||||
//s1 -- Content
|
||||
required final List<(T item, bool isEnabled)> items,
|
||||
//
|
||||
@@ -109,7 +109,7 @@ class _AstromicChipSelectorState<T> extends State<AstromicChipSelector<T>> {
|
||||
//s1 --Controllers
|
||||
//
|
||||
//s1 --State
|
||||
late AstromicSelectorConfiguration _configuration;
|
||||
late AstromicChipSelectorConfiguration _configuration;
|
||||
late List<T> selectedItems;
|
||||
//s1 --State
|
||||
//
|
||||
@@ -127,7 +127,7 @@ class _AstromicChipSelectorState<T> extends State<AstromicChipSelector<T>> {
|
||||
//s1 --Controllers & Listeners
|
||||
//
|
||||
//s1 --State
|
||||
_configuration = widget.configuration ?? const AstromicSelectorConfiguration();
|
||||
_configuration = widget.configuration ?? const AstromicChipSelectorConfiguration();
|
||||
selectedItems = widget.initialSelectedValues ?? [];
|
||||
//s1 --State
|
||||
//
|
||||
@@ -1,10 +1,8 @@
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
class AstromicSelectorConfiguration {
|
||||
//s1 Shared
|
||||
class AstromicChipSelectorConfiguration {
|
||||
final Axis axis;
|
||||
final bool isNullable;
|
||||
//s1 Chip Specific
|
||||
final bool isWrap;
|
||||
final WrapAlignment wrapMainAllignment;
|
||||
final WrapCrossAlignment wrapCrossAllignment;
|
||||
@@ -13,9 +11,7 @@ class AstromicSelectorConfiguration {
|
||||
final int maxSelectedItems;
|
||||
final int crossAxisCount;
|
||||
final double? fixedRowHeight;
|
||||
//s1 Radio Specific
|
||||
final bool withExpandedSpace;
|
||||
const AstromicSelectorConfiguration({
|
||||
const AstromicChipSelectorConfiguration({
|
||||
this.axis = Axis.horizontal,
|
||||
this.isNullable = true,
|
||||
//
|
||||
@@ -27,11 +23,9 @@ class AstromicSelectorConfiguration {
|
||||
this.maxSelectedItems = 10000,
|
||||
this.crossAxisCount = 3,
|
||||
this.fixedRowHeight,
|
||||
//
|
||||
this.withExpandedSpace = false,
|
||||
});
|
||||
|
||||
AstromicSelectorConfiguration copyWith({
|
||||
AstromicChipSelectorConfiguration copyWith({
|
||||
Axis? axis,
|
||||
bool? isNullable,
|
||||
bool? isWrap,
|
||||
@@ -44,7 +38,7 @@ class AstromicSelectorConfiguration {
|
||||
bool? withExpandedSpace,
|
||||
double? fixedRowHeight,
|
||||
}) {
|
||||
return AstromicSelectorConfiguration(
|
||||
return AstromicChipSelectorConfiguration(
|
||||
axis: axis ?? this.axis,
|
||||
isNullable: isNullable ?? this.isNullable,
|
||||
isWrap: isWrap ?? this.isWrap,
|
||||
@@ -54,7 +48,6 @@ class AstromicSelectorConfiguration {
|
||||
withClearButton: withClearButton ?? this.withClearButton,
|
||||
maxSelectedItems: maxSelectedItems ?? this.maxSelectedItems,
|
||||
crossAxisCount: crossAxisCount ?? this.crossAxisCount,
|
||||
withExpandedSpace: withExpandedSpace ?? this.withExpandedSpace,
|
||||
fixedRowHeight: fixedRowHeight ?? this.fixedRowHeight,
|
||||
);
|
||||
}
|
||||
32
lib/src/Selectors/src/Radio/configuration.dart
Normal file
32
lib/src/Selectors/src/Radio/configuration.dart
Normal file
@@ -0,0 +1,32 @@
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
class AstromicRadioSelectorConfiguration {
|
||||
final Axis axis;
|
||||
final bool isNullable;
|
||||
final bool withExpandedSpace;
|
||||
const AstromicRadioSelectorConfiguration({
|
||||
this.axis = Axis.horizontal,
|
||||
this.isNullable = true,
|
||||
this.withExpandedSpace = false,
|
||||
});
|
||||
|
||||
AstromicRadioSelectorConfiguration copyWith({
|
||||
Axis? axis,
|
||||
bool? isNullable,
|
||||
bool? isWrap,
|
||||
WrapAlignment? wrapMainAllignment,
|
||||
WrapCrossAlignment? wrapCrossAllignment,
|
||||
bool? isConsequent,
|
||||
bool? withClearButton,
|
||||
int? maxSelectedItems,
|
||||
int? crossAxisCount,
|
||||
bool? withExpandedSpace,
|
||||
double? fixedRowHeight,
|
||||
}) {
|
||||
return AstromicRadioSelectorConfiguration(
|
||||
axis: axis ?? this.axis,
|
||||
isNullable: isNullable ?? this.isNullable,
|
||||
withExpandedSpace: withExpandedSpace ?? this.withExpandedSpace,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import 'package:flutter/widgets.dart';
|
||||
//---------------
|
||||
//s2 SERVICES
|
||||
//s2 MODELS
|
||||
import '../../Spacing/spacing.astromic.dart';
|
||||
import '../../../Spacing/spacing.astromic.dart';
|
||||
import 'configuration.dart';
|
||||
//s2 MISC
|
||||
//!SECTION - Imports
|
||||
@@ -26,7 +26,7 @@ class AstromicRadioSelector<T> extends StatefulWidget {
|
||||
final T? initialSelectedValue;
|
||||
final Function(T selectedItem)? onChanged;
|
||||
//s1 -- Configuration
|
||||
final AstromicSelectorConfiguration configuration;
|
||||
final AstromicRadioSelectorConfiguration configuration;
|
||||
//s1 -- Style
|
||||
final double itemSpacing;
|
||||
//s1 -- Content
|
||||
Reference in New Issue
Block a user