feat: add settings pages
This commit is contained in:
parent
cf81885b3e
commit
78c13d7586
@ -15,7 +15,7 @@ function App(): JSX.Element {
|
||||
<Routes>
|
||||
<Route path="/" element={<HomePage />} />
|
||||
<Route path="/apps" element={<AppsPage />} />
|
||||
<Route path="/settings" element={<SettingsPage />} />
|
||||
<Route path="/settings/*" element={<SettingsPage />} />
|
||||
</Routes>
|
||||
<Statusbar />
|
||||
</MainContainer>
|
||||
|
||||
@ -28,8 +28,8 @@ const Sidebar: FC = () => {
|
||||
</Menus>
|
||||
</MainMenus>
|
||||
<Menus>
|
||||
<StyledLink to="/settings">
|
||||
<Icon className={isRoute('/settings')}>
|
||||
<StyledLink to="/settings/general">
|
||||
<Icon className={pathname.startsWith('/settings') ? 'active' : ''}>
|
||||
<i className="iconfont icon-setting"></i>
|
||||
</Icon>
|
||||
</StyledLink>
|
||||
|
||||
10
src/renderer/src/pages/settings/AboutSetting.tsx
Normal file
10
src/renderer/src/pages/settings/AboutSetting.tsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { FC } from 'react'
|
||||
import styled from 'styled-components'
|
||||
|
||||
const AboutSetting: FC = () => {
|
||||
return <Container>About</Container>
|
||||
}
|
||||
|
||||
const Container = styled.div``
|
||||
|
||||
export default AboutSetting
|
||||
10
src/renderer/src/pages/settings/DefaultAgentSetting.tsx
Normal file
10
src/renderer/src/pages/settings/DefaultAgentSetting.tsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { FC } from 'react'
|
||||
import styled from 'styled-components'
|
||||
|
||||
const DefaultAgentSetting: FC = () => {
|
||||
return <Container>Default Agent</Container>
|
||||
}
|
||||
|
||||
const Container = styled.div``
|
||||
|
||||
export default DefaultAgentSetting
|
||||
10
src/renderer/src/pages/settings/DeveloperSetting.tsx
Normal file
10
src/renderer/src/pages/settings/DeveloperSetting.tsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { FC } from 'react'
|
||||
import styled from 'styled-components'
|
||||
|
||||
const DeveloperSetting: FC = () => {
|
||||
return <Container>Developer</Container>
|
||||
}
|
||||
|
||||
const Container = styled.div``
|
||||
|
||||
export default DeveloperSetting
|
||||
10
src/renderer/src/pages/settings/GeneralSetting.tsx
Normal file
10
src/renderer/src/pages/settings/GeneralSetting.tsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { FC } from 'react'
|
||||
import styled from 'styled-components'
|
||||
|
||||
const GeneralSetting: FC = () => {
|
||||
return <Container>General Settings</Container>
|
||||
}
|
||||
|
||||
const Container = styled.div``
|
||||
|
||||
export default GeneralSetting
|
||||
10
src/renderer/src/pages/settings/ModelsSetting.tsx
Normal file
10
src/renderer/src/pages/settings/ModelsSetting.tsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { FC } from 'react'
|
||||
import styled from 'styled-components'
|
||||
|
||||
const ModelsSetting: FC = () => {
|
||||
return <Container>Models</Container>
|
||||
}
|
||||
|
||||
const Container = styled.div``
|
||||
|
||||
export default ModelsSetting
|
||||
@ -1,15 +1,50 @@
|
||||
import { Navbar, NavbarCenter } from '@renderer/components/app/Navbar'
|
||||
import { FC } from 'react'
|
||||
import { Link, Route, Routes, useLocation } from 'react-router-dom'
|
||||
import styled from 'styled-components'
|
||||
import SettingsHomePage from './GeneralSetting'
|
||||
import SettingsDeveloperPage from './DeveloperSetting'
|
||||
import SettingsAboutPage from './AboutSetting'
|
||||
import SettingsModelsPage from './ModelsSetting'
|
||||
import SettingsDefaultAgent from './DefaultAgentSetting'
|
||||
|
||||
const SettingsPage: FC = () => {
|
||||
const { pathname } = useLocation()
|
||||
|
||||
const isRoute = (path: string): string => (pathname === path ? 'active' : '')
|
||||
|
||||
return (
|
||||
<Container>
|
||||
<Navbar>
|
||||
<NavbarCenter>Settings</NavbarCenter>
|
||||
</Navbar>
|
||||
<ContentContainer>
|
||||
<SettingMenus></SettingMenus>
|
||||
<SettingMenus>
|
||||
<MenuItemLink to="/settings/general">
|
||||
<MenuItem className={isRoute('/settings/general')}>General</MenuItem>
|
||||
</MenuItemLink>
|
||||
<MenuItemLink to="/settings/models">
|
||||
<MenuItem className={isRoute('/settings/models')}>Language Model</MenuItem>
|
||||
</MenuItemLink>
|
||||
<MenuItemLink to="/settings/default-agent">
|
||||
<MenuItem className={isRoute('/settings/default-agent')}>Default Agent</MenuItem>
|
||||
</MenuItemLink>
|
||||
<MenuItemLink to="/settings/about">
|
||||
<MenuItem className={isRoute('/settings/about')}>About</MenuItem>
|
||||
</MenuItemLink>
|
||||
<MenuItemLink to="/settings/developer">
|
||||
<MenuItem className={isRoute('/settings/developer')}>Developer</MenuItem>
|
||||
</MenuItemLink>
|
||||
</SettingMenus>
|
||||
<SettingContent>
|
||||
<Routes>
|
||||
<Route path="general" element={<SettingsHomePage />} />
|
||||
<Route path="models" element={<SettingsModelsPage />} />
|
||||
<Route path="default-agent" element={<SettingsDefaultAgent />} />
|
||||
<Route path="about" element={<SettingsAboutPage />} />
|
||||
<Route path="developer" element={<SettingsDeveloperPage />} />
|
||||
</Routes>
|
||||
</SettingContent>
|
||||
</ContentContainer>
|
||||
</Container>
|
||||
)
|
||||
@ -27,12 +62,41 @@ const ContentContainer = styled.div`
|
||||
flex-direction: row;
|
||||
`
|
||||
|
||||
const SettingMenus = styled.div`
|
||||
const SettingMenus = styled.ul`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: var(--conversations-width);
|
||||
border-right: 1px solid #ffffff20;
|
||||
height: 100%;
|
||||
padding: 10px;
|
||||
`
|
||||
|
||||
const MenuItemLink = styled(Link)`
|
||||
text-decoration: none;
|
||||
color: var(--color-text-1);
|
||||
margin-bottom: 5px;
|
||||
`
|
||||
|
||||
const MenuItem = styled.li`
|
||||
padding: 6px 10px;
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
transition: all 0.2s ease-in-out;
|
||||
&:hover {
|
||||
background: #213675;
|
||||
}
|
||||
&.active {
|
||||
background: #213675;
|
||||
}
|
||||
`
|
||||
|
||||
const SettingContent = styled.div`
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
border-right: 1px solid #ffffff20;
|
||||
padding: 20px;
|
||||
`
|
||||
|
||||
export default SettingsPage
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user