@@ -229,7 +229,7 @@ export default class EditorPage extends React.Component<IEditorPageProps, IEdito
229229 </ div >
230230 < div className = "editor-page-right-sidebar" >
231231 < TagInput
232- tags = { this . state . project . tags }
232+ tags = { this . props . project . tags }
233233 lockedTags = { this . state . lockedTags }
234234 selectedRegions = { this . state . selectedRegions }
235235 onChange = { this . onTagsChanged }
@@ -313,13 +313,18 @@ export default class EditorPage extends React.Component<IEditorPageProps, IEdito
313313 const assetService = new AssetService ( project ) ;
314314 const asset = await assetService . renameTag ( project . assets , tagName , newTagName , selectedAsset ) ;
315315
316- const projectService = new ProjectService ( ) ;
317- const newProject = projectService . renameTag ( project , tagName , newTagName ) ;
318- await this . props . actions . saveProject ( newProject ) ;
319-
316+ const newProject : IProject = {
317+ ... project ,
318+ tags : project . tags . map ( ( t ) => ( t . name === tagName ) ? { ... t , name : newTagName } : t ) ,
319+ }
320320 this . setState ( {
321- selectedAsset : asset ,
322321 project : newProject ,
322+ selectedAsset : asset || selectedAsset ,
323+ } , async ( ) => {
324+ await this . props . actions . saveProject ( newProject ) ;
325+ if ( asset ) {
326+ this . canvas . current . updateCanvasToolsRegions ( asset ) ;
327+ }
323328 } ) ;
324329 }
325330
@@ -328,18 +333,21 @@ export default class EditorPage extends React.Component<IEditorPageProps, IEdito
328333 }
329334
330335 private onTagDeleted = async ( tagName : string ) : Promise < void > => {
331- const { project , selectedAsset } = this . state ;
332- const assetService = new AssetService ( project ) ;
333- const asset = await assetService . deleteTag ( project . assets , tagName , selectedAsset ) ;
334-
335- const projectService = new ProjectService ( ) ;
336- const newProject = projectService . deleteTag ( project , tagName ) ;
336+ const { selectedAsset } = this . state ;
337+ const { project } = this . props ;
338+ const newProject : IProject = {
339+ ... project ,
340+ tags : project . tags . filter ( ( t ) => t . name !== tagName )
341+ }
337342 await this . props . actions . saveProject ( newProject ) ;
343+ debugger ;
338344
339- this . setState ( {
340- selectedAsset : asset ,
341- project : newProject ,
342- } ) ;
345+ const assetService = new AssetService ( project ) ;
346+ const asset = await assetService . deleteTag ( project . assets , tagName , selectedAsset ) ;
347+ if ( asset ) {
348+ this . canvas . current . updateCanvasToolsRegions ( asset ) ;
349+ this . setState ( { selectedAsset : asset } ) ;
350+ }
343351 }
344352
345353 private onCtrlTagClicked = ( tag : ITag ) : void => {
0 commit comments