@@ -18,13 +18,21 @@ import { Button } from '@neo4j-ndl/react';
1818import { CircleStackIconOutline } from '@neo4j-ndl/react/icons' ;
1919import { loadDatabaseListFromNeo4jThunk } from '../DashboardThunks' ;
2020import NeoDashboardSidebarDatabaseMenu from '../sidebar/menu/DashboardSidebarDatabaseMenu' ;
21+ import { hardResetAllCardsThunk , setPageNumberThunk } from '../../settings/SettingsThunks' ;
22+ import { updateAllReportsDatabaseThunk } from '../../page/PageThunks' ;
23+ import NeoDashboardChangeDatabaseConfirm from './DashboardChangeDatabaseConfirmDialog' ;
2124
2225// Which (small) pop-up menu is currently open for the sidebar.
2326enum Menu {
2427 DATABASE = 0 ,
2528 NONE = 1 ,
2629}
2730
31+ enum Modal {
32+ CHANGE = 0 ,
33+ NONE = 1 ,
34+ }
35+
2836export const NeoDashboardHeader = ( {
2937 database,
3038 standaloneSettings,
@@ -40,11 +48,13 @@ export const NeoDashboardHeader = ({
4048 setTheme,
4149 loadDatabaseListFromNeo4j,
4250 readonly,
51+ refreshPage
4352} ) => {
4453 const downloadImageEnabled = settings ? settings . downloadImageEnabled : false ;
4554 const [ dashboardTitleText , setDashboardTitleText ] = React . useState ( dashboardTitle ) ;
4655 const [ databases , setDatabases ] = useState ( [ ] ) ;
4756 const [ menuOpen , setMenuOpen ] = useState ( Menu . NONE ) ;
57+ const [ modalOpen , setModalOpen ] = useState ( Modal . NONE ) ;
4858 const [ isDarkMode , setDarkMode ] = React . useState ( themeMode !== 'light' ) ;
4959 const [ menuAnchor , setMenuAnchor ] = useState < HTMLElement | null > ( null ) ;
5060 const [ dataDatabase , setDataDatabase ] = React . useState ( database ? database : 'neo4j' ) ;
@@ -66,6 +76,13 @@ export const NeoDashboardHeader = ({
6676 } , [ isDarkMode ] ) ;
6777 const content = (
6878 < div className = 'n-relative n-bg-palette-neutral-bg-weak n-w-full' >
79+ < NeoDashboardChangeDatabaseConfirm
80+ open = { modalOpen == Modal . CHANGE }
81+ onConfirm = { ( ) => {
82+ setModalOpen ( Modal . NONE ) ;
83+ } }
84+ handleClose = { ( ) => setModalOpen ( Modal . NONE ) }
85+ />
6986 < div className = 'n-min-w-full' >
7087 < div className = 'n-flex n-justify-between n-h-16 n-items-center n-py-6 md:n-justify-start md:n-space-x-10 n-mx-4' >
7188 < NeoDashboardHeaderLogo resetApplication = { resetApplication } />
@@ -136,7 +153,11 @@ export const NeoDashboardHeader = ({
136153 databases = { databases }
137154 selected = { dataDatabase }
138155 setSelected = { ( newDatabase ) => {
156+ setModalOpen ( Modal . CHANGE ) ;
139157 setDataDatabase ( newDatabase ) ;
158+ console . log ( newDatabase )
159+ console . log ( dataDatabase )
160+ refreshPage ( newDatabase )
140161 } }
141162 open = { menuOpen == Menu . DATABASE }
142163 anchorEl = { menuAnchor }
@@ -177,6 +198,12 @@ const mapDispatchToProps = (dispatch) => ({
177198 loadDatabaseListFromNeo4j : ( driver , callback ) => {
178199 dispatch ( loadDatabaseListFromNeo4jThunk ( driver , callback ) )
179200 } ,
201+
202+ refreshPage : ( database : string ) => {
203+ console . log ( "refreshPage" )
204+ // dispatch(hardResetAllCardsThunk());
205+ dispatch ( updateAllReportsDatabaseThunk ( database ) ) ;
206+ } ,
180207} ) ;
181208
182209export default connect ( mapStateToProps , mapDispatchToProps ) ( NeoDashboardHeader ) ;
0 commit comments