File tree Expand file tree Collapse file tree 15 files changed +223
-341
lines changed Expand file tree Collapse file tree 15 files changed +223
-341
lines changed Original file line number Diff line number Diff line change @@ -51,7 +51,11 @@ export const Breadcrumbs = ({ variant = 'default' }: Props) => {
51
51
{ breadcrumb . title }
52
52
</ Link >
53
53
) ,
54
- i !== arr . length - 1 ? < span className = "color-text-tertiary" > /</ span > : null ,
54
+ i !== arr . length - 1 ? (
55
+ < span className = "color-text-tertiary" key = { `${ i } -slash` } >
56
+ /
57
+ </ span >
58
+ ) : null ,
55
59
]
56
60
} ) }
57
61
</ nav >
Original file line number Diff line number Diff line change 1
1
import Head from 'next/head'
2
2
3
- import { SidebarNav } from 'components/SidebarNav'
3
+ import { SidebarNav } from 'components/sidebar/ SidebarNav'
4
4
import { Header } from 'components/page-header/Header'
5
5
import { SmallFooter } from 'components/page-footer/SmallFooter'
6
6
import { ScrollButton } from 'components/ScrollButton'
Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -207,38 +207,11 @@ function initExitEvent() {
207
207
document . addEventListener ( 'visibilitychange' , sendExit )
208
208
}
209
209
210
- function initNavigateEvent ( ) {
211
- if ( ! document . querySelector ( '.sidebar-products' ) ) return
212
-
213
- Array . from ( document . querySelectorAll ( '.sidebar-products details' ) ) . forEach ( ( details ) =>
214
- details . addEventListener ( 'toggle' , ( evt ) => {
215
- const target = evt . target as HTMLDetailsElement
216
- sendEvent ( {
217
- type : EventType . navigate ,
218
- navigate_label : `details ${ target . open ? 'open' : 'close' } : ${
219
- target ?. querySelector ( 'summary' ) ?. innerText
220
- } `,
221
- } )
222
- } )
223
- )
224
-
225
- document . querySelector ( '.sidebar-products' ) ?. addEventListener ( 'click' , ( evt ) => {
226
- const target = evt . target as HTMLElement
227
- const link = target . closest ( 'a' ) as HTMLAnchorElement
228
- if ( ! link ) return
229
- sendEvent ( {
230
- type : EventType . navigate ,
231
- navigate_label : `link: ${ link . href } ` ,
232
- } )
233
- } )
234
- }
235
-
236
210
export default function initializeEvents ( ) {
237
211
initPageEvent ( ) // must come first
238
212
initExitEvent ( )
239
213
initLinkEvent ( )
240
214
initClipboardEvent ( )
241
- initNavigateEvent ( )
242
215
// print event in ./print.js
243
216
// survey event in ./survey.js
244
217
// experiment event in ./experiment.js
File renamed without changes.
Original file line number Diff line number Diff line change
1
+ import { useRouter } from 'next/router'
2
+ import { LinkExternalIcon } from '@primer/octicons-react'
3
+
4
+ import { useVersion } from 'components/hooks/useVersion'
5
+ import { useMainContext } from 'components/context/MainContext'
6
+ import { Link } from 'components/Link'
7
+
8
+ import { AllProductsLink } from './AllProductsLink'
9
+
10
+ export const SidebarHomepage = ( ) => {
11
+ const router = useRouter ( )
12
+ const { currentVersion } = useVersion ( )
13
+ const { activeProducts, isFPT } = useMainContext ( )
14
+
15
+ return (
16
+ < ul data-testid = "sidebar" className = "mt-4" >
17
+ { ! isFPT && < AllProductsLink /> }
18
+
19
+ { activeProducts . map ( ( product ) => {
20
+ if ( ! isFPT && ! product . versions ?. includes ( currentVersion ) && ! product . external ) {
21
+ return null
22
+ }
23
+
24
+ const href = `${ ! product . external ? `/${ router . locale } ` : '' } ${
25
+ product . versions ?. includes ( currentVersion ) && ! isFPT
26
+ ? `/${ currentVersion } /${ product . id } `
27
+ : product . href
28
+ } `
29
+
30
+ return (
31
+ < li
32
+ key = { product . id }
33
+ title = { `${ product . name } ${ product . external ? '(External Site)' : '' } ` }
34
+ className = "my-3"
35
+ >
36
+ < Link
37
+ href = { href }
38
+ target = { product . external ? '_blank' : undefined }
39
+ className = "f4 pl-4 pr-5 py-2 color-text-primary no-underline"
40
+ >
41
+ { product . name }
42
+ { product . external && (
43
+ < span className = "ml-1" >
44
+ < LinkExternalIcon size = "small" />
45
+ </ span >
46
+ ) }
47
+ </ Link >
48
+ </ li >
49
+ )
50
+ } ) }
51
+ </ ul >
52
+ )
53
+ }
Original file line number Diff line number Diff line change
1
+ import { useRouter } from 'next/router'
2
+ import { MarkGithubIcon } from '@primer/octicons-react'
3
+
4
+ import { Link } from 'components/Link'
5
+ import { useTranslation } from 'components/hooks/useTranslation'
6
+ import { useMainContext } from 'components/context/MainContext'
7
+ import { SidebarProduct } from './SidebarProduct'
8
+ import { SidebarHomepage } from './SidebarHomepage'
9
+
10
+ export const SidebarNav = ( ) => {
11
+ const router = useRouter ( )
12
+ const { error, relativePath } = useMainContext ( )
13
+ const { t } = useTranslation ( 'header' )
14
+
15
+ return (
16
+ < div
17
+ className = "d-none d-lg-block color-bg-tertiary position-sticky top-0 overflow-y-auto flex-shrink-0 pb-5"
18
+ style = { { width : 286 , height : '100vh' } }
19
+ >
20
+ < div
21
+ className = "d-flex flex-items-center p-4 position-sticky top-0 color-bg-tertiary"
22
+ style = { { zIndex : 3 } }
23
+ id = "github-logo"
24
+ role = "banner"
25
+ >
26
+ < Link
27
+ href = { `/${ router . locale } ` }
28
+ className = "color-text-primary"
29
+ aria-hidden = "true"
30
+ tabIndex = { - 1 }
31
+ >
32
+ < MarkGithubIcon size = { 32 } />
33
+ </ Link >
34
+ < Link
35
+ href = { `/${ router . locale } ` }
36
+ className = "h4-mktg color-text-primary no-underline no-wrap pl-2 flex-auto"
37
+ >
38
+ { t ( 'github_docs' ) }
39
+ </ Link >
40
+ </ div >
41
+ < nav >
42
+ { error === '404' || relativePath === 'index.md' ? < SidebarHomepage /> : < SidebarProduct /> }
43
+ </ nav >
44
+ </ div >
45
+ )
46
+ }
Original file line number Diff line number Diff line change
1
+ .sidebarArticle ::before {
2
+ content : " " ;
3
+ position : absolute ;
4
+ left : 26px ;
5
+ height : 100% ;
6
+ border-left : 1px solid var (--color-text-primary );
7
+ width : 1px ;
8
+ top : 0 ;
9
+ }
10
+
11
+ .sidebarArticleActive ::before {
12
+ border-left-width : 2px ;
13
+ }
You can’t perform that action at this time.
0 commit comments