mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2025-12-26 20:50:30 +08:00
fix: resolve all type errors & update changelog
This commit is contained in:
parent
7bdebcf298
commit
3aff005f81
@ -1,11 +1,13 @@
|
|||||||
## 1.8.8
|
## 1.8.8
|
||||||
|
|
||||||
### 新功能 (Feat)
|
### 新功能 (Feat)
|
||||||
|
- 升级内核版本
|
||||||
- 增加内核版本选择
|
- 增加内核版本选择
|
||||||
- 记住日志页面的筛选关键字
|
- 记住日志页面的筛选关键字
|
||||||
- Webdav增加Cron定时备份
|
- Webdav增加Cron定时备份
|
||||||
- 连接卡片纯数字显示样式
|
- 连接卡片纯数字显示样式
|
||||||
- 支持修改窗口触发行为
|
- 支持修改点击任务栏的窗口触发行为
|
||||||
|
- 在设置里增加 WebUI 快捷打开方式
|
||||||
|
|
||||||
### 修复 (Fix)
|
### 修复 (Fix)
|
||||||
- MacOS 首次启动时的 ENOENT: no such file or directory(config.yaml)
|
- MacOS 首次启动时的 ENOENT: no such file or directory(config.yaml)
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { ReactNode } from 'react'
|
|||||||
import { ErrorBoundary, FallbackProps } from 'react-error-boundary'
|
import { ErrorBoundary, FallbackProps } from 'react-error-boundary'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
|
|
||||||
const ErrorFallback = ({ error }: FallbackProps): JSX.Element => {
|
const ErrorFallback = ({ error }: FallbackProps): React.ReactElement => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -55,7 +55,7 @@ interface Props {
|
|||||||
children?: ReactNode
|
children?: ReactNode
|
||||||
}
|
}
|
||||||
|
|
||||||
const BaseErrorBoundary = (props: Props): JSX.Element => {
|
const BaseErrorBoundary = (props: Props): React.ReactElement => {
|
||||||
return <ErrorBoundary FallbackComponent={ErrorFallback}>{props.children}</ErrorBoundary>
|
return <ErrorBoundary FallbackComponent={ErrorFallback}>{props.children}</ErrorBoundary>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
import { GenIcon } from 'react-icons'
|
import { GenIcon, IconBaseProps } from 'react-icons'
|
||||||
function SubStoreIcon(props): JSX.Element {
|
import React from 'react'
|
||||||
|
|
||||||
|
function SubStoreIcon(props: IconBaseProps): React.ReactElement {
|
||||||
return GenIcon({
|
return GenIcon({
|
||||||
tag: 'svg',
|
tag: 'svg',
|
||||||
attr: { viewBox: '0 0 192 192' },
|
attr: { viewBox: '0 0 192 192' },
|
||||||
|
|||||||
@ -59,7 +59,7 @@ const ProxyItem: React.FC<Props> = React.memo((props) => {
|
|||||||
onPress={() => onSelect(group.name, proxy.name)}
|
onPress={() => onSelect(group.name, proxy.name)}
|
||||||
isPressable
|
isPressable
|
||||||
fullWidth
|
fullWidth
|
||||||
shadow="xs"
|
shadow="sm"
|
||||||
className={`${
|
className={`${
|
||||||
fixed
|
fixed
|
||||||
? 'bg-secondary/30 border-r-2 border-r-secondary border-l-2 border-l-secondary'
|
? 'bg-secondary/30 border-r-2 border-r-secondary border-l-2 border-l-secondary'
|
||||||
|
|||||||
@ -61,7 +61,7 @@ const DNS: React.FC = () => {
|
|||||||
proxyServerNameserver,
|
proxyServerNameserver,
|
||||||
directNameserver,
|
directNameserver,
|
||||||
fallback,
|
fallback,
|
||||||
fallbackGeoip: fallbackFilter?.geoip || true,
|
fallbackGeoip: (fallbackFilter?.geoip || true) as string | true | string[],
|
||||||
fallbackGeoipCode: fallbackFilter?.['geoip-code'] || 'CN',
|
fallbackGeoipCode: fallbackFilter?.['geoip-code'] || 'CN',
|
||||||
fallbackIpcidr: fallbackFilter?.ipcidr || ['240.0.0.0/4', '0.0.0.0/32'],
|
fallbackIpcidr: fallbackFilter?.ipcidr || ['240.0.0.0/4', '0.0.0.0/32'],
|
||||||
fallbackDomain: fallbackFilter?.domain || ['+.google.com', '+.facebook.com', '+.youtube.com'],
|
fallbackDomain: fallbackFilter?.domain || ['+.google.com', '+.facebook.com', '+.youtube.com'],
|
||||||
@ -174,7 +174,7 @@ const DNS: React.FC = () => {
|
|||||||
'direct-nameserver': values.directNameserver,
|
'direct-nameserver': values.directNameserver,
|
||||||
fallback: values.fallback,
|
fallback: values.fallback,
|
||||||
'fallback-filter': {
|
'fallback-filter': {
|
||||||
geoip: values.fallbackGeoip,
|
...(values.fallbackGeoip ? { geoip: values.fallbackGeoip } : {}),
|
||||||
'geoip-code': values.fallbackGeoipCode,
|
'geoip-code': values.fallbackGeoipCode,
|
||||||
ipcidr: values.fallbackIpcidr,
|
ipcidr: values.fallbackIpcidr,
|
||||||
domain: values.fallbackDomain
|
domain: values.fallbackDomain
|
||||||
@ -415,9 +415,9 @@ const DNS: React.FC = () => {
|
|||||||
<SettingItem title={t('dns.fallbackFilter.geoip')} divider>
|
<SettingItem title={t('dns.fallbackFilter.geoip')} divider>
|
||||||
<Switch
|
<Switch
|
||||||
size="sm"
|
size="sm"
|
||||||
isSelected={values.fallbackGeoip}
|
isSelected={!!values.fallbackGeoip}
|
||||||
onValueChange={(v) => {
|
onValueChange={(v) => {
|
||||||
setValues({ ...values, fallbackGeoip: v })
|
setValues({ ...values, fallbackGeoip: v as string | true | string[] })
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</SettingItem>
|
</SettingItem>
|
||||||
@ -425,7 +425,7 @@ const DNS: React.FC = () => {
|
|||||||
<Input
|
<Input
|
||||||
size="sm"
|
size="sm"
|
||||||
className="w-[100px]"
|
className="w-[100px]"
|
||||||
value={values.fallbackGeoipCode}
|
value={typeof values.fallbackGeoipCode === 'string' ? values.fallbackGeoipCode : ''}
|
||||||
placeholder="CN"
|
placeholder="CN"
|
||||||
onValueChange={(v) => {
|
onValueChange={(v) => {
|
||||||
setValues({ ...values, fallbackGeoipCode: v })
|
setValues({ ...values, fallbackGeoipCode: v })
|
||||||
|
|||||||
@ -58,7 +58,7 @@ const Logs: React.FC = () => {
|
|||||||
localStorage.setItem(LOGS_FILTER_KEY, filter)
|
localStorage.setItem(LOGS_FILTER_KEY, filter)
|
||||||
}, [filter])
|
}, [filter])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect((): void | (() => void) => {
|
||||||
if (!trace) {
|
if (!trace) {
|
||||||
const container = containerRef.current
|
const container = containerRef.current
|
||||||
if (container) {
|
if (container) {
|
||||||
|
|||||||
@ -92,7 +92,7 @@ const Override: React.FC = () => {
|
|||||||
if (event.dataTransfer?.files) {
|
if (event.dataTransfer?.files) {
|
||||||
const file = event.dataTransfer.files[0]
|
const file = event.dataTransfer.files[0]
|
||||||
if (file.name.endsWith('.js') || file.name.endsWith('.yaml')) {
|
if (file.name.endsWith('.js') || file.name.endsWith('.yaml')) {
|
||||||
const content = await readTextFile(file.path)
|
const content = await readTextFile((file as File & { path: string }).path)
|
||||||
try {
|
try {
|
||||||
await addOverrideItem({
|
await addOverrideItem({
|
||||||
name: file.name,
|
name: file.name,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user