@@ -32,29 +32,31 @@ class InitSoundFileAction extends ReduxAction<AppState> {
3232 }
3333}
3434
35- class SoundFileSourceAddAction extends ReduxAction <AppState > {
35+ class SoundFileLinkAction extends ReduxAction <AppState > {
3636
37- final SoundFileSource model ;
37+ final SoundFileSource source ;
3838
39- SoundFileSourceAddAction (this .model );
39+ SoundFileLinkAction (this .source );
4040
4141 @override
4242 Future <AppState ?> reduce () async {
4343 if (state.selectedSoundEvent == null ) return null ;
4444
4545 final SoundEventModel soundModel = state.selectedSoundEvent! ;
46+ final List <SoundFileSource > list = List .of (soundModel.files.items, growable: true );
47+ final SoundClientApi soundApi = ApiService ().soundApi as SoundClientApi ;
48+ final SoundFileSource linkedFile = await soundApi.linkFile (soundModel.id! , source);
4649
47- // Create a NEW list that is growable and add the new item
48- final List <SoundFileSource > newItemsList = List .of (soundModel.files.items, growable: true );
49- newItemsList.add (model); // 'model' is your new SoundFileSource
50+ list.add (linkedFile);
5051
5152 // Create a new PaginatedResult with the new list and updated counts
5253 final PaginatedResult <SoundFileSource > updatedSources = soundModel.files.copyWith (
53- items: newItemsList ,
54+ items: list ,
5455 totalItems: soundModel.files.totalItems + 1 , // Adjust counts as necessary
5556 // Potentially update totalPages if this new item pushes it to a new page
5657 );
5758 return state.copyWith (selectedSoundEvent: soundModel.copyWith (files: updatedSources));
59+
5860 }
5961}
6062
0 commit comments