From 50c182d3d3944a2f1c06d1408033f75f9e7d7833 Mon Sep 17 00:00:00 2001 From: hyu-dev Date: Sun, 19 Oct 2025 16:43:52 +0900 Subject: [PATCH 01/10] Enhance components Checkbox --- .../src/components/Checkbox/index.tsx | 75 ++++++++++++++----- 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/packages/components/src/components/Checkbox/index.tsx b/packages/components/src/components/Checkbox/index.tsx index 1359438b..aea68d0f 100644 --- a/packages/components/src/components/Checkbox/index.tsx +++ b/packages/components/src/components/Checkbox/index.tsx @@ -1,5 +1,7 @@ +'use client' + import { Box, css, Flex, Input, Text } from '@devup-ui/react' -import { ComponentProps, useId } from 'react' +import { ComponentProps, useId, useState } from 'react' import { CheckIcon } from './CheckIcon' @@ -20,14 +22,39 @@ export function Checkbox({ children, disabled, checked, + defaultChecked = false, colors, onChange, ...props }: CheckboxProps) { const generateId = useId() + const [innerChecked, setInnerChecked] = useState(defaultChecked) + const isChecked = checked ?? innerChecked + + const handleChange = (value: boolean) => { + setInnerChecked(value) + onChange?.(value) + } + return ( - - + +