11import { useState , useEffect } from "react" ;
22import { markdown } from "../helpers" ;
3- import { CloseIcon } from "../components" ;
3+ import { CloseIcon , InfoIcon } from "../components" ;
44import { DatabaseMenuPopupProps } from "../types" ;
55import databases from "../../config/databases" ;
66
@@ -9,6 +9,7 @@ export function DatabaseMenuSidebar(props: DatabaseMenuPopupProps) {
99 const [ parsedSubheadline , setParsedSubheadline ] = useState < string > ( "" ) ;
1010 const [ parsedTeasers , setParsedTeasers ] = useState < Map < string , string > > ( new Map ( ) ) ;
1111 const [ parsedDescriptions , setParsedDescriptions ] = useState < Map < string , string > > ( new Map ( ) ) ;
12+ const [ expandedTile , setExpandedTile ] = useState < string | null > ( null ) ;
1213
1314 useEffect ( ( ) => {
1415 // Load headline
@@ -56,11 +57,14 @@ export function DatabaseMenuSidebar(props: DatabaseMenuPopupProps) {
5657
5758 < div className = "database-menu-sidebar__body" >
5859 { Object . keys ( databases ) . map ( ( databaseName , index ) => {
60+ const isExpanded = expandedTile === databaseName ;
61+
5962 return (
6063 < a
6164 href = { databaseHref ( databaseName ) }
6265 key = { databaseName }
63- className = "database-tile" >
66+ className = { `database-tile ${ isExpanded ? 'database-tile--expanded' : '' } ` }
67+ onMouseLeave = { ( ) => setExpandedTile ( null ) } >
6468 < div className = "database-tile__index" >
6569 { String ( index + 1 ) . padStart ( 2 , '0' ) }
6670 </ div >
@@ -75,6 +79,14 @@ export function DatabaseMenuSidebar(props: DatabaseMenuPopupProps) {
7579 className = "database-tile__description"
7680 dangerouslySetInnerHTML = { { __html : parsedDescriptions . get ( databaseName ) || "" } } />
7781 </ div >
82+ < div
83+ className = "database-tile__info-icon"
84+ onMouseEnter = { ( e ) => {
85+ e . preventDefault ( ) ;
86+ setExpandedTile ( databaseName ) ;
87+ } } >
88+ < InfoIcon />
89+ </ div >
7890 </ a >
7991 )
8092 } ) }
0 commit comments