diff --git a/client/src/components/AppLayout.css b/client/src/components/AppLayout.css index 1667c31..ff07d1f 100644 --- a/client/src/components/AppLayout.css +++ b/client/src/components/AppLayout.css @@ -118,6 +118,26 @@ flex-shrink: 0; } +.sb-spacer { + flex: 1; +} + +.sb-footer { + padding: 8px; + border-top: 1px solid #222; + flex-shrink: 0; +} + +.sb-btn--logout { + color: #666; + width: 100%; +} + +.sb-btn--logout:hover { + color: #f87171; + background: #1e1010; +} + .sb-app-icon-placeholder { width: 20px; height: 20px; diff --git a/client/src/components/AppLayout.jsx b/client/src/components/AppLayout.jsx index a21c1c8..f8fedd4 100644 --- a/client/src/components/AppLayout.jsx +++ b/client/src/components/AppLayout.jsx @@ -1,13 +1,25 @@ import { useState } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { logout } from '../api'; import './AppLayout.css'; export default function AppLayout({ sidebar, children }) { const [open, setOpen] = useState(false); + const navigate = useNavigate(); + + function handleLogout() { + logout(); + navigate('/login', { replace: true }); + } return (
{open && ( diff --git a/docker-compose.yml b/docker-compose.yml index 5988b90..6b81def 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,4 +10,5 @@ services: - PORT=3000 - UPLOADS_DIR=/uploads - DB_PATH=/data/apps.json + - SHOWCASE_PASSWORD=${SHOWCASE_PASSWORD} restart: unless-stopped