@@ -171,27 +171,30 @@ class MediaCellBloc extends Bloc<MediaCellEvent, MediaCellState> {
171171 rowId: cellController.rowId,
172172 cover: cover,
173173 ),
174- onProgressUpdate: (id ) {
175- final FileProgress ? progress = _progressNotifiers[id ]? .value;
174+ onProgressUpdate: (url ) {
175+ final FileProgress ? progress = _progressNotifiers[url ]? .value;
176176 if (progress != null ) {
177177 MediaUploadProgress ? mediaUploadProgress =
178- state.uploadProgress.firstWhereOrNull ((u) => u.fileId == id );
178+ state.uploadProgress.firstWhereOrNull ((u) => u.url == url );
179179
180180 if (progress.error != null ) {
181181 // Remove file from cell
182- add (MediaCellEvent .removeFile (fileId: id));
183- _removeNotifier (id);
182+ final files = state.files.where ((f) => f.url == url);
183+ for (final file in files) {
184+ add (MediaCellEvent .removeFile (fileId: file.id));
185+ }
186+ _removeNotifier (url);
184187
185188 // Remove progress
186189 final uploadProgress = [...state.uploadProgress];
187- uploadProgress.removeWhere ((u) => u.fileId == id );
190+ uploadProgress.removeWhere ((u) => u.url == url );
188191 emit (state.copyWith (uploadProgress: uploadProgress));
189192 return ;
190193 }
191194
192195 if (mediaUploadProgress == null ) {
193196 mediaUploadProgress = MediaUploadProgress (
194- fileId : id ,
197+ url : url ,
195198 uploadState: progress.progress >= 1
196199 ? MediaUploadState .completed
197200 : MediaUploadState .uploading,
@@ -208,7 +211,7 @@ class MediaCellBloc extends Bloc<MediaCellEvent, MediaCellState> {
208211
209212 final uploadProgress = [...state.uploadProgress];
210213 uploadProgress
211- ..removeWhere ((u) => u.fileId == id )
214+ ..removeWhere ((u) => u.url == url )
212215 ..add (mediaUploadProgress);
213216
214217 emit (state.copyWith (uploadProgress: uploadProgress));
@@ -250,13 +253,13 @@ class MediaCellBloc extends Bloc<MediaCellEvent, MediaCellState> {
250253
251254 final notifier = _fileStorageService.onFileProgress (fileUrl: file.url);
252255 _progressNotifiers[file.id] = notifier;
253- notifier.addListener (() => _onProgressChanged (file.id ));
256+ notifier.addListener (() => _onProgressChanged (file.url ));
254257
255- add (MediaCellEvent .onProgressUpdate (file.id ));
258+ add (MediaCellEvent .onProgressUpdate (file.url ));
256259 }
257260
258- void _onProgressChanged (String id ) =>
259- add (MediaCellEvent .onProgressUpdate (id ));
261+ void _onProgressChanged (String url ) =>
262+ add (MediaCellEvent .onProgressUpdate (url ));
260263
261264 /// Removes and disposes of a progress notifier if found
262265 ///
@@ -316,8 +319,7 @@ class MediaCellEvent with _$MediaCellEvent {
316319
317320 const factory MediaCellEvent .setCover (RowCoverPB cover) = _SetCover ;
318321
319- const factory MediaCellEvent .onProgressUpdate (String fileId) =
320- _OnProgressUpdate ;
322+ const factory MediaCellEvent .onProgressUpdate (String url) = _OnProgressUpdate ;
321323}
322324
323325@freezed
@@ -348,12 +350,12 @@ enum MediaUploadState { uploading, completed }
348350
349351class MediaUploadProgress {
350352 const MediaUploadProgress ({
351- required this .fileId ,
353+ required this .url ,
352354 required this .uploadState,
353355 required this .fileProgress,
354356 });
355357
356- final String fileId ;
358+ final String url ;
357359 final MediaUploadState uploadState;
358360 final FileProgress fileProgress;
359361
@@ -362,7 +364,7 @@ class MediaUploadProgress {
362364 FileProgress ? fileProgress,
363365 }) {
364366 return MediaUploadProgress (
365- fileId : fileId ,
367+ url : url ,
366368 uploadState: uploadState ?? this .uploadState,
367369 fileProgress: fileProgress ?? this .fileProgress,
368370 );
0 commit comments