mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2025-12-27 05:00:30 +08:00
style: add indicator icons to expandable items in settings page
This commit is contained in:
parent
3aff005f81
commit
b1d02c9f82
@ -28,6 +28,7 @@
|
|||||||
### 样式调整 (Sytle)
|
### 样式调整 (Sytle)
|
||||||
- 改进 logo 设计
|
- 改进 logo 设计
|
||||||
- 卡片尺寸
|
- 卡片尺寸
|
||||||
|
- 设置页可展开项增加指示图标
|
||||||
|
|
||||||
## 1.8.7
|
## 1.8.7
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import React from 'react'
|
import React, { useState } from 'react'
|
||||||
import { Accordion, AccordionItem, Card, CardBody } from '@heroui/react'
|
import { Accordion, AccordionItem, Card, CardBody } from '@heroui/react'
|
||||||
|
import { IoIosArrowBack } from 'react-icons/io'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
title?: string
|
title?: string
|
||||||
@ -8,17 +9,35 @@ interface Props {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const SettingCard: React.FC<Props> = (props) => {
|
const SettingCard: React.FC<Props> = (props) => {
|
||||||
|
const [isOpen, setIsOpen] = useState(false)
|
||||||
|
|
||||||
return !props.title ? (
|
return !props.title ? (
|
||||||
<Card className={`${props.className} m-2`}>
|
<Card className={`${props.className} m-2`}>
|
||||||
<CardBody>{props.children}</CardBody>
|
<CardBody>{props.children}</CardBody>
|
||||||
</Card>
|
</Card>
|
||||||
) : (
|
) : (
|
||||||
<Accordion isCompact className={`${props.className} my-2`} variant="splitted" {...props}>
|
<Accordion
|
||||||
|
isCompact
|
||||||
|
className={`${props.className} my-2`}
|
||||||
|
variant="splitted"
|
||||||
|
onSelectionChange={(keys) => {
|
||||||
|
setIsOpen(keys instanceof Set ? keys.size > 0 : false)
|
||||||
|
}}
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
<AccordionItem
|
<AccordionItem
|
||||||
className="data-[open=true]:pb-2"
|
className="data-[open=true]:pb-2"
|
||||||
hideIndicator
|
hideIndicator
|
||||||
keepContentMounted
|
keepContentMounted
|
||||||
title={props.title}
|
textValue={props.title}
|
||||||
|
title={
|
||||||
|
<div className="flex justify-between items-center w-full">
|
||||||
|
<span>{props.title}</span>
|
||||||
|
<IoIosArrowBack
|
||||||
|
className={`transition duration-200 ml-2 h-[32px] text-lg text-foreground-500 ${isOpen ? '-rotate-90' : ''}`}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
>
|
>
|
||||||
{props.children}
|
{props.children}
|
||||||
</AccordionItem>
|
</AccordionItem>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user