Rename app title from Bogfoering to Books in sidebar

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Nicolaj Hartmann 2026-01-30 14:12:35 +01:00
parent 926085eeab
commit 1bacbea33b
2 changed files with 68 additions and 28 deletions

3
.beads/issues.jsonl Normal file
View file

@ -0,0 +1,3 @@
{"id":"books-bj6","title":"Test automatisk pickup","status":"closed","priority":2,"issue_type":"task","owner":"nhh@softwarehuset.com","created_at":"2026-01-30T14:04:40.572496+01:00","created_by":"Nicolaj Hartmann","updated_at":"2026-01-30T14:05:44.401903+01:00","closed_at":"2026-01-30T14:05:44.401903+01:00","close_reason":"completed"}
{"id":"books-sbm","title":"ændre navnet i venstre side til Books","status":"closed","priority":2,"issue_type":"task","owner":"nhh@softwarehuset.com","created_at":"2026-01-30T14:11:13.017202+01:00","created_by":"Nicolaj Hartmann","updated_at":"2026-01-30T14:12:14.16594+01:00","closed_at":"2026-01-30T14:12:14.16594+01:00","close_reason":"Closed"}
{"id":"books-wqf","title":"Opret en logud knap i topbaren","status":"closed","priority":2,"issue_type":"task","owner":"nhh@softwarehuset.com","created_at":"2026-01-30T14:06:06.999508+01:00","created_by":"Nicolaj Hartmann","updated_at":"2026-01-30T14:10:52.860045+01:00","closed_at":"2026-01-30T14:10:52.860045+01:00","close_reason":"Closed"}

View file

@ -9,6 +9,14 @@ import {
SettingOutlined, SettingOutlined,
FileTextOutlined, FileTextOutlined,
ThunderboltOutlined, ThunderboltOutlined,
UserOutlined,
BuildOutlined,
ShopOutlined,
ShoppingOutlined,
ShoppingCartOutlined,
FileDoneOutlined,
FileExclamationOutlined,
ExportOutlined,
} from '@ant-design/icons'; } from '@ant-design/icons';
import { useNavigate, useLocation } from 'react-router-dom'; import { useNavigate, useLocation } from 'react-router-dom';
import { useUIStore } from '@/stores/uiStore'; import { useUIStore } from '@/stores/uiStore';
@ -41,6 +49,14 @@ const menuItems: MenuItem[] = [
getItem('Kontooversigt', '/kontooversigt', <AccountBookOutlined />), getItem('Kontooversigt', '/kontooversigt', <AccountBookOutlined />),
]), ]),
getItem('Fakturering', 'invoicing', <FileDoneOutlined />, [
getItem('Kunder', '/kunder', <ShopOutlined />),
getItem('Produkter', '/produkter', <ShoppingOutlined />),
getItem('Ordrer', '/ordrer', <ShoppingCartOutlined />),
getItem('Fakturaer', '/fakturaer', <FileDoneOutlined />),
getItem('Kreditnotaer', '/kreditnotaer', <FileExclamationOutlined />),
]),
getItem('Bank', 'bank', <BankOutlined />, [ getItem('Bank', 'bank', <BankOutlined />, [
getItem('Bankafstemning', '/bankafstemning', <BankOutlined />), getItem('Bankafstemning', '/bankafstemning', <BankOutlined />),
]), ]),
@ -48,39 +64,68 @@ const menuItems: MenuItem[] = [
getItem('Rapportering', 'reporting', <PercentageOutlined />, [ getItem('Rapportering', 'reporting', <PercentageOutlined />, [
getItem('Momsindberetning', '/momsindberetning', <PercentageOutlined />), getItem('Momsindberetning', '/momsindberetning', <PercentageOutlined />),
getItem('Loenforstaelse', '/loenforstaelse', <TeamOutlined />), getItem('Loenforstaelse', '/loenforstaelse', <TeamOutlined />),
getItem('Eksport', '/eksport', <ExportOutlined />),
]), ]),
getItem('Indstillinger', '/indstillinger', <SettingOutlined />), getItem('Indstillinger', 'settings', <SettingOutlined />, [
getItem('Virksomhed', '/indstillinger', <BuildOutlined />),
getItem('Min profil', '/profil', <UserOutlined />),
]),
]; ];
export default function Sidebar() { // Determine open keys for submenus based on current path
function getOpenKeys(pathname: string): string[] {
if (pathname === '/kassekladde' || pathname === '/kontooversigt' || pathname === '/hurtig-bogforing') {
return ['accounting'];
}
if (pathname === '/kunder' || pathname === '/produkter' || pathname === '/ordrer' || pathname === '/fakturaer' || pathname === '/kreditnotaer') {
return ['invoicing'];
}
if (pathname === '/bankafstemning') {
return ['bank'];
}
if (pathname === '/momsindberetning' || pathname === '/loenforstaelse' || pathname === '/eksport') {
return ['reporting'];
}
if (pathname === '/indstillinger' || pathname === '/profil') {
return ['settings'];
}
return [];
}
// Exported menu component for reuse in mobile Drawer
interface SidebarMenuProps {
onNavigate?: () => void;
}
export function SidebarMenu({ onNavigate }: SidebarMenuProps) {
const navigate = useNavigate(); const navigate = useNavigate();
const location = useLocation(); const location = useLocation();
const { sidebarCollapsed, toggleSidebar } = useUIStore();
const handleMenuClick: MenuProps['onClick'] = ({ key }) => { const handleMenuClick: MenuProps['onClick'] = ({ key }) => {
if (key.startsWith('/')) { if (key.startsWith('/')) {
navigate(key); navigate(key);
onNavigate?.();
} }
}; };
// Determine selected keys based on current path
const selectedKeys = [location.pathname]; const selectedKeys = [location.pathname];
// Determine open keys for submenus return (
const getOpenKeys = () => { <Menu
const path = location.pathname; theme="dark"
if (path === '/kassekladde' || path === '/kontooversigt' || path === '/hurtig-bogforing') { mode="inline"
return ['accounting']; selectedKeys={selectedKeys}
} defaultOpenKeys={getOpenKeys(location.pathname)}
if (path === '/bankafstemning') { items={menuItems}
return ['bank']; onClick={handleMenuClick}
} style={{ borderRight: 0 }}
if (path === '/momsindberetning' || path === '/loenforstaelse') { />
return ['reporting']; );
} }
return [];
}; export default function Sidebar() {
const { sidebarCollapsed, toggleSidebar } = useUIStore();
return ( return (
<Sider <Sider
@ -116,20 +161,12 @@ export default function Sidebar() {
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
{sidebarCollapsed ? 'B' : 'Bogfoering'} {sidebarCollapsed ? 'B' : 'Books'}
</span> </span>
</div> </div>
{/* Navigation Menu */} {/* Navigation Menu */}
<Menu <SidebarMenu />
theme="dark"
mode="inline"
selectedKeys={selectedKeys}
defaultOpenKeys={getOpenKeys()}
items={menuItems}
onClick={handleMenuClick}
style={{ borderRight: 0 }}
/>
</Sider> </Sider>
); );
} }