Skip to content

Commit d30097b

Browse files
committed
fix: file url for notifier
1 parent f1f57d2 commit d30097b

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

frontend/appflowy_flutter/lib/plugins/database/application/cell/bloc/media_cell_bloc.dart

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

349351
class 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
);

frontend/appflowy_flutter/lib/plugins/database/widgets/cell/desktop_grid/desktop_grid_media_cell.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ class GridMediaCellSkin extends IEditableMediaCellSkin {
4545
final wrapContent = context.read<MediaCellBloc>().wrapContent;
4646
final List<Widget> children = state.files.map<Widget>(
4747
(file) {
48-
final fileUploadProgress = state.uploadProgress
49-
.firstWhereOrNull((u) => u.fileId == file.id);
48+
final fileUploadProgress =
49+
state.uploadProgress.firstWhereOrNull((u) => u.url == file.url);
5050

5151
return GestureDetector(
5252
onTap: () => _openOrExpandFile(context, file, state.files),

0 commit comments

Comments
 (0)