@@ -10,13 +10,14 @@ import { RandomizerForm } from '../../../../common/models/randomizerForm';
10
10
providedIn : 'root'
11
11
} )
12
12
export class PresetsService {
13
- private cachedImportedPreset : string ;
14
13
private defaultPresets$ = new BehaviorSubject < PresetObject > ( undefined ) ;
15
14
private userPresets$ = new BehaviorSubject < PresetObject > ( undefined ) ;
16
- private importedPreset$ = new BehaviorSubject < string > ( undefined ) ;
15
+ private previousAction$ = new BehaviorSubject < string > ( undefined ) ;
16
+ private lastUpdatedPreset$ = new BehaviorSubject < string > ( undefined ) ;
17
17
_defaultPresets = this . defaultPresets$ . asObservable ( ) ;
18
18
_userPresets = this . userPresets$ . asObservable ( ) ;
19
- _importedPreset = this . importedPreset$ . asObservable ( ) ;
19
+ _previousAction = this . previousAction$ . asObservable ( ) ;
20
+ _lastUpdatedPreset = this . lastUpdatedPreset$ . asObservable ( ) ;
20
21
21
22
constructor ( private ngZone : NgZone , private electronService : ElectronService , private toastrService : ToastrService ) {
22
23
this . getAllPresets ( ) ;
@@ -27,33 +28,28 @@ export class PresetsService {
27
28
} ) ;
28
29
} ) ;
29
30
30
- this . electronService . ipcRenderer . on ( 'getUserPresetsResponse' , ( event , response : PresetsResponse ) => {
31
+ this . electronService . ipcRenderer . on ( 'getUserPresetsResponse' , ( event , response : PresetsResponse , previousAction : string ) => {
31
32
this . ngZone . run ( ( ) => {
32
- // Emit imported preset key if one is provided
33
- if ( this . cachedImportedPreset ) {
34
- this . importedPreset$ . next ( this . cachedImportedPreset ) ;
35
- this . cachedImportedPreset = null ;
36
- }
37
-
38
33
this . handlePresetsResponse ( response , this . userPresets$ ) ;
34
+ this . previousAction$ . next ( previousAction ) ;
39
35
} ) ;
40
36
} ) ;
41
37
42
38
this . electronService . ipcRenderer . on ( 'updateUserPresetResponse' , ( event , response ) => {
43
39
this . ngZone . run ( ( ) => {
44
- this . getUserPresets ( ) ;
40
+ this . getUserPresets ( 'update' ) ;
45
41
} ) ;
46
42
} ) ;
47
43
48
44
this . electronService . ipcRenderer . on ( 'removeUserPresetResponse' , ( event , response ) => {
49
45
this . ngZone . run ( ( ) => {
50
- this . getUserPresets ( ) ;
46
+ this . getUserPresets ( 'remove' ) ;
51
47
} ) ;
52
48
} ) ;
53
49
54
50
this . electronService . ipcRenderer . on ( 'importPresetResponse' , ( event , key : string , preset : RandomizerForm ) => {
55
51
this . ngZone . run ( ( ) => {
56
- this . cachedImportedPreset = key ;
52
+ this . lastUpdatedPreset$ . next ( key ) ;
57
53
this . electronService . ipcRenderer . send ( 'updateUserPreset' , preset , key ) ;
58
54
} ) ;
59
55
} ) ;
@@ -79,8 +75,8 @@ export class PresetsService {
79
75
this . electronService . ipcRenderer . send ( 'getDefaultPresets' ) ;
80
76
}
81
77
82
- getUserPresets ( ) {
83
- this . electronService . ipcRenderer . send ( 'getUserPresets' ) ;
78
+ getUserPresets ( previousAction ?: string ) {
79
+ this . electronService . ipcRenderer . send ( 'getUserPresets' , previousAction ) ;
84
80
}
85
81
86
82
getAllPresets ( ) {
@@ -89,6 +85,7 @@ export class PresetsService {
89
85
}
90
86
91
87
addOrUpdatePreset ( name : string , preset : RandomizerForm ) {
88
+ this . lastUpdatedPreset$ . next ( name ) ;
92
89
this . electronService . ipcRenderer . send ( 'updateUserPreset' , preset , name ) ;
93
90
}
94
91
@@ -122,10 +119,6 @@ export class PresetsService {
122
119
} ) ;
123
120
}
124
121
125
- clearImportPresetSubject ( ) : void {
126
- this . importedPreset$ . next ( null ) ;
127
- }
128
-
129
122
private handlePresetsResponse ( response : PresetsResponse , subject : Subject < PresetObject > ) : void {
130
123
// If presets and keys are defined, return the original order the presets were in, otherwise don't do anything
131
124
if ( ! response . presets ) {
0 commit comments