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:
parent
abe160eb7d
commit
1523e2d056
@ -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' });
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user