mirror of
https://github.com/Unleash/unleash.git
synced 2025-04-24 01:18:01 +02:00
feat: order environment plausible events (#8427)
This commit is contained in:
parent
d944eff34c
commit
e72aa2871e
@ -11,6 +11,7 @@ import FormTemplate from 'component/common/FormTemplate/FormTemplate';
|
|||||||
import { OrderEnvironmentsDialogPricing } from './OrderEnvironmentsDialogPricing/OrderEnvironmentsDialogPricing';
|
import { OrderEnvironmentsDialogPricing } from './OrderEnvironmentsDialogPricing/OrderEnvironmentsDialogPricing';
|
||||||
import GeneralSelect from 'component/common/GeneralSelect/GeneralSelect';
|
import GeneralSelect from 'component/common/GeneralSelect/GeneralSelect';
|
||||||
import Input from 'component/common/Input/Input';
|
import Input from 'component/common/Input/Input';
|
||||||
|
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||||
|
|
||||||
type OrderEnvironmentsDialogProps = {
|
type OrderEnvironmentsDialogProps = {
|
||||||
open: boolean;
|
open: boolean;
|
||||||
@ -75,10 +76,19 @@ export const OrderEnvironmentsDialog: FC<OrderEnvironmentsDialogProps> = ({
|
|||||||
onClose,
|
onClose,
|
||||||
onSubmit,
|
onSubmit,
|
||||||
}) => {
|
}) => {
|
||||||
|
const { trackEvent } = usePlausibleTracker();
|
||||||
const [selectedOption, setSelectedOption] = useState(OPTIONS[0]);
|
const [selectedOption, setSelectedOption] = useState(OPTIONS[0]);
|
||||||
const [costCheckboxChecked, setCostCheckboxChecked] = useState(false);
|
const [costCheckboxChecked, setCostCheckboxChecked] = useState(false);
|
||||||
const [environmentNames, setEnvironmentNames] = useState<string[]>([]);
|
const [environmentNames, setEnvironmentNames] = useState<string[]>([]);
|
||||||
|
|
||||||
|
const trackEnvironmentSelect = () => {
|
||||||
|
trackEvent('order-environments', {
|
||||||
|
props: {
|
||||||
|
eventType: 'selected environment count',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledDialog open={open} title=''>
|
<StyledDialog open={open} title=''>
|
||||||
<FormTemplate
|
<FormTemplate
|
||||||
@ -135,6 +145,7 @@ export const OrderEnvironmentsDialog: FC<OrderEnvironmentsDialogProps> = ({
|
|||||||
setEnvironmentNames((names) =>
|
setEnvironmentNames((names) =>
|
||||||
names.slice(0, value),
|
names.slice(0, value),
|
||||||
);
|
);
|
||||||
|
trackEnvironmentSelect();
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
|
@ -3,6 +3,7 @@ import { Box, Button, styled, Typography } from '@mui/material';
|
|||||||
import { ThemeMode } from 'component/common/ThemeMode/ThemeMode';
|
import { ThemeMode } from 'component/common/ThemeMode/ThemeMode';
|
||||||
import { ReactComponent as ProPlanIcon } from 'assets/icons/pro-enterprise-feature-badge.svg';
|
import { ReactComponent as ProPlanIcon } from 'assets/icons/pro-enterprise-feature-badge.svg';
|
||||||
import { ReactComponent as ProPlanIconLight } from 'assets/icons/pro-enterprise-feature-badge-light.svg';
|
import { ReactComponent as ProPlanIconLight } from 'assets/icons/pro-enterprise-feature-badge-light.svg';
|
||||||
|
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||||
|
|
||||||
type PurchasableFeatureProps = {
|
type PurchasableFeatureProps = {
|
||||||
title: ReactNode;
|
title: ReactNode;
|
||||||
@ -50,6 +51,17 @@ export const PurchasableFeature: FC<PurchasableFeatureProps> = ({
|
|||||||
description,
|
description,
|
||||||
onClick,
|
onClick,
|
||||||
}) => {
|
}) => {
|
||||||
|
const { trackEvent } = usePlausibleTracker();
|
||||||
|
|
||||||
|
const onViewPricingClick = () => {
|
||||||
|
onClick();
|
||||||
|
trackEvent('order-environments', {
|
||||||
|
props: {
|
||||||
|
eventType: 'view pricing clicked',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledContainer>
|
<StyledContainer>
|
||||||
<StyledMessage>
|
<StyledMessage>
|
||||||
@ -62,7 +74,7 @@ export const PurchasableFeature: FC<PurchasableFeatureProps> = ({
|
|||||||
</Box>
|
</Box>
|
||||||
</StyledMessage>
|
</StyledMessage>
|
||||||
<StyledButtonContainer>
|
<StyledButtonContainer>
|
||||||
<Button variant='contained' onClick={onClick}>
|
<Button variant='contained' onClick={onViewPricingClick}>
|
||||||
View pricing
|
View pricing
|
||||||
</Button>
|
</Button>
|
||||||
</StyledButtonContainer>
|
</StyledButtonContainer>
|
||||||
|
@ -69,7 +69,8 @@ export type CustomEvents =
|
|||||||
| 'events-exported'
|
| 'events-exported'
|
||||||
| 'event-timeline'
|
| 'event-timeline'
|
||||||
| 'onboarding'
|
| 'onboarding'
|
||||||
| 'personal-dashboard';
|
| 'personal-dashboard'
|
||||||
|
| 'order-environments';
|
||||||
|
|
||||||
export const usePlausibleTracker = () => {
|
export const usePlausibleTracker = () => {
|
||||||
const plausible = useContext(PlausibleContext);
|
const plausible = useContext(PlausibleContext);
|
||||||
|
@ -476,7 +476,9 @@ export class EmailService {
|
|||||||
const email = {
|
const email = {
|
||||||
from: this.sender,
|
from: this.sender,
|
||||||
to: userEmail,
|
to: userEmail,
|
||||||
bcc: process.env.ORDER_ENVIRONMENTS_BCC || 'ivar@getunleash.io',
|
bcc:
|
||||||
|
process.env.ORDER_ENVIRONMENTS_BCC ||
|
||||||
|
'pro-sales@getunleash.io',
|
||||||
subject: ORDER_ENVIRONMENTS_SUBJECT,
|
subject: ORDER_ENVIRONMENTS_SUBJECT,
|
||||||
html: bodyHtml,
|
html: bodyHtml,
|
||||||
text: bodyText,
|
text: bodyText,
|
||||||
|
Loading…
Reference in New Issue
Block a user