From 6c1f2a8bc317baf9153bef1fe66f3dac20375ca0 Mon Sep 17 00:00:00 2001 From: wow22831 Date: Fri, 4 Oct 2024 03:50:37 +0700 Subject: [PATCH] ya ystal --- src/App.css | 38 -------------------------------------- src/App.js | 41 +++++++++++++++++++++-------------------- src/App.scss | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 58 deletions(-) delete mode 100644 src/App.css create mode 100644 src/App.scss diff --git a/src/App.css b/src/App.css deleted file mode 100644 index 74b5e05..0000000 --- a/src/App.css +++ /dev/null @@ -1,38 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/src/App.js b/src/App.js index 14baae6..da208d5 100644 --- a/src/App.js +++ b/src/App.js @@ -3,59 +3,60 @@ import DeviceGroups from "./pages/DeviceGroups"; import Devices from "./pages/Devices"; import Sidebar from "./Sidebar"; import Dashboard from './pages/Dashboard'; -import UserAccount from './pages/UserAccount'; // Импортируем компонент UserAccount -import Login from './pages/Login'; // Импортируем страницу логина -import Connections from './pages/Connections'; // Импортируем страницу подключений +import Login from './pages/Login'; +import './App.scss'; import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; const App = () => { const [isLoggedIn, setIsLoggedIn] = useState(false); // Статус авторизации const [activeTab, setActiveTab] = useState('map'); // По умолчанию активная вкладка "Карта" + const [isSidebarOpen, setIsSidebarOpen] = useState(true); // Управление отображением панели // Функция для выхода из системы const handleLogout = () => { setIsLoggedIn(false); }; - const handleLogin = () => { - setIsLoggedIn(true); // Устанавливаем авторизацию - }; - return ( : } + element={isLoggedIn ? : setIsLoggedIn(true)} />} /> -
+
+ +
-
- {activeTab === 'map' && } {/* Подключаем компонент Dashboard */} - {activeTab === 'connection' && } {/* Страница подключений */} - {activeTab === 'account' && } {/* Подключаем компонент UserAccount */} - {activeTab === 'groups' && } {/* Группы устройств */} - {activeTab === 'devices' && } {/* Устройства */} -
+
+
+ {activeTab === 'map' && } + {activeTab === 'connection' &&
Подключение
} + {activeTab === 'account' &&
Аккаунт пользователя
} + {activeTab === 'groups' && } + {activeTab === 'devices' && }
) : ( )} /> - {/* Перенаправляем на /login по умолчанию */} } /> ); }; -export default App; \ No newline at end of file +export default App; diff --git a/src/App.scss b/src/App.scss new file mode 100644 index 0000000..e4fd249 --- /dev/null +++ b/src/App.scss @@ -0,0 +1,41 @@ +.app-container { + display: flex; + height: 100vh; + position: relative; +} + +.sidebar-container { + width: 250px; + transition: width 0.3s ease; + + &.closed { + width: 0; + overflow: hidden; + } + + &.open { + width: 250px; + } +} + +.content { + flex: 1; + padding: 20px; + transition: margin-left 0.3s ease; +} + +.menu-toggle-button { + position: absolute; + top: 10px; + left: 10px; + background-color: #007bff; + color: white; + border: none; + padding: 10px 15px; + cursor: pointer; + z-index: 10; + + &:hover { + background-color: #0056b3; + } +}