Feature: add script mode in settings (#49)

This commit is contained in:
Fndroid 2020-07-30 22:23:47 +08:00 committed by GitHub
parent a20d7b0fed
commit 5873076fd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 9 deletions

View File

@ -1,8 +1,8 @@
import React, { useEffect } from 'react'
import React, { useEffect, useMemo } from 'react'
import classnames from 'classnames'
import capitalize from 'lodash/capitalize'
import { Header, Card, Row, Col, Switch, ButtonSelect, ButtonSelectOptions, Input, Icon } from '@components'
import { useI18n, useClashXData, useAPIInfo, useGeneral, useIdentity } from '@stores'
import { useI18n, useClashXData, useAPIInfo, useGeneral, useIdentity, useVersion } from '@stores'
import { updateConfig } from '@lib/request'
import { useObject } from '@lib/hook'
import { jsBridge } from '@lib/jsBridge'
@ -12,6 +12,7 @@ import './style.scss'
const languageOptions: ButtonSelectOptions[] = [{ label: '中文', value: 'zh_CN' }, { label: 'English', value: 'en_US' }]
export default function Settings () {
const { premium } = useVersion()
const { data: clashXData, update: fetchClashXData } = useClashXData()
const { general, update: fetchGeneral } = useGeneral()
const { set: setIdentity } = useIdentity()
@ -78,11 +79,17 @@ export default function Settings () {
systemProxy
} = clashXData
const proxyModeOptions: ButtonSelectOptions[] = [
{ label: t('values.global'), value: 'Global' },
{ label: t('values.rules'), value: 'Rule' },
{ label: t('values.direct'), value: 'Direct' }
]
const proxyModeOptions = useMemo(() => {
const options = [
{ label: t('values.global'), value: 'Global' },
{ label: t('values.rules'), value: 'Rule' },
{ label: t('values.direct'), value: 'Direct' }
]
if (premium) {
options.push({ label: t('values.script'), value: 'Script' })
}
return options
}, [t, premium])
return (
<div className="page">

View File

@ -25,7 +25,8 @@ export default {
en: 'English',
global: 'Global',
rules: 'Rules',
direct: 'Direct'
direct: 'Direct',
script: 'Script'
},
versionString: 'Current ClashX is the latest version{{version}}',
checkUpdate: 'Check Update',

View File

@ -25,7 +25,8 @@ export default {
en: 'English',
global: '全局',
rules: '规则',
direct: '直连'
direct: '直连',
script: '脚本'
},
versionString: '当前 ClashX 已是最新版本:{{version}}',
checkUpdate: '检查更新',