summaryrefslogtreecommitdiff
path: root/packages/integrations/react/client.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/react/client.js')
-rw-r--r--packages/integrations/react/client.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/packages/integrations/react/client.js b/packages/integrations/react/client.js
index d8948e7bb..dbd32c0c5 100644
--- a/packages/integrations/react/client.js
+++ b/packages/integrations/react/client.js
@@ -31,10 +31,14 @@ export default (element) =>
}
if (client === 'only') {
return startTransition(() => {
- createRoot(element).render(componentEl);
+ const root = createRoot(element);
+ root.render(componentEl);
+ element.addEventListener('astro:unmount', () => root.unmount(), { once: true });
});
}
- return startTransition(() => {
- hydrateRoot(element, componentEl, renderOptions);
+ startTransition(() => {
+ const root = hydrateRoot(element, componentEl, renderOptions);
+ root.render(componentEl);
+ element.addEventListener('astro:unmount', () => root.unmount(), { once: true });
});
};