Skip to content

Commit 9565d87

Browse files
committed
Toast SSR fix refactored
1 parent 0ed14ce commit 9565d87

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

packages/lib/src/toast/ToastsQueue.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const ToastsQueue = styled.section`
2727

2828
export default function DxcToastsQueue({ children, duration = 3000 }: ToastsQueuePropsType) {
2929
const [toasts, setToasts] = useState<QueuedToast[]>([]);
30-
const [isMounted, setIsMounted] = useState(false); // Next.js SSR mounting issue
30+
const [portalContainer, setPortalContainer] = useState<HTMLElement | null>(null);
3131
const adjustedDuration = useMemo(() => (duration > 5000 ? 5000 : duration < 3000 ? 3000 : duration), [duration]);
3232
const id = useId();
3333

@@ -45,13 +45,13 @@ export default function DxcToastsQueue({ children, duration = 3000 }: ToastsQueu
4545
);
4646

4747
useEffect(() => {
48-
setIsMounted(true);
48+
setPortalContainer(document?.getElementById(`toasts-${id}-portal`));
4949
}, []);
5050

5151
return (
5252
<ToastContext.Provider value={add}>
5353
<div id={`toasts-${id}-portal`} style={{ position: "absolute" }} />
54-
{isMounted &&
54+
{portalContainer &&
5555
createPortal(
5656
<ToastsQueue>
5757
{toasts.map((t) => (

0 commit comments

Comments
 (0)