Skip to content

Commit 7c138d5

Browse files
committed
🐛 Add generic type to indicate provider when using pickAssetsWithDelegate method
1 parent 77d86b5 commit 7c138d5

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

example/lib/customs/pickers/directory_file_asset_picker.dart

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,13 @@ class _DirectoryFileAssetPickerState extends State<DirectoryFileAssetPicker>
4949
final FileAssetPickerProvider provider = FileAssetPickerProvider(
5050
selectedAssets: fileList,
5151
);
52-
final Widget picker = ChangeNotifierProvider<FileAssetPickerProvider>.value(
53-
value: provider,
54-
child: AssetPicker<File, Directory>(
55-
builder: FileAssetPickerBuilder(provider: provider),
56-
),
52+
final FileAssetPickerBuilder builder = FileAssetPickerBuilder(
53+
provider: provider,
5754
);
58-
final List<File>? result = await Navigator.of(
55+
final List<File>? result = await AssetPicker.pickAssetsWithDelegate(
5956
context,
60-
rootNavigator: true,
61-
).push<List<File>>(
62-
AssetPickerPageRoute<List<File>>(
63-
builder: picker,
64-
transitionCurve: Curves.easeIn,
65-
transitionDuration: const Duration(milliseconds: 300),
66-
),
57+
delegate: builder,
58+
provider: provider,
6759
);
6860
if (result != null) {
6961
fileList

lib/src/widget/asset_picker.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,18 +130,18 @@ class AssetPicker<A, P> extends StatefulWidget {
130130

131131
/// Call the picker with provided [delegate] and [provider].
132132
/// 通过指定的 [delegate][provider] 调用选择器
133-
static Future<List<A>?> pickAssetsWithDelegate<A, P>(
133+
static Future<List<A>?>
134+
pickAssetsWithDelegate<A, P, D extends AssetPickerProvider<A, P>>(
134135
BuildContext context, {
135136
required AssetPickerBuilderDelegate<A, P> delegate,
136-
required AssetPickerProvider<A, P> provider,
137+
required D provider,
137138
bool useRootNavigator = true,
138139
Curve routeCurve = Curves.easeIn,
139140
Duration routeDuration = const Duration(milliseconds: 300),
140141
}) async {
141142
await permissionCheck();
142143

143-
final Widget picker =
144-
ChangeNotifierProvider<AssetPickerProvider<A, P>>.value(
144+
final Widget picker = ChangeNotifierProvider<D>.value(
145145
value: provider,
146146
child: AssetPicker<A, P>(key: Constants.pickerKey, builder: delegate),
147147
);

0 commit comments

Comments
 (0)