Skip to content

Commit b8530aa

Browse files
committed
Fix: 바텀시트 초기 렌더링 시 애니메이션 적용 안 되는 문제 해결
1 parent 3b6a1bb commit b8530aa

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

src/components/BottomSheet/index.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,17 @@ const BottomSheet: React.FC<BottomSheetProps> = ({
1111
}) => {
1212
const startY = useRef<number | null>(null);
1313
const [initialRender, setInitialRender] = useState(true);
14+
const [isRendered, setIsRendered] = useState(false);
1415
const [currentTranslateY, setCurrentTranslateY] = useState(0);
1516
const [isDragging, setIsDragging] = useState<boolean>(false);
1617

1718
useEffect(() => {
1819
if (isOpenBottomSheet) {
1920
setInitialRender(false);
21+
setIsRendered(true);
2022
setCurrentTranslateY(0); // 초기화
23+
} else {
24+
setIsRendered(false);
2125
}
2226
}, [isOpenBottomSheet]);
2327

@@ -105,7 +109,7 @@ const BottomSheet: React.FC<BottomSheetProps> = ({
105109

106110
return (
107111
<BottomSheetWrapper
108-
$isOpenBottomSheet={isOpenBottomSheet}
112+
$isOpenBottomSheet={isRendered}
109113
onClick={(e: React.MouseEvent) => {
110114
// BottomSheet 외부를 클릭할 경우 BottomSheet 닫음
111115
if (!isDragging && e.target === e.currentTarget) {
@@ -117,7 +121,7 @@ const BottomSheet: React.FC<BottomSheetProps> = ({
117121
onPointerDown={onPointerDown}
118122
onTouchStart={onPointerDown}
119123
$currentTranslateY={currentTranslateY}
120-
$isOpenBottomSheet={isOpenBottomSheet}
124+
$isOpenBottomSheet={isRendered}
121125
$isHandlerVisible={isHandlerVisible}
122126
>
123127
{isHandlerVisible && <Handler />}

src/components/BottomSheet/styles.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const BottomSheetWrapper = styled.div<{ $isOpenBottomSheet: boolean }>`
1212
visibility: ${({ $isOpenBottomSheet }) => ($isOpenBottomSheet ? 'visible' : 'hidden')};
1313
transition:
1414
opacity 0.2s ease-out,
15-
visibility 0.2s ease-out;
15+
visibility 0.3s ease-out;
1616
`;
1717

1818
export const BottomSheetLayout = styled.div<{
@@ -36,7 +36,7 @@ export const BottomSheetLayout = styled.div<{
3636
-50%,
3737
${({ $currentTranslateY, $isOpenBottomSheet }) => ($isOpenBottomSheet ? `${$currentTranslateY}px` : '100%')}
3838
);
39-
transition: transform 0.3s ease-in-out;
39+
transition: transform 0.3s;
4040
`;
4141

4242
export const Handler = styled.hr`

0 commit comments

Comments
 (0)