diff --git a/webapp/channels/src/components/permissions_gates/any_team_permission_gate/__snapshots__/any_team_permission_gate.test.tsx.snap b/webapp/channels/src/components/permissions_gates/any_team_permission_gate/__snapshots__/any_team_permission_gate.test.tsx.snap
index b2e12f0060..ca7f6a145d 100644
--- a/webapp/channels/src/components/permissions_gates/any_team_permission_gate/__snapshots__/any_team_permission_gate.test.tsx.snap
+++ b/webapp/channels/src/components/permissions_gates/any_team_permission_gate/__snapshots__/any_team_permission_gate.test.tsx.snap
@@ -13,24 +13,25 @@ exports[`components/permissions_gates TeamPermissionGate should match snapshot w
}
}
>
-
-
-
+ >
+
+
+
`;
@@ -47,7 +48,7 @@ exports[`components/permissions_gates TeamPermissionGate should match snapshot w
}
}
>
-
-
Valid permission (shown)
-
-
+
+
`;
@@ -87,17 +87,16 @@ exports[`components/permissions_gates TeamPermissionGate should match snapshot w
}
}
>
-
-
Valid permission (shown)
-
-
+
+
`;
@@ -125,7 +124,7 @@ exports[`components/permissions_gates TeamPermissionGate should match snapshot w
}
}
>
-
-
-
+ >
+
+
+
`;
@@ -160,17 +161,16 @@ exports[`components/permissions_gates TeamPermissionGate should match snapshot w
}
}
>
-
-
Valid permission (shown)
-
-
+
+
`;
@@ -198,17 +198,16 @@ exports[`components/permissions_gates TeamPermissionGate should match snapshot w
}
}
>
-
-
Valid permission (shown)
-
-
+
+
`;
@@ -236,7 +235,7 @@ exports[`components/permissions_gates TeamPermissionGate should match snapshot w
}
}
>
-
-
-
+ >
+
+
+
`;
@@ -271,7 +272,7 @@ exports[`components/permissions_gates TeamPermissionGate should match snapshot w
}
}
>
-
-
Invalid permission but inverted (shown)
-
-
+
+
`;
diff --git a/webapp/channels/src/components/permissions_gates/any_team_permission_gate/any_team_permission_gate.tsx b/webapp/channels/src/components/permissions_gates/any_team_permission_gate/any_team_permission_gate.tsx
index 309890e06b..43095bd953 100644
--- a/webapp/channels/src/components/permissions_gates/any_team_permission_gate/any_team_permission_gate.tsx
+++ b/webapp/channels/src/components/permissions_gates/any_team_permission_gate/any_team_permission_gate.tsx
@@ -18,23 +18,20 @@ export type Props = {
/**
* Invert the permission (used for else)
*/
- invert: boolean;
+ invert?: boolean;
/**
* Content protected by the permissions gate
*/
children: React.ReactNode;
-}
+};
-export default class AnyTeamPermissionGate extends React.PureComponent {
- static defaultProps = {
- invert: false,
- };
+const AnyTeamPermissionGate = ({hasPermission, children, invert = false}: Props) => {
+ return (
+ <>
+ {hasPermission === invert ? null : children}
+ >
+ );
+};
- render() {
- if (this.props.hasPermission !== this.props.invert) {
- return this.props.children;
- }
- return null;
- }
-}
+export default React.memo(AnyTeamPermissionGate);