1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-07-21 13:47:39 +02:00

feat: plausible tracking for links (#9988)

This commit is contained in:
Mateusz Kwasniewski 2025-05-14 11:19:37 +02:00 committed by GitHub
parent abe160eb7d
commit 1523e2d056
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 1 deletions

View File

@ -6,6 +6,7 @@ import { useFeature } from 'hooks/api/getters/useFeature/useFeature';
import useToast from 'hooks/useToast';
import { formatUnknownError } from 'utils/formatUnknownError';
import type { FeatureLink } from 'interfaces/featureToggle';
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
const StyledTextField = styled(TextField)(({ theme }) => ({
width: '100%',
@ -43,6 +44,7 @@ const LinkDialogue: FC<ILinkDialogueProps> = ({
const isEditMode = mode === 'edit';
const dialogueTitle = isEditMode ? 'Edit link' : 'Add link';
const successMessage = isEditMode ? 'Link updated' : 'Link added';
const { trackEvent } = usePlausibleTracker();
useEffect(() => {
if (isEditMode && link) {
@ -60,8 +62,18 @@ const LinkDialogue: FC<ILinkDialogueProps> = ({
try {
if (isEditMode) {
await editLink(id, { url, title: title || null });
trackEvent('feature-links', {
props: {
eventType: 'edit-link',
},
});
} else {
await addLink({ url, title: title || null });
trackEvent('feature-links', {
props: {
eventType: 'add-link',
},
});
}
setToastData({ text: successMessage, type: 'success' });

View File

@ -1,6 +1,7 @@
import { useState } from 'react';
import { Button, styled, TextField } from '@mui/material';
import type { ProjectLinkTemplateSchema } from 'openapi';
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
interface IProjectLinkTemplateEditorProps {
template?: ProjectLinkTemplateSchema;
@ -34,6 +35,7 @@ const ProjectLinkTemplateEditor = ({
title?: string;
url?: string;
}>({});
const { trackEvent } = usePlausibleTracker();
const validateTemplateForm = () => {
const errors: { title?: string; url?: string } = {};
@ -48,6 +50,11 @@ const ProjectLinkTemplateEditor = ({
const handleSave = () => {
if (validateTemplateForm()) {
trackEvent('feature-links', {
props: {
eventType: isAdding ? 'add-template' : 'edit-template',
},
});
onSave({
title: templateTitle || null,
urlTemplate: templateUrl,

View File

@ -73,7 +73,8 @@ export type CustomEvents =
| 'order-environments'
| 'project-navigation'
| 'productivity-report'
| 'release-management';
| 'release-management'
| 'feature-links';
export const usePlausibleTracker = () => {
const plausible = useContext(PlausibleContext);