From 77950e48c76f4a3b29d01831d43039caba29888a Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期二, 18 十一月 2025 14:12:42 +0800
Subject: [PATCH] 修改
---
app/components/base/checkbox/index.tsx | 49 ++++++++++++++++++++++++-------------------------
1 files changed, 24 insertions(+), 25 deletions(-)
diff --git a/app/components/base/checkbox/index.tsx b/app/components/base/checkbox/index.tsx
index 3e47967..df2c368 100644
--- a/app/components/base/checkbox/index.tsx
+++ b/app/components/base/checkbox/index.tsx
@@ -1,49 +1,48 @@
import { RiCheckLine } from '@remixicon/react'
+import s from './index.module.css'
import cn from '@/utils/classnames'
-import IndeterminateIcon from './assets/indeterminate-icon'
type CheckboxProps = {
- id?: string
checked?: boolean
onCheck?: () => void
className?: string
disabled?: boolean
- indeterminate?: boolean
+ mixed?: boolean
}
-const Checkbox = ({
- id,
- checked,
- onCheck,
- className,
- disabled,
- indeterminate,
-}: CheckboxProps) => {
- const checkClassName = (checked || indeterminate)
- ? 'bg-components-checkbox-bg text-components-checkbox-icon hover:bg-components-checkbox-bg-hover'
- : 'border border-components-checkbox-border bg-components-checkbox-bg-unchecked hover:bg-components-checkbox-bg-unchecked-hover hover:border-components-checkbox-border-hover'
- const disabledClassName = (checked || indeterminate)
- ? 'cursor-not-allowed bg-components-checkbox-bg-disabled-checked text-components-checkbox-icon-disabled hover:bg-components-checkbox-bg-disabled-checked'
- : 'cursor-not-allowed border-components-checkbox-border-disabled bg-components-checkbox-bg-disabled hover:border-components-checkbox-border-disabled hover:bg-components-checkbox-bg-disabled'
-
+const Checkbox = ({ checked, onCheck, className, disabled, mixed }: CheckboxProps) => {
+ if (!checked) {
+ return (
+ <div
+ className={cn(
+ 'w-4 h-4 rounded-[4px] bg-components-checkbox-bg-unchecked border border-components-checkbox-border hover:bg-components-checkbox-bg-unchecked-hover hover:border-components-checkbox-border-hover shadow-xs cursor-pointer',
+ disabled && 'border-components-checkbox-border-disabled bg-components-checkbox-bg-disabled hover:border-components-checkbox-border-disabled hover:bg-components-checkbox-bg-disabled cursor-not-allowed',
+ mixed && s.mixed,
+ className,
+ )}
+ onClick={() => {
+ if (disabled)
+ return
+ onCheck?.()
+ }}
+ ></div>
+ )
+ }
return (
<div
- id={id}
className={cn(
- 'flex h-4 w-4 cursor-pointer items-center justify-center rounded-[4px] shadow-xs shadow-shadow-shadow-3',
- checkClassName,
- disabled && disabledClassName,
+ 'w-4 h-4 flex items-center justify-center rounded-[4px] bg-components-checkbox-bg hover:bg-components-checkbox-bg-hover text-components-checkbox-icon shadow-xs cursor-pointer',
+ disabled && 'bg-components-checkbox-bg-disabled-checked hover:bg-components-checkbox-bg-disabled-checked text-components-checkbox-icon-disabled cursor-not-allowed',
className,
)}
onClick={() => {
if (disabled)
return
+
onCheck?.()
}}
- data-testid={`checkbox-${id}`}
>
- {!checked && indeterminate && <IndeterminateIcon />}
- {checked && <RiCheckLine className='h-3 w-3' data-testid={`check-icon-${id}`} />}
+ <RiCheckLine className={cn('w-3 h-3')} />
</div>
)
}
--
Gitblit v1.8.0