import { FileOutlined, HomeTwoTone, HomeOutlined, FileTwoTone, } from '@ant-design/icons' import classnames from 'classnames' import React, { useLayoutEffect, useState } from 'react' import { Link, Outlet, useLocation } from 'react-router-dom' import logo from '@/assets/images/logo.png' import GroupSelection from './components/group-seletion' import ListenSchemaUpdate from './components/listen-schema-update' import TagList from './components/tag-list' import styles from './index.module.less' import type { FC } from 'react' interface IProps {} export enum SideBarIconKey { HOME = 'HOME', DOCS = 'DOCS', NONE = 'NONE', } const KEY_MAP: Record = { home: SideBarIconKey.HOME, docs: SideBarIconKey.DOCS, none: SideBarIconKey.NONE, } const Layout: FC = () => { const location = useLocation() const key = location.pathname.split('/')[1] const routeId = location.pathname.split('/')[2] const [sideBarActiveKey, setSideBarActiveKey] = useState(KEY_MAP[key]) const [focusKey, setFocusKey] = useState(KEY_MAP[key]) useLayoutEffect(() => { setSideBarActiveKey(KEY_MAP[key]) }, [key, location.pathname]) return (
qiufen logo

QIUFEN

{ setFocusKey(SideBarIconKey.DOCS) }} onMouseLeave={() => { setFocusKey(SideBarIconKey.NONE) }} className={classnames(styles.icon_item, { [styles.active]: sideBarActiveKey === SideBarIconKey.DOCS || focusKey === SideBarIconKey.DOCS, })}> {sideBarActiveKey === SideBarIconKey.DOCS || focusKey === SideBarIconKey.DOCS ? ( ) : ( )}
{/* ----------- */}
{ setFocusKey(SideBarIconKey.HOME) }} onMouseLeave={() => { setFocusKey(SideBarIconKey.NONE) }} className={classnames(styles.icon_item, { [styles.active]: sideBarActiveKey === SideBarIconKey.HOME || focusKey === SideBarIconKey.HOME, })}> {sideBarActiveKey === SideBarIconKey.HOME || focusKey === SideBarIconKey.HOME ? ( ) : ( )}
) } export default Layout