Skip to content

Commit 8b5f3ae

Browse files
fix: Dialog 開閉時にコンソールエラーが発生する問題を修正 (#4778)
Co-authored-by: Hiroki Miyaji <[email protected]>
1 parent d957a5a commit 8b5f3ae

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

packages/smarthr-ui/src/components/AccordionPanel/AccordionPanelContent.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,9 @@ export const AccordionPanelContent: FC<Props & ElementProps> = ({ className, ...
3131
const isInclude = getIsInclude(expandedItems, name)
3232
const wrapperRef = useRef<HTMLDivElement>(null)
3333
const styles = useMemo(() => accordionPanelContent({ className }), [className])
34-
const nodeRef = useRef<HTMLDivElement>(null)
3534

3635
return (
37-
<Transition in={isInclude} timeout={150} nodeRef={nodeRef}>
36+
<Transition in={isInclude} timeout={150} nodeRef={wrapperRef}>
3837
{(status) => (
3938
<div
4039
{...props}

packages/smarthr-ui/src/components/Dialog/DialogOverlap.tsx

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
import React, { FC, PropsWithChildren, ReactNode, useEffect, useMemo, useState } from 'react'
1+
import React, {
2+
FC,
3+
PropsWithChildren,
4+
ReactNode,
5+
useEffect,
6+
useMemo,
7+
useRef,
8+
useState,
9+
} from 'react'
210
import { CSSTransition } from 'react-transition-group'
311
import { tv } from 'tailwind-variants'
412

@@ -28,6 +36,7 @@ const dialogOverlap = tv({
2836
export const DialogOverlap: FC<Props> = ({ isOpen, children }) => {
2937
const styles = useMemo(() => dialogOverlap(), [])
3038
const [childrenBuffer, setChildrenBuffer] = useState<ReactNode>(null)
39+
const nodeRef = useRef<HTMLDivElement>(null)
3140

3241
useEffect(() => {
3342
if (isOpen) {
@@ -36,8 +45,16 @@ export const DialogOverlap: FC<Props> = ({ isOpen, children }) => {
3645
}, [isOpen, children])
3746

3847
return (
39-
<CSSTransition classNames="shr-dialog-transition" in={isOpen} timeout={300} unmountOnExit>
40-
<div className={styles}>{isOpen ? children : childrenBuffer}</div>
48+
<CSSTransition
49+
classNames="shr-dialog-transition"
50+
in={isOpen}
51+
timeout={300}
52+
unmountOnExit
53+
nodeRef={nodeRef}
54+
>
55+
<div ref={nodeRef} className={styles}>
56+
{isOpen ? children : childrenBuffer}
57+
</div>
4158
</CSSTransition>
4259
)
4360
}

0 commit comments

Comments
 (0)