diff --git a/webapp/channels/src/components/admin_console/blockable_link/blockable_link.tsx b/webapp/channels/src/components/admin_console/blockable_link/blockable_link.tsx index e316937cd4..bd4c416d17 100644 --- a/webapp/channels/src/components/admin_console/blockable_link/blockable_link.tsx +++ b/webapp/channels/src/components/admin_console/blockable_link/blockable_link.tsx @@ -1,7 +1,8 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import React from 'react'; +import React, {useCallback} from 'react'; +import type {MouseEvent} from 'react'; import {NavLink} from 'react-router-dom'; import {getHistory} from 'utils/browser_history'; @@ -24,29 +25,26 @@ type Props = { className?: string; onClick?: (e: React.MouseEvent) => void; }; -export default class BlockableLink extends React.PureComponent { - private handleClick = (e: React.MouseEvent) => { - if (this.props.onClick) { - this.props.onClick(e); - } - if (this.props.blocked) { + +const BlockableLink = ({blocked, actions, onClick, to, ...restProps}: Props) => { + const handleClick = useCallback((e: MouseEvent) => { + onClick?.(e); + + if (blocked) { e.preventDefault(); - this.props.actions.deferNavigation(() => { - getHistory().push(this.props.to); + actions.deferNavigation(() => { + getHistory().push(to); }); } - }; + }, [actions, blocked, onClick, to]); - public render() { - const props = {...this.props}; - Reflect.deleteProperty(props, 'blocked'); - Reflect.deleteProperty(props, 'actions'); + return ( + + ); +}; - return ( - - ); - } -} +export default React.memo(BlockableLink); diff --git a/webapp/channels/src/components/admin_console/data_retention_settings/custom_policy_form/__snapshots__/custom_policy_form.test.tsx.snap b/webapp/channels/src/components/admin_console/data_retention_settings/custom_policy_form/__snapshots__/custom_policy_form.test.tsx.snap index a398b7fc5e..a5f24d720d 100644 --- a/webapp/channels/src/components/admin_console/data_retention_settings/custom_policy_form/__snapshots__/custom_policy_form.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/data_retention_settings/custom_policy_form/__snapshots__/custom_policy_form.test.tsx.snap @@ -8,7 +8,7 @@ exports[`components/admin_console/data_retention_settings/custom_policy_form sho withBackButton={true} >
- @@ -247,7 +247,7 @@ exports[`components/admin_console/data_retention_settings/custom_policy_form sho /> } /> - @@ -255,7 +255,7 @@ exports[`components/admin_console/data_retention_settings/custom_policy_form sho defaultMessage="Cancel" id="admin.data_retention.custom_policy.cancel" /> - +
`; @@ -268,7 +268,7 @@ exports[`components/admin_console/data_retention_settings/custom_policy_form sho withBackButton={true} >
- @@ -504,7 +504,7 @@ exports[`components/admin_console/data_retention_settings/custom_policy_form sho /> } /> - @@ -512,7 +512,7 @@ exports[`components/admin_console/data_retention_settings/custom_policy_form sho defaultMessage="Cancel" id="admin.data_retention.custom_policy.cancel" /> - +
`; diff --git a/webapp/channels/src/components/admin_console/data_retention_settings/global_policy_form/__snapshots__/global_policy_form.test.tsx.snap b/webapp/channels/src/components/admin_console/data_retention_settings/global_policy_form/__snapshots__/global_policy_form.test.tsx.snap index b3823d2ae3..33457912eb 100644 --- a/webapp/channels/src/components/admin_console/data_retention_settings/global_policy_form/__snapshots__/global_policy_form.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/data_retention_settings/global_policy_form/__snapshots__/global_policy_form.test.tsx.snap @@ -8,7 +8,7 @@ exports[`components/PluginManagement should match snapshot 1`] = ` withBackButton={true} >
- @@ -220,7 +220,7 @@ exports[`components/PluginManagement should match snapshot 1`] = ` /> } /> - @@ -228,7 +228,7 @@ exports[`components/PluginManagement should match snapshot 1`] = ` defaultMessage="Cancel" id="admin.data_retention.custom_policy.cancel" /> - +
`; diff --git a/webapp/channels/src/components/admin_console/group_settings/group_details/__snapshots__/group_details.test.tsx.snap b/webapp/channels/src/components/admin_console/group_settings/group_details/__snapshots__/group_details.test.tsx.snap index c4422e3dc4..38ead90f3a 100644 --- a/webapp/channels/src/components/admin_console/group_settings/group_details/__snapshots__/group_details.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/group_settings/group_details/__snapshots__/group_details.test.tsx.snap @@ -8,7 +8,7 @@ exports[`components/admin_console/group_settings/group_details/GroupDetails shou withBackButton={true} >
- @@ -158,7 +158,7 @@ exports[`components/admin_console/group_settings/group_details/GroupDetails shou withBackButton={true} >
- @@ -307,7 +307,7 @@ exports[`components/admin_console/group_settings/group_details/GroupDetails shou withBackButton={true} >
- @@ -445,7 +445,7 @@ exports[`components/admin_console/group_settings/group_details/GroupDetails shou withBackButton={true} >
- diff --git a/webapp/channels/src/components/admin_console/permission_schemes_settings/permission_system_scheme_settings/__snapshots__/permission_system_scheme_settings.test.tsx.snap b/webapp/channels/src/components/admin_console/permission_schemes_settings/permission_system_scheme_settings/__snapshots__/permission_system_scheme_settings.test.tsx.snap index 58f8aedf04..b377a64932 100644 --- a/webapp/channels/src/components/admin_console/permission_schemes_settings/permission_system_scheme_settings/__snapshots__/permission_system_scheme_settings.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/permission_schemes_settings/permission_system_scheme_settings/__snapshots__/permission_system_scheme_settings.test.tsx.snap @@ -151,7 +151,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ withBackButton={true} >
- @@ -397,7 +397,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ saving={false} savingMessage="Saving Config..." /> - @@ -405,7 +405,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ defaultMessage="Cancel" id="admin.permissions.permissionSchemes.cancel" /> - +
- @@ -708,7 +708,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ saving={false} savingMessage="Saving Config..." /> - @@ -716,7 +716,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ defaultMessage="Cancel" id="admin.permissions.permissionSchemes.cancel" /> - +
- @@ -1019,7 +1019,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ saving={false} savingMessage="Saving Config..." /> - @@ -1027,7 +1027,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ defaultMessage="Cancel" id="admin.permissions.permissionSchemes.cancel" /> - +
- @@ -1330,7 +1330,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ saving={false} savingMessage="Saving Config..." /> - @@ -1338,7 +1338,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_system_ defaultMessage="Cancel" id="admin.permissions.permissionSchemes.cancel" /> - +
- @@ -287,7 +287,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc saving={false} savingMessage="Saving Config..." /> - @@ -295,7 +295,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc defaultMessage="Cancel" id="admin.permissions.permissionSchemes.cancel" /> - +
@@ -358,7 +358,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc withBackButton={true} >
- @@ -634,7 +634,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc saving={false} savingMessage="Saving Config..." /> - @@ -642,7 +642,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc defaultMessage="Cancel" id="admin.permissions.permissionSchemes.cancel" /> - +
@@ -705,7 +705,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc withBackButton={true} >
- @@ -983,7 +983,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc saving={false} savingMessage="Saving Config..." /> - @@ -991,7 +991,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc defaultMessage="Cancel" id="admin.permissions.permissionSchemes.cancel" /> - +
@@ -1120,7 +1120,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc withBackButton={true} >
- @@ -1398,7 +1398,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc saving={false} savingMessage="Saving Config..." /> - @@ -1406,7 +1406,7 @@ exports[`components/admin_console/permission_schemes_settings/permission_team_sc defaultMessage="Cancel" id="admin.permissions.permissionSchemes.cancel" /> - +
diff --git a/webapp/channels/src/components/admin_console/system_roles/system_role/__snapshots__/system_role.test.tsx.snap b/webapp/channels/src/components/admin_console/system_roles/system_role/__snapshots__/system_role.test.tsx.snap index 8a76e1b03e..68629a39ba 100644 --- a/webapp/channels/src/components/admin_console/system_roles/system_role/__snapshots__/system_role.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/system_roles/system_role/__snapshots__/system_role.test.tsx.snap @@ -8,7 +8,7 @@ exports[`admin_console/system_role should match snapshot 1`] = ` withBackButton={true} >
- @@ -73,7 +73,7 @@ exports[`admin_console/system_role should match snapshot with isLicensedForCloud withBackButton={true} >
- diff --git a/webapp/channels/src/components/admin_console/system_user_detail/__snapshots__/system_user_detail.test.tsx.snap b/webapp/channels/src/components/admin_console/system_user_detail/__snapshots__/system_user_detail.test.tsx.snap index 7454856b48..43e42f23d8 100644 --- a/webapp/channels/src/components/admin_console/system_user_detail/__snapshots__/system_user_detail.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/system_user_detail/__snapshots__/system_user_detail.test.tsx.snap @@ -8,7 +8,7 @@ exports[`components/admin_console/system_user_detail should match default snapsh withBackButton={true} >
- @@ -244,7 +244,7 @@ exports[`components/admin_console/system_user_detail should match snapshot if LD withBackButton={true} >
- @@ -482,7 +482,7 @@ exports[`components/admin_console/system_user_detail should match snapshot if MF withBackButton={true} >
- @@ -726,7 +726,7 @@ exports[`components/admin_console/system_user_detail should match snapshot if SA withBackButton={true} >
- @@ -964,7 +964,7 @@ exports[`components/admin_console/system_user_detail should match snapshot if no withBackButton={true} >
- @@ -1200,7 +1200,7 @@ exports[`components/admin_console/system_user_detail should match snapshot if us withBackButton={true} >
- diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/__snapshots__/channel_details.test.tsx.snap b/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/__snapshots__/channel_details.test.tsx.snap index 6f5e4b3581..54c459ed64 100644 --- a/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/__snapshots__/channel_details.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/__snapshots__/channel_details.test.tsx.snap @@ -8,7 +8,7 @@ exports[`admin_console/team_channel_settings/channel/ChannelDetails should match withBackButton={true} >
- @@ -195,7 +195,7 @@ exports[`admin_console/team_channel_settings/channel/ChannelDetails should match withBackButton={true} >
- @@ -378,7 +378,7 @@ exports[`admin_console/team_channel_settings/channel/ChannelDetails should match withBackButton={true} >
- @@ -517,7 +517,7 @@ exports[`admin_console/team_channel_settings/channel/ChannelDetails should match withBackButton={true} >
- @@ -652,7 +652,7 @@ exports[`admin_console/team_channel_settings/channel/ChannelDetails should match withBackButton={true} >
- @@ -791,7 +791,7 @@ exports[`admin_console/team_channel_settings/channel/ChannelDetails should match withBackButton={true} >
- diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/team/details/__snapshots__/team_details.test.tsx.snap b/webapp/channels/src/components/admin_console/team_channel_settings/team/details/__snapshots__/team_details.test.tsx.snap index a751385253..3cff1ee11d 100644 --- a/webapp/channels/src/components/admin_console/team_channel_settings/team/details/__snapshots__/team_details.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/team_channel_settings/team/details/__snapshots__/team_details.test.tsx.snap @@ -8,7 +8,7 @@ exports[`admin_console/team_channel_settings/team/TeamDetails should match snaps withBackButton={true} >
- @@ -114,7 +114,7 @@ exports[`admin_console/team_channel_settings/team/TeamDetails should match snaps withBackButton={true} >
-