Skip to content

Commit 7bc1eab

Browse files
committed
feat: 토글 버튼 없음 로직 추가
1 parent 5740778 commit 7bc1eab

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed
Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
import { useState } from 'react';
22

3-
type ToggleButtonsProps = {
4-
initialValues?: string[];
5-
onToggle: (value: string[]) => void;
3+
type ToggleButtonsProps<T> = {
4+
initialValues?: T[];
5+
onToggle: (value: T[]) => void;
66
isMultipleSelect: boolean;
77
};
8-
export const useToggleButtons = ({
9-
initialValues = [],
8+
9+
export const useToggleButtons = <T>({
10+
initialValues = [] as T[],
1011
isMultipleSelect,
1112
onToggle,
12-
}: ToggleButtonsProps) => {
13-
const [selectedItems, setSelectedItems] = useState<string[]>(initialValues);
13+
}: ToggleButtonsProps<T>) => {
14+
const [selectedItems, setSelectedItems] = useState<T[]>(initialValues);
15+
16+
const handleToggle = (value: T) => {
17+
if (!value) {
18+
setSelectedItems([]);
19+
onToggle([]);
20+
return;
21+
}
1422

15-
const handleToggle = (value: string) => {
1623
const updatedItems = isMultipleSelect
1724
? selectedItems.includes(value)
1825
? selectedItems.filter((item) => item !== value)
@@ -23,5 +30,5 @@ export const useToggleButtons = ({
2330
onToggle(updatedItems);
2431
};
2532

26-
return { handleToggle, selectedItems };
33+
return { handleToggle, selectedItems, setSelectedItems };
2734
};

src/consts/positions.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
11
export const POSITIONS = ['C', 'PF', 'SF', 'PG', 'SG', '없음'];
2+
3+
export const POSITIONS_BUTTON = {
4+
C: 'C',
5+
PF: 'PF',
6+
SF: 'SF',
7+
PG: 'PG',
8+
SG: 'SG',
9+
없음: '',
10+
};

0 commit comments

Comments
 (0)