@@ -72,7 +72,13 @@ const Header: React.FC = () => {
7272 { Object . values ( siteMapNode . children )
7373 . filter ( ( s ) => ! s . hide )
7474 . map ( ( r ) => (
75- < Link key = { r . id } to = { r . route_code } onClick = { resetDepths } >
75+ < Link
76+ key = { r . id }
77+ onClick = { resetDepths }
78+ target = { R . isString ( r . external_link ) ? "_blank" : undefined }
79+ rel = { R . isString ( r . external_link ) ? "noopener noreferrer" : undefined }
80+ to = { r . external_link || r . route_code }
81+ >
7682 < Button key = { r . id } onMouseEnter = { ( ) => setDepth1 ( r ) } sx = { { minWidth : 0 , textTransform : "none" } } >
7783 { r . name }
7884 </ Button >
@@ -100,7 +106,9 @@ const Header: React.FC = () => {
100106 onMouseEnter = { ( ) => setDepth2 ( r ) }
101107 // 하위 depth가 있는 경우, 하위 depth를 선택할 수 있도록 유지하기 위해 depth2도 유지합니다.
102108 onMouseLeave = { ( ) => R . isEmpty ( navState . depth2 ?. children ?? { } ) && setDepth2 ( undefined ) }
103- to = { getDepth2Route ( r . route_code ) }
109+ target = { R . isString ( r . external_link ) ? "_blank" : undefined }
110+ rel = { R . isString ( r . external_link ) ? "noopener noreferrer" : undefined }
111+ to = { r . external_link || getDepth2Route ( r . route_code ) }
104112 />
105113 ) ) }
106114 </ Stack >
@@ -120,7 +128,9 @@ const Header: React.FC = () => {
120128 onClick = { resetDepths }
121129 onMouseEnter = { ( ) => setDepth3 ( r ) }
122130 onMouseLeave = { ( ) => setDepth3 ( undefined ) }
123- to = { getDepth3Route ( r ?. route_code ) }
131+ target = { R . isString ( r . external_link ) ? "_blank" : undefined }
132+ rel = { R . isString ( r . external_link ) ? "noopener noreferrer" : undefined }
133+ to = { r . external_link || getDepth3Route ( r ?. route_code ) }
124134 />
125135 ) ) }
126136 </ Stack >
0 commit comments