chore: bump dart sdk to 3.8 (#20355)
* chore: bump dart sdk to 3.8 * chore: make build * make pigeon * chore: format files --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
@@ -15,26 +15,17 @@ class MultiSelectState {
|
||||
final Set<BaseAsset> lockedSelectionAssets;
|
||||
final bool forceEnable;
|
||||
|
||||
const MultiSelectState({
|
||||
required this.selectedAssets,
|
||||
required this.lockedSelectionAssets,
|
||||
this.forceEnable = false,
|
||||
});
|
||||
const MultiSelectState({required this.selectedAssets, required this.lockedSelectionAssets, this.forceEnable = false});
|
||||
|
||||
bool get isEnabled => selectedAssets.isNotEmpty;
|
||||
|
||||
/// Cloud only
|
||||
bool get hasRemote => selectedAssets.any(
|
||||
(asset) => asset.storage == AssetState.remote || asset.storage == AssetState.merged,
|
||||
);
|
||||
bool get hasRemote =>
|
||||
selectedAssets.any((asset) => asset.storage == AssetState.remote || asset.storage == AssetState.merged);
|
||||
|
||||
bool get hasLocal => selectedAssets.any(
|
||||
(asset) => asset.storage == AssetState.local,
|
||||
);
|
||||
bool get hasLocal => selectedAssets.any((asset) => asset.storage == AssetState.local);
|
||||
|
||||
bool get hasMerged => selectedAssets.any(
|
||||
(asset) => asset.storage == AssetState.merged,
|
||||
);
|
||||
bool get hasMerged => selectedAssets.any((asset) => asset.storage == AssetState.merged);
|
||||
|
||||
MultiSelectState copyWith({
|
||||
Set<BaseAsset>? selectedAssets,
|
||||
@@ -74,12 +65,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
|
||||
|
||||
@override
|
||||
MultiSelectState build() {
|
||||
return _defaultState ??
|
||||
const MultiSelectState(
|
||||
selectedAssets: {},
|
||||
lockedSelectionAssets: {},
|
||||
forceEnable: false,
|
||||
);
|
||||
return _defaultState ?? const MultiSelectState(selectedAssets: {}, lockedSelectionAssets: {}, forceEnable: false);
|
||||
}
|
||||
|
||||
void selectAsset(BaseAsset asset) {
|
||||
@@ -87,9 +73,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
|
||||
return;
|
||||
}
|
||||
|
||||
state = state.copyWith(
|
||||
selectedAssets: {...state.selectedAssets, asset},
|
||||
);
|
||||
state = state.copyWith(selectedAssets: {...state.selectedAssets, asset});
|
||||
}
|
||||
|
||||
void deselectAsset(BaseAsset asset) {
|
||||
@@ -97,9 +81,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
|
||||
return;
|
||||
}
|
||||
|
||||
state = state.copyWith(
|
||||
selectedAssets: state.selectedAssets.where((a) => a != asset).toSet(),
|
||||
);
|
||||
state = state.copyWith(selectedAssets: state.selectedAssets.where((a) => a != asset).toSet());
|
||||
}
|
||||
|
||||
void toggleAssetSelection(BaseAsset asset) {
|
||||
@@ -111,11 +93,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
|
||||
}
|
||||
|
||||
void reset() {
|
||||
state = const MultiSelectState(
|
||||
selectedAssets: {},
|
||||
lockedSelectionAssets: {},
|
||||
forceEnable: false,
|
||||
);
|
||||
state = const MultiSelectState(selectedAssets: {}, lockedSelectionAssets: {}, forceEnable: false);
|
||||
}
|
||||
|
||||
/// Bucket bulk operations
|
||||
@@ -125,9 +103,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
|
||||
|
||||
selectedAssets.addAll(assets);
|
||||
|
||||
state = state.copyWith(
|
||||
selectedAssets: selectedAssets,
|
||||
);
|
||||
state = state.copyWith(selectedAssets: selectedAssets);
|
||||
}
|
||||
|
||||
void deselectBucket(int offset, int bucketCount) async {
|
||||
@@ -164,20 +140,15 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
|
||||
}
|
||||
|
||||
void setLockedSelectionAssets(Set<BaseAsset> assets) {
|
||||
state = state.copyWith(
|
||||
lockedSelectionAssets: assets,
|
||||
);
|
||||
state = state.copyWith(lockedSelectionAssets: assets);
|
||||
}
|
||||
}
|
||||
|
||||
final bucketSelectionProvider = Provider.family<bool, List<BaseAsset>>(
|
||||
(ref, bucketAssets) {
|
||||
final selectedAssets = ref.watch(multiSelectProvider.select((s) => s.selectedAssets));
|
||||
final bucketSelectionProvider = Provider.family<bool, List<BaseAsset>>((ref, bucketAssets) {
|
||||
final selectedAssets = ref.watch(multiSelectProvider.select((s) => s.selectedAssets));
|
||||
|
||||
if (bucketAssets.isEmpty) return false;
|
||||
if (bucketAssets.isEmpty) return false;
|
||||
|
||||
// Check if all assets in the bucket are selected
|
||||
return bucketAssets.every((asset) => selectedAssets.contains(asset));
|
||||
},
|
||||
dependencies: [multiSelectProvider, timelineServiceProvider],
|
||||
);
|
||||
// Check if all assets in the bucket are selected
|
||||
return bucketAssets.every((asset) => selectedAssets.contains(asset));
|
||||
}, dependencies: [multiSelectProvider, timelineServiceProvider]);
|
||||
|
||||
Reference in New Issue
Block a user