From 1ac6658515d0564b93c49909169a1915905f2ad7 Mon Sep 17 00:00:00 2001 From: jiyeon Date: Fri, 22 Sep 2023 00:50:32 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20style:=20follow=20code=20convent?= =?UTF-8?q?ion=20and=20eslint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/checkbox/src/components/Checkbox.tsx | 21 +++++++++++-------- .../checkbox/src/components/CheckboxGroup.tsx | 11 +++++++--- packages/checkbox/src/context.ts | 1 + .../checkbox/src/hooks/useKeyboardHandler.ts | 17 --------------- packages/checkbox/src/styles.ts | 10 +++------ packages/checkbox/src/types/base.ts | 2 ++ packages/checkbox/src/types/index.ts | 2 ++ .../checkbox/src/{types.ts => types/props.ts} | 5 +---- 8 files changed, 29 insertions(+), 40 deletions(-) delete mode 100644 packages/checkbox/src/hooks/useKeyboardHandler.ts create mode 100644 packages/checkbox/src/types/base.ts create mode 100644 packages/checkbox/src/types/index.ts rename packages/checkbox/src/{types.ts => types/props.ts} (73%) diff --git a/packages/checkbox/src/components/Checkbox.tsx b/packages/checkbox/src/components/Checkbox.tsx index 618c85e0..d3f7bbcc 100644 --- a/packages/checkbox/src/components/Checkbox.tsx +++ b/packages/checkbox/src/components/Checkbox.tsx @@ -1,12 +1,12 @@ /** @jsxImportSource @emotion/react */ import { createClassVariant } from '@jdesignlab/theme'; import { ThemeContext } from '@jdesignlab/j-provider'; -import type { CheckboxProps } from '../types'; import { useId, useRef, useContext, useEffect, forwardRef } from 'react'; +import { arrowKeyNavigationHandler, spaceKeyToggleHandler } from '@jdesignlab/react-utils'; import { CheckboxGroup } from './CheckboxGroup'; import { CheckboxGroupContext } from '../context'; import { checkboxWrapperStyle, checkboxInputStyle, checkboxLabelStyle } from '../styles'; -import { useKeyboardHandler } from '../hooks/useKeyboardHandler'; +import type { CheckboxProps } from '../types'; type ExtendedInputProps = CheckboxProps & { Group?: typeof CheckboxGroup }; export const Checkbox = Object.assign( @@ -19,11 +19,15 @@ export const Checkbox = Object.assign( const onKeyDown = (event: React.KeyboardEvent) => { if (!checkboxRef.current) return; - useKeyboardHandler({ - event, - parentScope: '[role="group"]', - selectorOfList: 'input[type="checkbox"]' - }); + const el = event.target as HTMLInputElement; + const spaceKeyAction = () => { + el.checked = !el.checked; + }; + const parentScope = '[role="group"]'; + const selectorOfList = 'input[type="checkbox"]'; + + spaceKeyToggleHandler({ event, action: spaceKeyAction }); + arrowKeyNavigationHandler({ event, parentScope, selectorOfList }); }; useEffect(() => { @@ -33,7 +37,7 @@ export const Checkbox = Object.assign( checkboxRef.current.checked = initialCheck; } } - }, [defaultValues, checkboxRef]); + }, [defaultValues, value, checkboxRef]); return (