diff --git a/webapp/channels/src/components/widgets/admin_console/admin_panel.scss b/webapp/channels/src/components/widgets/admin_console/admin_panel.scss
index 362facae9f..71aa053ce6 100644
--- a/webapp/channels/src/components/widgets/admin_console/admin_panel.scss
+++ b/webapp/channels/src/components/widgets/admin_console/admin_panel.scss
@@ -68,3 +68,21 @@
}
}
}
+
+.AdminPanelTogglable {
+ .AdminPanelTogglableContent {
+ display: grid;
+ grid-template-rows: 1fr;
+ transition: all 0.4s ease-in-out 0s;
+ }
+
+ &.closed {
+ .AdminPanelTogglableContent {
+ grid-template-rows: 0fr;
+ }
+ }
+
+ .AdminPanelTogglableContent .AdminPanelTogglableContentInner {
+ overflow: hidden;
+ }
+}
diff --git a/webapp/channels/src/components/widgets/admin_console/admin_panel_togglable.test.tsx b/webapp/channels/src/components/widgets/admin_console/admin_panel_togglable.test.tsx
index 31a5bc19ef..116064277e 100644
--- a/webapp/channels/src/components/widgets/admin_console/admin_panel_togglable.test.tsx
+++ b/webapp/channels/src/components/widgets/admin_console/admin_panel_togglable.test.tsx
@@ -44,7 +44,15 @@ describe('components/widgets/admin_console/AdminPanelTogglable', () => {
}
}
>
- Test
+
`);
});
@@ -77,7 +85,15 @@ describe('components/widgets/admin_console/AdminPanelTogglable', () => {
}
}
>
- Test
+
`);
});
diff --git a/webapp/channels/src/components/widgets/admin_console/admin_panel_togglable.tsx b/webapp/channels/src/components/widgets/admin_console/admin_panel_togglable.tsx
index a7a9ca8028..ebab29ae04 100644
--- a/webapp/channels/src/components/widgets/admin_console/admin_panel_togglable.tsx
+++ b/webapp/channels/src/components/widgets/admin_console/admin_panel_togglable.tsx
@@ -27,6 +27,8 @@ const AdminPanelTogglable = ({
id,
onToggle,
}: Props) => {
+ // The content is rendered in two divs: an outer one that uses CSS grid to trick the browser into animating height
+ // and an inner one to prevent the content from overflowing the grid.
return (
}
>
- {children}
+
);
};
diff --git a/webapp/channels/src/sass/components/_permissions.scss b/webapp/channels/src/sass/components/_permissions.scss
index 67008b7519..ceac93eece 100644
--- a/webapp/channels/src/sass/components/_permissions.scss
+++ b/webapp/channels/src/sass/components/_permissions.scss
@@ -29,14 +29,6 @@
text-decoration: none;
}
- &.closed {
- .permissions-tree {
- max-height: 0;
- padding: 0 1.5rem;
- overflow-y: hidden;
- }
- }
-
.no-team-schemes {
padding: 20px;
margin: 20px;
@@ -80,9 +72,7 @@
}
.permissions-tree {
- max-height: 2000px;
padding: 0.8em 1.5rem;
- transition: all 0.4s ease-in-out 0s;
&.guest {
.permission-row {