mirror of
https://github.com/Unleash/unleash.git
synced 2025-11-10 01:19:53 +01:00
feat: track change progression (#10874)
This commit is contained in:
parent
649e5d8ce5
commit
9142ebf82c
@ -10,6 +10,7 @@ import { formatUnknownError } from 'utils/formatUnknownError';
|
|||||||
import { calculateMilestoneStatus } from './milestoneStatusUtils.js';
|
import { calculateMilestoneStatus } from './milestoneStatusUtils.js';
|
||||||
import { getPendingProgressionData } from './pendingProgressionChanges.js';
|
import { getPendingProgressionData } from './pendingProgressionChanges.js';
|
||||||
import { MilestoneAutomation } from './MilestoneAutomation.tsx';
|
import { MilestoneAutomation } from './MilestoneAutomation.tsx';
|
||||||
|
import { usePlausibleTracker } from 'hooks/usePlausibleTracker.ts';
|
||||||
|
|
||||||
const StyledConnection = styled('div', {
|
const StyledConnection = styled('div', {
|
||||||
shouldForwardProp: (prop) => prop !== 'isCompleted',
|
shouldForwardProp: (prop) => prop !== 'isCompleted',
|
||||||
@ -54,6 +55,16 @@ export interface IReleasePlanMilestoneItemProps {
|
|||||||
onUpdate: () => void | Promise<void>;
|
onUpdate: () => void | Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getTimeUnit = (intervalMinutes: number): 'minutes' | 'hours' | 'days' => {
|
||||||
|
if (intervalMinutes < 60) {
|
||||||
|
return 'minutes';
|
||||||
|
} else if (intervalMinutes < 1440) {
|
||||||
|
return 'hours';
|
||||||
|
} else {
|
||||||
|
return 'days';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export const ReleasePlanMilestoneItem = ({
|
export const ReleasePlanMilestoneItem = ({
|
||||||
milestone,
|
milestone,
|
||||||
index,
|
index,
|
||||||
@ -77,6 +88,7 @@ export const ReleasePlanMilestoneItem = ({
|
|||||||
const { changeMilestoneProgression } = useMilestoneProgressionsApi();
|
const { changeMilestoneProgression } = useMilestoneProgressionsApi();
|
||||||
const { isChangeRequestConfigured } = useChangeRequestsEnabled(projectId);
|
const { isChangeRequestConfigured } = useChangeRequestsEnabled(projectId);
|
||||||
const { setToastData, setToastApiError } = useToast();
|
const { setToastData, setToastApiError } = useToast();
|
||||||
|
const { trackEvent } = usePlausibleTracker();
|
||||||
|
|
||||||
const isNotLastMilestone = index < milestones.length - 1;
|
const isNotLastMilestone = index < milestones.length - 1;
|
||||||
const isProgressionFormOpen = progressionFormOpenIndex === index;
|
const isProgressionFormOpen = progressionFormOpenIndex === index;
|
||||||
@ -89,6 +101,14 @@ export const ReleasePlanMilestoneItem = ({
|
|||||||
const handleChangeProgression = async (
|
const handleChangeProgression = async (
|
||||||
payload: ChangeMilestoneProgressionSchema,
|
payload: ChangeMilestoneProgressionSchema,
|
||||||
): Promise<{ shouldReset?: boolean }> => {
|
): Promise<{ shouldReset?: boolean }> => {
|
||||||
|
trackEvent('release-management', {
|
||||||
|
props: {
|
||||||
|
eventType: 'change-progression',
|
||||||
|
transitionUnit: getTimeUnit(
|
||||||
|
payload.transitionCondition.intervalMinutes,
|
||||||
|
),
|
||||||
|
},
|
||||||
|
});
|
||||||
if (isChangeRequestConfigured(environment)) {
|
if (isChangeRequestConfigured(environment)) {
|
||||||
onAddToChangeRequest({
|
onAddToChangeRequest({
|
||||||
type: 'changeMilestoneProgression',
|
type: 'changeMilestoneProgression',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user