diff --git a/packages/dashboard-v2/src/components/Tabs/TabPanel.js b/packages/dashboard-v2/src/components/Tabs/TabPanel.js
index 46307431..f9907074 100644
--- a/packages/dashboard-v2/src/components/Tabs/TabPanel.js
+++ b/packages/dashboard-v2/src/components/Tabs/TabPanel.js
@@ -1,19 +1,37 @@
import PropTypes from "prop-types";
+import { useEffect, useState } from "react";
/**
* Besides documented props, it accepts all HMTL attributes a `
` element does.
*/
-export const TabPanel = ({ children, active, tabId, ...props }) => (
-
- {children}
-
-);
+export const TabPanel = ({ children, active, tabId, ...props }) => {
+ const [wasActivated, setWasActivated] = useState(false);
+
+ useEffect(() => {
+ if (active) {
+ setWasActivated(true);
+ }
+ }, [active]);
+
+ // If the TabPanel was never activated, let's not render its children at all.
+ // We'll only render them after the first activation and then won't unmount them
+ // unless the entire TabPanel is unmounted, too.
+ if (!active && !wasActivated) {
+ return null;
+ }
+
+ return (
+
+ {children}
+
+ );
+};
TabPanel.propTypes = {
/**