8
8
addAllowSyntheticDefaultImports ,
9
9
addPackage ,
10
10
addSchematicCollections ,
11
+ findFile ,
11
12
logStart
12
13
} from '../../../utils' ;
13
14
import { UpgradeMainVersions } from '../../../utils/versions' ;
@@ -42,6 +43,24 @@ function addEslintPluginDeprecation(): Rule {
42
43
} ;
43
44
}
44
45
46
+ function fixReuseTabActiviteInHtml ( ) : Rule {
47
+ return ( tree : Tree , context : SchematicContext ) => {
48
+ const layoutPath = findFile ( tree , 'basic/basic.component.ts' ) ;
49
+ if ( ! tree . exists ( layoutPath ) ) return ;
50
+
51
+ let layoutContent = tree . get ( layoutPath ) ! . content . toString ( 'utf8' ) ;
52
+ const checkHtml = `<router-outlet (activate)="reuseTab.activate($event)"></router-outlet>` ;
53
+ if ( ! layoutContent . includes ( checkHtml ) ) return ;
54
+
55
+ layoutContent = layoutContent . replace (
56
+ checkHtml ,
57
+ `<router-outlet (activate)="reuseTab.activate($event)" (attach)="reuseTab.activate($event)"></router-outlet>`
58
+ ) ;
59
+ tree . overwrite ( layoutPath , layoutContent ) ;
60
+ logStart ( context , `Fix can't refresh current item in resut-tab (https://github.com/ng-alain/ng-alain/issues/2302)` ) ;
61
+ } ;
62
+ }
63
+
45
64
function finished ( ) : Rule {
46
65
return ( _tree : Tree , context : SchematicContext ) => {
47
66
context . addTask ( new NodePackageInstallTask ( ) ) ;
@@ -64,6 +83,7 @@ export function v14Rule(): Rule {
64
83
// https://angular.io/guide/build#configuring-commonjs-dependencies
65
84
addAllowedCommonJsDependencies ( [ ] ) ,
66
85
fixSchematicCollections ( context ) ,
86
+ fixReuseTabActiviteInHtml ( ) ,
67
87
addEslintPluginDeprecation ( ) ,
68
88
finished ( )
69
89
] ) ;
0 commit comments