Signed-off-by: -LAN- <laipz8200@outlook.com> Co-authored-by: Hash Brown <hi@xzd.me> Co-authored-by: crazywoola <427733928@qq.com> Co-authored-by: GareArc <chen4851@purdue.edu> Co-authored-by: Byron.wang <byron@dify.ai> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: -LAN- <laipz8200@outlook.com> Co-authored-by: Garfield Dai <dai.hai@foxmail.com> Co-authored-by: KVOJJJin <jzongcode@gmail.com> Co-authored-by: Alexi.F <654973939@qq.com> Co-authored-by: Xiyuan Chen <52963600+GareArc@users.noreply.github.com> Co-authored-by: kautsar_masuara <61046989+izon-masuara@users.noreply.github.com> Co-authored-by: achmad-kautsar <achmad.kautsar@insignia.co.id> Co-authored-by: Xin Zhang <sjhpzx@gmail.com> Co-authored-by: kelvintsim <83445753+kelvintsim@users.noreply.github.com> Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: Zixuan Cheng <61724187+Theysua@users.noreply.github.com>
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
'use client'
|
|
import type { FC, PropsWithChildren } from 'react'
|
|
import useAccessControlStore from '../../../../context/access-control-store'
|
|
import type { AccessMode } from '@/models/access-control'
|
|
|
|
type AccessControlItemProps = PropsWithChildren<{
|
|
type: AccessMode
|
|
}>
|
|
|
|
const AccessControlItem: FC<AccessControlItemProps> = ({ type, children }) => {
|
|
const { currentMenu, setCurrentMenu } = useAccessControlStore(s => ({ currentMenu: s.currentMenu, setCurrentMenu: s.setCurrentMenu }))
|
|
if (currentMenu !== type) {
|
|
return <div
|
|
className="cursor-pointer rounded-[10px] border-[1px]
|
|
border-components-option-card-option-border bg-components-option-card-option-bg
|
|
hover:border-components-option-card-option-border-hover hover:bg-components-option-card-option-bg-hover"
|
|
onClick={() => setCurrentMenu(type)} >
|
|
{children}
|
|
</div>
|
|
}
|
|
|
|
return <div className="rounded-[10px] border-[1.5px]
|
|
border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg shadow-sm">
|
|
{children}
|
|
</div>
|
|
}
|
|
|
|
AccessControlItem.displayName = 'AccessControlItem'
|
|
|
|
export default AccessControlItem
|