revert changes to overage users banner in favor of getting self hoste expansion modal pushed through faster.

Этот коммит содержится в:
Conor Macpherson
2023-04-12 13:44:56 -04:00
родитель d5d1b03176
Коммит 34eece7462
4 изменённых файлов: 15 добавлений и 43 удалений

Просмотреть файл

@@ -22,6 +22,15 @@ import * as useCanSelfHostedExpand from 'components/common/hooks/useCanSelfHoste
import EnterpriseEditionLeftPanel, {EnterpriseEditionProps} from './enterprise_edition_left_panel'; import EnterpriseEditionLeftPanel, {EnterpriseEditionProps} from './enterprise_edition_left_panel';
jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom') as typeof import('react-router-dom'),
useLocation: () => {
return {
pathname: '',
};
},
}));
describe('components/admin_console/license_settings/enterprise_edition/enterprise_edition_left_panel', () => { describe('components/admin_console/license_settings/enterprise_edition/enterprise_edition_left_panel', () => {
const license = { const license = {
IsLicensed: 'true', IsLicensed: 'true',
@@ -113,7 +122,7 @@ describe('components/admin_console/license_settings/enterprise_edition/enterpris
return n.children().length === 2 && return n.children().length === 2 &&
n.childAt(0).type() === 'span' && n.childAt(0).type() === 'span' &&
!n.childAt(0).text().includes('ACTIVE') && !n.childAt(0).text().includes('ACTIVE') &&
n.childAt(0).text().includes('USERS'); n.childAt(0).text().includes('LICENSED SEATS');
}); });
expect(item.text()).toContain('1,000'); expect(item.text()).toContain('1,000');

Просмотреть файл

@@ -4,7 +4,6 @@
import React, {useMemo} from 'react'; import React, {useMemo} from 'react';
import {FormattedMessage} from 'react-intl'; import {FormattedMessage} from 'react-intl';
import {useDispatch, useSelector} from 'react-redux'; import {useDispatch, useSelector} from 'react-redux';
import {useHistory} from 'react-router-dom';
import {getCurrentUser, isCurrentUserSystemAdmin} from 'mattermost-redux/selectors/entities/users'; import {getCurrentUser, isCurrentUserSystemAdmin} from 'mattermost-redux/selectors/entities/users';
import {GlobalState} from 'types/store'; import {GlobalState} from 'types/store';
@@ -17,10 +16,9 @@ import {makeGetCategory} from 'mattermost-redux/selectors/entities/preferences';
import {PreferenceType} from '@mattermost/types/preferences'; import {PreferenceType} from '@mattermost/types/preferences';
import {useExpandOverageUsersCheck} from 'components/common/hooks/useExpandOverageUsersCheck'; import {useExpandOverageUsersCheck} from 'components/common/hooks/useExpandOverageUsersCheck';
import useOpenSalesLink from 'components/common/hooks/useOpenSalesLink'; import useOpenSalesLink from 'components/common/hooks/useOpenSalesLink';
import {StatTypes, Preferences, AnnouncementBarTypes, ConsolePages} from 'utils/constants'; import {StatTypes, Preferences, AnnouncementBarTypes} from 'utils/constants';
import './overage_users_banner.scss'; import './overage_users_banner.scss';
import useCWSAvailabilityCheck from 'components/common/hooks/useCWSAvailabilityCheck';
type AdminHasDismissedItArgs = { type AdminHasDismissedItArgs = {
preferenceName: string; preferenceName: string;
@@ -58,8 +56,6 @@ const OverageUsersBanner = () => {
const prefixPreferences = isOver10PercerntPurchasedSeats ? 'error' : 'warn'; const prefixPreferences = isOver10PercerntPurchasedSeats ? 'error' : 'warn';
const prefixLicenseId = (license.Id || '').substring(0, 8); const prefixLicenseId = (license.Id || '').substring(0, 8);
const preferenceName = `${prefixPreferences}_overage_seats_${prefixLicenseId}`; const preferenceName = `${prefixPreferences}_overage_seats_${prefixLicenseId}`;
const history = useHistory();
const isAirGapped = !useCWSAvailabilityCheck();
const overageByUsers = activeUsers - seatsPurchased; const overageByUsers = activeUsers - seatsPurchased;
@@ -90,14 +86,7 @@ const OverageUsersBanner = () => {
const handleUpdateSeatsSelfServeClick = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => { const handleUpdateSeatsSelfServeClick = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
e.preventDefault(); e.preventDefault();
trackEventFn('Self Serve'); trackEventFn('Self Serve');
window.open(expandableLink(license.Id), '_blank');
if (isAirGapped) {
window.open(expandableLink(license.Id), '_blank');
}
if (isExpandable) {
history.push(`${ConsolePages.LICENSE}?action=show_expansion_modal`);
}
}; };
const handleContactSalesClick = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => { const handleContactSalesClick = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {

Просмотреть файл

@@ -16,13 +16,10 @@ import {savePreferences} from 'mattermost-redux/actions/preferences';
import {makeGetCategory} from 'mattermost-redux/selectors/entities/preferences'; import {makeGetCategory} from 'mattermost-redux/selectors/entities/preferences';
import {PreferenceType} from '@mattermost/types/preferences'; import {PreferenceType} from '@mattermost/types/preferences';
import {useExpandOverageUsersCheck} from 'components/common/hooks/useExpandOverageUsersCheck'; import {useExpandOverageUsersCheck} from 'components/common/hooks/useExpandOverageUsersCheck';
import {LicenseLinks, StatTypes, Preferences, ConsolePages} from 'utils/constants'; import {LicenseLinks, StatTypes, Preferences} from 'utils/constants';
import './overage_users_banner_notice.scss'; import './overage_users_banner_notice.scss';
import ExternalLink from 'components/external_link'; import ExternalLink from 'components/external_link';
import useControlSelfHostedExpansionModal from 'components/common/hooks/useControlSelfHostedExpansionModal';
import {NavLink} from 'react-router-dom';
import useCWSAvailabilityCheck from 'components/common/hooks/useCWSAvailabilityCheck';
type AdminHasDismissedArgs = { type AdminHasDismissedArgs = {
preferenceName: string; preferenceName: string;
@@ -56,16 +53,15 @@ const OverageUsersBannerNotice = () => {
const prefixLicenseId = (license.Id || '').substring(0, 8); const prefixLicenseId = (license.Id || '').substring(0, 8);
const preferenceName = `${prefixPreferences}_overage_seats_${prefixLicenseId}`; const preferenceName = `${prefixPreferences}_overage_seats_${prefixLicenseId}`;
const isAirGapped = !useCWSAvailabilityCheck();
const overageByUsers = activeUsers - seatsPurchased; const overageByUsers = activeUsers - seatsPurchased;
const isOverageState = isBetween5PercerntAnd10PercentPurchasedSeats || isOver10PercerntPurchasedSeats; const isOverageState = isBetween5PercerntAnd10PercentPurchasedSeats || isOver10PercerntPurchasedSeats;
const hasPermission = isAdmin && isOverageState && !isCloud; const hasPermission = isAdmin && isOverageState && !isCloud;
const { const {
cta, cta,
expandableLink,
trackEventFn, trackEventFn,
getRequestState, getRequestState,
isExpandable, isExpandable,
expandableLink,
} = useExpandOverageUsersCheck({ } = useExpandOverageUsersCheck({
shouldRequest: hasPermission && !adminHasDismissed({overagePreferences, preferenceName}), shouldRequest: hasPermission && !adminHasDismissed({overagePreferences, preferenceName}),
licenseId: license.Id, licenseId: license.Id,
@@ -73,8 +69,6 @@ const OverageUsersBannerNotice = () => {
banner: 'invite modal', banner: 'invite modal',
}); });
const selfHostedExpansionModal = useControlSelfHostedExpansionModal({trackingLocation: 'overage_user_banner_notice'});
if (!hasPermission || adminHasDismissed({overagePreferences, preferenceName})) { if (!hasPermission || adminHasDismissed({overagePreferences, preferenceName})) {
return null; return null;
} }
@@ -102,31 +96,12 @@ const OverageUsersBannerNotice = () => {
const handleClick = () => { const handleClick = () => {
trackEventFn(isExpandable ? 'Self Serve' : 'Contact Sales'); trackEventFn(isExpandable ? 'Self Serve' : 'Contact Sales');
if (isExpandable) {
selfHostedExpansionModal.open();
}
}; };
if (isAirGapped) {
window.open(expandableLink(license.Id), '_blank');
}
if (isExpandable) {
return (
<NavLink
to={`${ConsolePages.LICENSE}?action=show_expansion_modal`}
target='_blank'
rel='noreferrer'
>
{cta}
</NavLink>
);
}
return ( return (
<ExternalLink <ExternalLink
className='overage_users_banner__button' className='overage_users_banner__button'
href={LicenseLinks.CONTACT_SALES} href={isExpandable ? expandableLink(license.Id) : LicenseLinks.CONTACT_SALES}
onClick={handleClick} onClick={handleClick}
> >
{cta} {cta}

Просмотреть файл

@@ -162,7 +162,6 @@ const initialState: DeepPartial<GlobalState> = {
license: { license: {
SkuName: productName, SkuName: productName,
Sku: productName, Sku: productName,
SkuName: productName,
Users: '50', Users: '50',
ExpiresAt: licenseExpiry.valueOf().toString(), ExpiresAt: licenseExpiry.valueOf().toString(),
}, },