@@ -23,7 +23,7 @@ export function EntityHistoryView({
23
23
const dataSource = useDataSource ( ) ;
24
24
const pathAndId = entity ? entity ?. path + "/" + entity ?. id : undefined ;
25
25
26
- const [ revertVersion , setRevertVersion ] = useState < Entity | undefined > ( undefined ) ;
26
+ const [ revertVersionDialog , setRevertVersionDialog ] = useState < Entity | undefined > ( undefined ) ;
27
27
const [ revisions , setRevisions ] = useState < Entity [ ] > ( [ ] ) ;
28
28
const [ isLoading , setIsLoading ] = useState ( false ) ;
29
29
const [ hasMore , setHasMore ] = useState ( true ) ;
@@ -116,6 +116,9 @@ export function EntityHistoryView({
116
116
}
117
117
118
118
function doRevert ( revertVersion : Entity ) {
119
+ if ( ! entity ) {
120
+ throw new Error ( "No entity to revert" ) ;
121
+ }
119
122
const revertValues = {
120
123
...revertVersion . values ,
121
124
__metadata : {
@@ -125,29 +128,38 @@ export function EntityHistoryView({
125
128
updated_by : authController . user ?. uid ?? null ,
126
129
}
127
130
} ;
128
- return dataSource . saveEntity ( {
131
+ const saveReverted = dataSource . saveEntity ( {
132
+ path : entity . path ,
133
+ entityId : entity . id ,
134
+ values : revertValues ,
135
+ collection,
136
+ status : "existing"
137
+ } ) ;
138
+ const saveRevertedHistory = dataSource . saveEntity ( {
129
139
path : revertVersion . path ,
130
140
entityId : revertVersion . id ,
131
141
values : revertValues ,
132
142
collection,
133
143
status : "existing"
134
- } ) . then ( ( ) => {
135
- formContext . formex . resetForm ( {
136
- values : revertVersion . values
137
- } ) ;
138
- setRevertVersion ( undefined ) ;
139
- snackbarController . open ( {
140
- message : "Reverted version" ,
141
- type : "info"
142
- } ) ;
143
- }
144
- ) . catch ( ( error ) => {
145
- console . error ( "Error reverting entity:" , error ) ;
146
- snackbarController . open ( {
147
- message : "Error reverting entity" ,
148
- type : "error"
149
- } ) ;
150
144
} ) ;
145
+ return Promise . all ( [ saveReverted , saveRevertedHistory ] )
146
+ . then ( ( ) => {
147
+ formContext . formex . resetForm ( {
148
+ values : revertVersion . values
149
+ } ) ;
150
+ setRevertVersionDialog ( undefined ) ;
151
+ snackbarController . open ( {
152
+ message : "Reverted version" ,
153
+ type : "info"
154
+ } ) ;
155
+ }
156
+ ) . catch ( ( error ) => {
157
+ console . error ( "Error reverting entity:" , error ) ;
158
+ snackbarController . open ( {
159
+ message : "Error reverting entity" ,
160
+ type : "error"
161
+ } ) ;
162
+ } ) ;
151
163
152
164
}
153
165
@@ -187,7 +199,7 @@ export function EntityHistoryView({
187
199
type : "warning"
188
200
} ) ;
189
201
} else {
190
- setRevertVersion ( revision ) ;
202
+ setRevertVersionDialog ( revision ) ;
191
203
}
192
204
} } >
193
205
< HistoryIcon />
@@ -209,13 +221,13 @@ export function EntityHistoryView({
209
221
) }
210
222
</ div >
211
223
212
- < ConfirmationDialog open = { Boolean ( revertVersion ) }
224
+ < ConfirmationDialog open = { Boolean ( revertVersionDialog ) }
213
225
onAccept = { function ( ) : void {
214
- if ( ! revertVersion ) return ;
215
- doRevert ( revertVersion ) ;
226
+ if ( ! revertVersionDialog ) return ;
227
+ doRevert ( revertVersionDialog ) ;
216
228
} }
217
229
onCancel = { function ( ) : void {
218
- setRevertVersion ( undefined ) ;
230
+ setRevertVersionDialog ( undefined ) ;
219
231
} }
220
232
title = { < Typography variant = { "subtitle2" } > Revert data to this version?</ Typography > } />
221
233
</ div >
0 commit comments