mirror of
https://github.com/woodchen-ink/clash-and-dashboard.git
synced 2025-07-18 22:11:56 +08:00
Add: settings page
This commit is contained in:
parent
582d82868d
commit
1de3969391
0
src/containers/Settings/components/index.ts
Normal file
0
src/containers/Settings/components/index.ts
Normal file
@ -1,7 +1,25 @@
|
|||||||
import * as React from 'react'
|
import * as React from 'react'
|
||||||
|
import { Header, Card } from '@components'
|
||||||
|
import { translate } from 'react-i18next'
|
||||||
|
import { I18nProps } from '@i18n'
|
||||||
|
|
||||||
|
class Settings extends React.Component<I18nProps, {}> {
|
||||||
|
|
||||||
|
state = {
|
||||||
|
startAtLogin: false
|
||||||
|
}
|
||||||
|
|
||||||
export default class Settings extends React.Component<{}, {}> {
|
|
||||||
render () {
|
render () {
|
||||||
return 'Settings'
|
const { t } = this.props
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="page">
|
||||||
|
<Header title={t('title')} />
|
||||||
|
<Card style={{ marginTop: 25 }}>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default translate(['Settings'])(Settings)
|
||||||
|
12
src/containers/Settings/style.scss
Normal file
12
src/containers/Settings/style.scss
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
@import '~@styles/variables';
|
||||||
|
|
||||||
|
.proxies-list {
|
||||||
|
margin: 10px 0;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 20px 15px 20px 0;
|
||||||
|
}
|
||||||
|
}
|
@ -18,9 +18,9 @@ class Sidebar extends React.Component<SidebarProps, {}> {
|
|||||||
render () {
|
render () {
|
||||||
const { routes, t } = this.props
|
const { routes, t } = this.props
|
||||||
return (
|
return (
|
||||||
<div className="slidebar">
|
<div className="sidebar">
|
||||||
<img src={logo} className="slidebar-logo" />
|
<img src={logo} className="sidebar-logo" />
|
||||||
<ul className="slidebar-menu">
|
<ul className="sidebar-menu">
|
||||||
{
|
{
|
||||||
routes.map(
|
routes.map(
|
||||||
({ path, name, exact }) => (
|
({ path, name, exact }) => (
|
||||||
@ -36,4 +36,4 @@ class Sidebar extends React.Component<SidebarProps, {}> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default translate(['slidebar'])(Sidebar)
|
export default translate(['SideBar'])(Sidebar)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
@import '~@styles/variables';
|
@import '~@styles/variables';
|
||||||
|
|
||||||
.slidebar {
|
.sidebar {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -8,13 +8,13 @@
|
|||||||
width: 140px;
|
width: 140px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slidebar-logo {
|
.sidebar-logo {
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slidebar-menu {
|
.sidebar-menu {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
|
31
src/i18n/en_US.ts
Normal file
31
src/i18n/en_US.ts
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
export default {
|
||||||
|
SideBar: {
|
||||||
|
Proxies: 'Proxies',
|
||||||
|
Overview: 'Overview',
|
||||||
|
Logs: 'Logs',
|
||||||
|
Rules: 'Rules',
|
||||||
|
Settings: 'Setting'
|
||||||
|
},
|
||||||
|
Settings: {
|
||||||
|
title: 'Settings',
|
||||||
|
labels: {
|
||||||
|
startAtLogin: 'Start at login',
|
||||||
|
language: 'language',
|
||||||
|
setAsSystemProxy: 'Set as system proxy',
|
||||||
|
allowConnectFromLan: 'Allow connect from Lan',
|
||||||
|
proxyMode: 'Mode',
|
||||||
|
socketProxyPort: 'Socket proxy port',
|
||||||
|
httpProxyPort: 'HTTP proxy port',
|
||||||
|
externalController: 'External controller'
|
||||||
|
},
|
||||||
|
values: {
|
||||||
|
cn: '中文',
|
||||||
|
en: 'English',
|
||||||
|
global: 'Global',
|
||||||
|
rules: 'Rules',
|
||||||
|
direct: 'Direct'
|
||||||
|
},
|
||||||
|
versionString: 'Current ClashX is the latest version:{{version}}',
|
||||||
|
checkUpdate: 'Check Update'
|
||||||
|
}
|
||||||
|
}
|
@ -1,30 +1,23 @@
|
|||||||
import * as i18n from 'i18next'
|
import * as i18n from 'i18next'
|
||||||
import * as LanguageDetector from 'i18next-browser-languagedetector'
|
import * as LanguageDetector from 'i18next-browser-languagedetector'
|
||||||
|
|
||||||
const options = {
|
// locales
|
||||||
fallbackLng: 'en',
|
import en_US from './en_US'
|
||||||
|
import zh_CN from './zh_CN'
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
fallbackLng: 'en_US',
|
||||||
|
|
||||||
|
ns: [
|
||||||
|
'SideBar',
|
||||||
|
'Settings'
|
||||||
|
],
|
||||||
|
|
||||||
ns: ['slidebar'],
|
|
||||||
resources: {
|
resources: {
|
||||||
en: {
|
en: en_US,
|
||||||
slidebar: {
|
zh: zh_CN
|
||||||
Proxies: 'Proxies',
|
|
||||||
Overview: 'Overview',
|
|
||||||
Logs: 'Logs',
|
|
||||||
Rules: 'Rules',
|
|
||||||
Settings: 'Setting'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'zh-CN': {
|
|
||||||
slidebar: {
|
|
||||||
Proxies: '代理',
|
|
||||||
Overview: '总览',
|
|
||||||
Logs: '日志',
|
|
||||||
Rules: '规则',
|
|
||||||
Settings: '设置'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
react: {
|
react: {
|
||||||
wait: true
|
wait: true
|
||||||
}
|
}
|
||||||
|
31
src/i18n/zh_CN.ts
Normal file
31
src/i18n/zh_CN.ts
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
export default {
|
||||||
|
SideBar: {
|
||||||
|
Proxies: '代理',
|
||||||
|
Overview: '总览',
|
||||||
|
Logs: '日志',
|
||||||
|
Rules: '规则',
|
||||||
|
Settings: '设置'
|
||||||
|
},
|
||||||
|
Settings: {
|
||||||
|
title: '设置',
|
||||||
|
labels: {
|
||||||
|
startAtLogin: '开机时启动',
|
||||||
|
language: '语言',
|
||||||
|
setAsSystemProxy: '设置为系统代理',
|
||||||
|
allowConnectFromLan: '允许来自局域网的连接',
|
||||||
|
proxyMode: '代理模式',
|
||||||
|
socketProxyPort: 'Socket 代理端口',
|
||||||
|
httpProxyPort: 'HTTP 代理端口',
|
||||||
|
externalController: '外部控制设置'
|
||||||
|
},
|
||||||
|
values: {
|
||||||
|
cn: '中文',
|
||||||
|
en: 'English',
|
||||||
|
global: '全局',
|
||||||
|
rules: '规则',
|
||||||
|
direct: '直连'
|
||||||
|
},
|
||||||
|
versionString: '当前 ClashX 已是最新版本:{{version}}',
|
||||||
|
checkUpdate: '检查更新'
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user