[MM-61848] Add Telemetry to capture Cross-Team Search usage (#30062)
Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
@@ -6,9 +6,12 @@ import {FormattedMessage} from 'react-intl';
|
||||
import {useSelector, useDispatch} from 'react-redux';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import {TrackCrossTeamSearchFeature, TrackCrossTeamSearchAllTeamsEvent, TrackCrossTeamSearchCurrentTeamEvent, TrackCrossTeamSearchDifferentTeamEvent} from 'mattermost-redux/constants/telemetry';
|
||||
import {getCurrentChannelNameForSearchShortcut} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getFeatureFlagValue} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
|
||||
import {trackFeatureEvent} from 'actions/telemetry_actions';
|
||||
import {updateSearchTerms, showSearchResults, updateSearchType, updateSearchTeam} from 'actions/views/rhs';
|
||||
import {getSearchButtons} from 'selectors/plugins';
|
||||
import {getSearchTeam, getSearchTerms, getSearchType} from 'selectors/rhs';
|
||||
@@ -111,6 +114,7 @@ const NewSearch = (): JSX.Element => {
|
||||
const searchType = useSelector(getSearchType) || '';
|
||||
const searchTeam = useSelector(getSearchTeam);
|
||||
const pluginSearch = useSelector(getSearchButtons);
|
||||
const currentTeamId = useSelector(getCurrentTeamId);
|
||||
const crossTeamSearchEnabled = useSelector((state: GlobalState) => getFeatureFlagValue(state, 'ExperimentalCrossTeamSearch')) === 'true';
|
||||
|
||||
const dispatch = useDispatch();
|
||||
@@ -226,6 +230,10 @@ const NewSearch = (): JSX.Element => {
|
||||
dispatch(updateSearchTeam(searchTeam));
|
||||
|
||||
if (searchType === '' || searchType === 'messages' || searchType === 'files') {
|
||||
if (crossTeamSearchEnabled) {
|
||||
trackCrossTeamSearch(currentTeamId, searchTeam);
|
||||
}
|
||||
|
||||
dispatch(showSearchResults(false));
|
||||
} else {
|
||||
pluginSearch.forEach((pluginData: any) => {
|
||||
@@ -236,9 +244,17 @@ const NewSearch = (): JSX.Element => {
|
||||
}
|
||||
setFocused(false);
|
||||
setCurrentChannel('');
|
||||
},
|
||||
[pluginSearch],
|
||||
);
|
||||
}, [pluginSearch, currentTeamId, crossTeamSearchEnabled]);
|
||||
|
||||
const trackCrossTeamSearch = (currentTeamId: string, searchTeamId: string) => {
|
||||
if (searchTeamId === '') {
|
||||
trackFeatureEvent(TrackCrossTeamSearchFeature, TrackCrossTeamSearchAllTeamsEvent);
|
||||
} else if (searchTeamId === currentTeamId) {
|
||||
trackFeatureEvent(TrackCrossTeamSearchFeature, TrackCrossTeamSearchCurrentTeamEvent);
|
||||
} else {
|
||||
trackFeatureEvent(TrackCrossTeamSearchFeature, TrackCrossTeamSearchDifferentTeamEvent);
|
||||
}
|
||||
};
|
||||
|
||||
const onClose = useCallback((e: React.MouseEvent) => {
|
||||
e.stopPropagation();
|
||||
|
||||
@@ -9,10 +9,14 @@ export const TrackEnterpriseSKU = 'enterprise';
|
||||
export const TrackGroupsFeature = 'custom_groups';
|
||||
export const TrackPassiveKeywordsFeature = 'passive_keywords';
|
||||
export const TrackScheduledPostsFeature = 'scheduled_posts';
|
||||
export const TrackCrossTeamSearchFeature = 'cross_team_search';
|
||||
|
||||
// Events
|
||||
export const TrackInviteGroupEvent = 'invite_group_to_channel__add_member';
|
||||
export const TrackPassiveKeywordsEvent = 'update_passive_keywords';
|
||||
export const TrackCrossTeamSearchCurrentTeamEvent = 'cross_team_search__current_team';
|
||||
export const TrackCrossTeamSearchDifferentTeamEvent = 'cross_team_search__different_team';
|
||||
export const TrackCrossTeamSearchAllTeamsEvent = 'cross_team_search__all_teams';
|
||||
|
||||
// Categories
|
||||
export const TrackActionCategory = 'action';
|
||||
@@ -30,4 +34,7 @@ export const eventSKUs: {[event: string]: string[]} = {
|
||||
export const eventCategory: {[event: string]: string} = {
|
||||
[TrackInviteGroupEvent]: TrackActionCategory,
|
||||
[TrackPassiveKeywordsEvent]: TrackActionCategory,
|
||||
[TrackCrossTeamSearchAllTeamsEvent]: TrackActionCategory,
|
||||
[TrackCrossTeamSearchCurrentTeamEvent]: TrackActionCategory,
|
||||
[TrackCrossTeamSearchDifferentTeamEvent]: TrackActionCategory,
|
||||
};
|
||||
|
||||
Ссылка в новой задаче
Block a user