one-click-accessibility/modules/settings/assets/js/services/mixpanel-service.js
VasylD ef33cf6397
[APP-1342] add super props, store plan scope after register/switch (#250)
* [APP-0000] store plan scope after register/switch

* Update modules/settings/module.php

Co-authored-by: Pavlo Kniazevych <139438463+pkniazevych@users.noreply.github.com>

* remove deprecated method

* remove deprecated method

* [1342] Add super prop to mixpanel

* [1342] Add super prop to mixpanel

* [1342] Add super prop to mixpanel

---------

Co-authored-by: Pavlo Kniazevych <139438463+pkniazevych@users.noreply.github.com>
2025-04-09 13:46:50 +02:00

80 lines
2.3 KiB
JavaScript

import mixpanel from 'mixpanel-browser';
const SHARE_USAGE_DATA = 'share_usage_data';
const MIXPANEL_TOKEN = '150605b3b9f979922f2ac5a52e2dcfe9';
const init = async () => {
const { ea11ySettingsData } = window;
const plan = ea11ySettingsData?.planData?.plan;
if (
!ea11ySettingsData?.planData?.scopes?.includes(SHARE_USAGE_DATA) &&
!ea11ySettingsData?.planScope?.includes(SHARE_USAGE_DATA)
) {
return;
}
await mixpanel.init(MIXPANEL_TOKEN, {
debug: ea11ySettingsData.pluginEnv === 'dev',
track_pageview: false,
persistence: 'localStorage',
record_sessions_percent: 50,
});
mixpanel.register({
productName: 'app_access',
appType: 'Apps',
environment: ea11ySettingsData.pluginEnv,
is_trial: Boolean(plan?.name?.toLowerCase().includes('free')),
plan_type: plan?.name,
subscription_id: plan?.subscription_id,
});
mixpanel.identify(ea11ySettingsData?.planData?.user?.id);
const userData = {
$email: ea11ySettingsData?.planData?.user?.email,
$user_id: ea11ySettingsData?.planData?.user?.id,
$subscription_type: plan?.name,
$subscription_id: plan?.subscription_id,
$subscription_status: plan?.status,
};
mixpanel.people?.set_once(userData);
};
const sendEvent = (name, event) => {
if (mixpanel.__loaded) {
mixpanel.track(name, event);
}
};
export const mixpanelService = {
init,
sendEvent,
};
export const eventNames = {
pageView: 'page_view',
helpButtonClicked: 'help_button_clicked',
toggleClicked: 'toggle_clicked',
positionButtonClicked: 'position_button_clicked',
saveButtonClicked: 'save_button_clicked',
colorChanged: 'color_changed',
iconTypeSelected: 'icon_type_selected',
sizeTypeClicked: 'size_type_clicked',
menuButtonClicked: 'menu_button_clicked',
handleUnitChanged: 'handle_unit_changed',
handleValueChanged: 'handle_value_changed',
handleDirectionChanged: 'handle_direction_changed',
connectSuccess: 'connect_success',
fieldContentUpdated: 'field_content_updated',
statementPageCreated: 'statement_page_created',
statementPageSelected: 'statement_page_selected',
statementFlowSelected: 'statement_flow_selected',
upgradeButtonClicked: 'upgrade_button_clicked',
popupButtonClicked: 'popup_button_clicked',
filterSelected: 'filter_selected',
upgradeTooltipTriggered: 'upgrade_tooltip_triggered',
radiusChanged: 'radius_changed',
};