2025-05-13 11:07:31 +08:00
|
|
|
import React from 'react'
|
|
|
|
|
import { RiCheckLine } from '@remixicon/react'
|
|
|
|
|
|
|
|
|
|
type PermissionItemProps = {
|
|
|
|
|
leftIcon: React.ReactNode
|
|
|
|
|
text: string
|
|
|
|
|
onClick: () => void
|
|
|
|
|
isSelected: boolean
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const PermissionItem = ({
|
|
|
|
|
leftIcon,
|
|
|
|
|
text,
|
|
|
|
|
onClick,
|
|
|
|
|
isSelected,
|
|
|
|
|
}: PermissionItemProps) => {
|
|
|
|
|
return (
|
|
|
|
|
<div
|
|
|
|
|
className='flex cursor-pointer items-center gap-x-1 rounded-lg px-2 py-1 hover:bg-state-base-hover'
|
|
|
|
|
onClick={onClick}
|
|
|
|
|
>
|
|
|
|
|
{leftIcon}
|
2025-05-16 15:52:28 +08:00
|
|
|
<div className='system-md-regular grow px-1 text-text-secondary'>
|
2025-05-13 11:07:31 +08:00
|
|
|
{text}
|
|
|
|
|
</div>
|
|
|
|
|
{isSelected && <RiCheckLine className='size-4 text-text-accent' />}
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default React.memo(PermissionItem)
|