mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2025-12-27 21:20:29 +08:00
optimize override
This commit is contained in:
parent
772ea50311
commit
0da787c228
@ -6,14 +6,18 @@ import {
|
|||||||
ModalFooter,
|
ModalFooter,
|
||||||
Button,
|
Button,
|
||||||
Input,
|
Input,
|
||||||
Select,
|
Switch,
|
||||||
SelectItem,
|
Dropdown,
|
||||||
Switch
|
DropdownTrigger,
|
||||||
|
DropdownMenu,
|
||||||
|
DropdownItem
|
||||||
} from '@nextui-org/react'
|
} from '@nextui-org/react'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import SettingItem from '../base/base-setting-item'
|
import SettingItem from '../base/base-setting-item'
|
||||||
import { useOverrideConfig } from '@renderer/hooks/use-override-config'
|
import { useOverrideConfig } from '@renderer/hooks/use-override-config'
|
||||||
import { restartCore } from '@renderer/utils/ipc'
|
import { restartCore } from '@renderer/utils/ipc'
|
||||||
|
import { MdDeleteForever } from 'react-icons/md'
|
||||||
|
import { FaPlus } from 'react-icons/fa6'
|
||||||
interface Props {
|
interface Props {
|
||||||
item: IProfileItem
|
item: IProfileItem
|
||||||
updateProfileItem: (item: IProfileItem) => Promise<void>
|
updateProfileItem: (item: IProfileItem) => Promise<void>
|
||||||
@ -92,24 +96,58 @@ const EditInfoModal: React.FC<Props> = (props) => {
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<SettingItem title="覆写">
|
<SettingItem title="覆写">
|
||||||
<Select
|
<div>
|
||||||
className="w-[200px]"
|
{values.override?.map((i) => {
|
||||||
|
if (!overrideItems.find((t) => t.id === i)) return null
|
||||||
|
return (
|
||||||
|
<div className="flex mb-2" key={i}>
|
||||||
|
<Button disabled fullWidth variant="flat" size="sm">
|
||||||
|
{overrideItems.find((t) => t.id === i)?.name}
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
color="warning"
|
||||||
|
variant="flat"
|
||||||
|
className="ml-2"
|
||||||
size="sm"
|
size="sm"
|
||||||
selectionMode="multiple"
|
onPress={() => {
|
||||||
selectedKeys={new Set(values.override || [])}
|
|
||||||
onSelectionChange={(v) => {
|
|
||||||
setValues({
|
setValues({
|
||||||
...values,
|
...values,
|
||||||
override: Array.from(v)
|
override: values.override
|
||||||
.map((i) => i.toString())
|
?.filter((i) => overrideItems.find((t) => t.id === i))
|
||||||
.filter((i) => overrideItems.find((t) => t.id === i))
|
.filter((t) => t !== i)
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{overrideItems.map((i) => (
|
<MdDeleteForever className="text-lg" />
|
||||||
<SelectItem key={i.id}>{i.name}</SelectItem>
|
</Button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
<Dropdown>
|
||||||
|
<DropdownTrigger>
|
||||||
|
<Button fullWidth size="sm" variant="flat" color="default">
|
||||||
|
<FaPlus />
|
||||||
|
</Button>
|
||||||
|
</DropdownTrigger>
|
||||||
|
<DropdownMenu
|
||||||
|
emptyContent="没有可用的覆写"
|
||||||
|
onAction={(key) => {
|
||||||
|
setValues({
|
||||||
|
...values,
|
||||||
|
override: Array.from(values.override || [])
|
||||||
|
.filter((i) => overrideItems.find((t) => t.id === i))
|
||||||
|
.concat(key.toString())
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{overrideItems
|
||||||
|
.filter((i) => !values.override?.includes(i.id))
|
||||||
|
.map((i) => (
|
||||||
|
<DropdownItem key={i.id}>{i.name}</DropdownItem>
|
||||||
))}
|
))}
|
||||||
</Select>
|
</DropdownMenu>
|
||||||
|
</Dropdown>
|
||||||
|
</div>
|
||||||
</SettingItem>
|
</SettingItem>
|
||||||
</ModalBody>
|
</ModalBody>
|
||||||
<ModalFooter>
|
<ModalFooter>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user