@@ -16,18 +16,21 @@ const DocLink = ({
1616 label,
1717 onClick,
1818 setOpen,
19+ matchPaths,
1920} : {
2021 uri : string ;
2122 label : string | React . ReactNode ;
2223 onClick ?: ( ) => void ;
2324 setOpen : ( open : boolean ) => void ;
25+ matchPaths ?: string [ ] ;
2426} ) => {
2527 const router = useRouter ( ) ;
2628 const url = new URL ( `${ router . asPath } ` , HOST ) ;
2729 url . search = '' ;
2830 url . hash = '' ;
2931 const stringUrl = url . toString ( ) . substr ( HOST . length , Infinity ) ;
30- const isActive = uri === extractPathWithoutFragment ( stringUrl ) ;
32+ const path = extractPathWithoutFragment ( stringUrl ) ;
33+ const isActive = matchPaths ? matchPaths . includes ( path ) : uri === path ;
3134 return (
3235 < Link
3336 href = { uri }
@@ -163,6 +166,13 @@ const getReferencePath = [
163166 '/understanding-json-schema/reference/generic' ,
164167 '/understanding-json-schema/reference' ,
165168] ;
169+ const getReleaseNotesDraftPath = [
170+ '/specification/release-notes' ,
171+ '/draft/2020-12/release-notes' ,
172+ '/draft/2019-09/release-notes' ,
173+ '/draft-07/json-schema-release-notes' ,
174+ '/draft-06/json-schema-release-notes' ,
175+ ] ;
166176const getSpecificationPath = [
167177 '/draft/2020-12' ,
168178 '/draft/2019-09' ,
@@ -175,6 +185,10 @@ const getSpecificationPath = [
175185 '/specification/json-hyper-schema' ,
176186 '/specification' ,
177187 '/specification-links' ,
188+ '/draft/2020-12/release-notes' ,
189+ '/draft/2019-09/release-notes' ,
190+ '/draft-07/json-schema-release-notes' ,
191+ '/draft-06/json-schema-release-notes' ,
178192] ;
179193
180194export const SidebarLayout = ( { children } : { children : React . ReactNode } ) => {
@@ -184,6 +198,8 @@ export const SidebarLayout = ({ children }: { children: React.ReactNode }) => {
184198 const handleRotate = ( ) => setRotateChevron ( ! rotateChevron ) ;
185199 const rotate = rotateChevron ? 'rotate(180deg)' : 'rotate(0)' ;
186200 const pathWtihoutFragment = extractPathWithoutFragment ( router . asPath ) ;
201+ const shouldHideSidebar = pathWtihoutFragment === '/md-style-guide' ;
202+
187203 useEffect ( ( ) => {
188204 if ( window ) {
189205 window . addEventListener ( 'resize' , ( ) => {
@@ -254,16 +270,20 @@ export const SidebarLayout = ({ children }: { children: React.ReactNode }) => {
254270 </ div >
255271 </ div >
256272 < div className = 'dark:bg-slate-800 max-w-[1400px] grid grid-cols-1 lg:grid-cols-4 mx-4 md:mx-12' >
257- < div className = 'hidden lg:block mt-24 sticky top-24 h-[calc(100vh-6rem)] overflow-hidden' >
258- < div className = 'h-full overflow-y-auto scrollbar-hidden' >
259- < DocsNav open = { open } setOpen = { setOpen } />
260- < CarbonAds
261- className = 'lg:mt-8 w-4/5 mx-auto lg:ml-4'
262- variant = 'sidebar'
263- />
273+ { ! shouldHideSidebar && (
274+ < div className = 'hidden lg:block mt-24 sticky top-24 h-[calc(100vh-6rem)] overflow-hidden' >
275+ < div className = 'h-full overflow-y-auto scrollbar-hidden' >
276+ < DocsNav open = { open } setOpen = { setOpen } />
277+ < CarbonAds
278+ className = 'lg:mt-8 w-4/5 mx-auto lg:ml-4'
279+ variant = 'sidebar'
280+ />
281+ </ div >
264282 </ div >
265- </ div >
266- < div className = 'col-span-4 md:col-span-3 lg:mt-20 lg:w-5/6 mx-4 md:mx-0' >
283+ ) }
284+ < div
285+ className = { `lg:mt-20 mx-4 md:mx-0 ${ shouldHideSidebar ? 'col-span-4 w-full' : 'col-span-4 md:col-span-3 lg:w-5/6' } ` }
286+ >
267287 { children }
268288 </ div >
269289 </ div >
@@ -902,6 +922,7 @@ export const DocsNav = ({
902922 uri = '/specification/release-notes'
903923 label = 'Release notes'
904924 setOpen = { setOpen }
925+ matchPaths = { getReleaseNotesDraftPath }
905926 />
906927 < DocLink
907928 uri = '/specification/json-hyper-schema'
0 commit comments