transform: rotate(360deg);
}
}
+
+body[data-bs-theme='dark'] {
+ background-color: var(--bs-body-bg);
+ color: var(--bs-body-color);
+}
+
+body[data-bs-theme='dark'] .App {
+ background-color: var(--bs-body-bg);
+ color: var(--bs-body-color);
+}
+
+body[data-bs-theme='dark'] .table > thead > tr > th {
+ background-color: var(--bs-table-bg);
+ color: var(--bs-table-color);
+}
+
+body[data-bs-theme='dark'] .table td {
+ background-color: var(--bs-table-bg);
+ border-color: var(--bs-border-color);
+ color: var(--bs-table-color);
+}
+
+body[data-bs-theme='dark'] .status-buttons {
+ color: var(--bs-btn-color);
+ background-color: var(--bs-btn-bg);
+}
+
+body[data-bs-theme='dark'] .App-header {
+ background-color: var(--bs-body-bg);
+}
+
+body[data-bs-theme='dark'] .App-link {
+ color: var(--bs-link-color);
+}
+
+body[data-bs-theme='dark'] .dynamic-button {
+ background-color: var(--bs-btn-bg);
+ color: var(--bs-btn-color);
+}
+
+body[data-bs-theme='dark'] .dynamic-text {
+ color: var(--bs-body-color);
+}
+
+body[data-bs-theme='dark'] .modal-content {
+ background-color: var(--bs-modal-content-bg);
+ color: var(--bs-modal-content-color);
+ border-color: var(--bs-border-color);
+}
+
+body[data-bs-theme='dark'] .modal-header,
+body[data-bs-theme='dark'] .modal-body {
+ background-color: #22272c;
+ border-color: #0e1114;
+}
+
+body[data-bs-theme='dark'] .modal-title {
+ color: var(--bs-modal-title-color);
+}
+
+body[data-bs-theme='dark'] .btn-close {
+ filter: invert(1);
+}
// ==================================================================================
-import React from 'react';
-import { Container, Nav, Navbar, NavDropdown } from 'react-bootstrap';
+import React, { useState, useEffect } from 'react';
+import { Container, Nav, Navbar, NavDropdown, Button } from 'react-bootstrap';
import './NavbarComponent.css';
+
function NavbarComponent() {
+ const [isDarkMode, setIsDarkMode] = useState(() => {
+ const savedTheme = localStorage.getItem('isDarkMode');
+ return savedTheme === 'true';
+ });
+
+ useEffect(() => {
+ document.body.setAttribute('data-bs-theme', isDarkMode ? 'dark' : 'light');
+ localStorage.setItem('isDarkMode', isDarkMode);
+ }, [isDarkMode]);
+
+ const toggleDarkMode = () => {
+ setIsDarkMode(!isDarkMode);
+ };
+
return (
- <Navbar bg='primary' variant='dark' className='nav-bar'>
+ <Navbar className='nav-bar custom-navbar' variant='dark'>
<Container>
<Navbar.Brand href='/'>AI/ML Management Dashboard</Navbar.Brand>
<Nav>
<NavDropdown.Item href='/TrainingJob/CreateFeatureGroup'>Create Feature Group</NavDropdown.Item>
<NavDropdown.Item href='/TrainingJob/ListFeatureGroups'>List Feature Group</NavDropdown.Item>
</NavDropdown>
+ <Button onClick={toggleDarkMode} variant={isDarkMode ? 'dark' : 'primary'}>
+ {isDarkMode ? '🌞' : '🌜'}
+ </Button>
</Nav>
</Container>
</Navbar>