diff --git a/packages/shared/components/Button.tsx b/packages/shared/components/Button.tsx index 70edb4f1..d06ccacb 100644 --- a/packages/shared/components/Button.tsx +++ b/packages/shared/components/Button.tsx @@ -1,21 +1,18 @@ import classNames from "classnames"; import { cloneElement, type ReactElement } from "react"; import { Link } from "react-router-dom"; -import { z } from "zod"; -import { trackButtonClick } from "../../tool-finder/src/services/tracking"; -export const ButtonPropsSchema = z.object({ - text: z.string().optional(), - look: z.enum(["primary", "secondary", "tertiary", "ghost"]).optional(), - size: z.enum(["large", "medium", "small"]).optional(), - href: z.string().optional(), - iconLeft: z.custom().optional(), - iconRight: z.custom().optional(), - fullWidth: z.boolean().optional(), - onClickCallback: z.function().optional(), -}); - -type Props = z.infer; +type Props = { + text?: string; + look?: "primary" | "secondary" | "tertiary" | "ghost"; + size?: "large" | "medium" | "small"; + href?: string; + iconLeft?: ReactElement; + iconRight?: ReactElement; + fullWidth?: boolean; + trackButtonClick?: (id?: string, href?: string) => void; + onClickCallback?: (event: React.MouseEvent) => void; +}; export interface ButtonProps extends React.ComponentPropsWithoutRef<"button">, @@ -40,6 +37,7 @@ function Button({ look, size, href, + trackButtonClick, onClickCallback, ...props }: ButtonProps | ButtonLinkProps) { @@ -74,7 +72,9 @@ function Button({ }; const onClick = (event: React.MouseEvent) => { - trackButtonClick(id, href); + if (trackButtonClick) { + trackButtonClick(id, href); + } if (onClickCallback) { onClickCallback(event); } diff --git a/packages/shared/components/FeedbackForm.tsx b/packages/shared/components/FeedbackForm.tsx index 7304356f..37378ddd 100644 --- a/packages/shared/components/FeedbackForm.tsx +++ b/packages/shared/components/FeedbackForm.tsx @@ -1,4 +1,3 @@ -import { trackFeedbackClick } from "../../tool-finder/src/services/tracking"; import Background from "./Background"; import Box from "./Box"; import Container from "./Container"; @@ -82,10 +81,18 @@ export default function FeedbackForm({ ressort, object, reason, + trackFeedbackClick, }: Readonly<{ ressort: string; object: string; reason: string; + trackFeedbackClick: ( + name: string, + value: number, + ressort: string, + object: string, + reason: string, + ) => void; }>) { function sendFeedback(name: string, value: number) { trackFeedbackClick(name, value, ressort, object, reason); diff --git a/packages/tool-finder/src/routes/DecisionTree.tsx b/packages/tool-finder/src/routes/DecisionTree.tsx index f35ad49e..941dfaf4 100644 --- a/packages/tool-finder/src/routes/DecisionTree.tsx +++ b/packages/tool-finder/src/routes/DecisionTree.tsx @@ -4,6 +4,7 @@ import Container from "@digitalcheck/shared/components/Container"; import Header from "@digitalcheck/shared/components/Header"; import useTitle from "services/useTitle"; +import { trackButtonClick } from "services/tracking"; import { PATH_RESULT } from "./"; function DecisionTree() { @@ -36,6 +37,7 @@ function DecisionTree() { id: "diagram-guide-page-back-button", text: "Zurück", href: PATH_RESULT, + trackButtonClick, }, ]} > diff --git a/packages/tool-finder/src/routes/Diagram.tsx b/packages/tool-finder/src/routes/Diagram.tsx index 37edf398..00d855d0 100644 --- a/packages/tool-finder/src/routes/Diagram.tsx +++ b/packages/tool-finder/src/routes/Diagram.tsx @@ -4,6 +4,7 @@ import Container from "@digitalcheck/shared/components/Container"; import Header from "@digitalcheck/shared/components/Header"; import useTitle from "services/useTitle"; +import { trackButtonClick } from "services/tracking"; import { PATH_RESULT } from "./"; function Diagram() { @@ -36,6 +37,7 @@ function Diagram() { id: "diagram-guide-page-back-button", text: "Zurück", href: PATH_RESULT, + trackButtonClick, }, ]} > diff --git a/packages/tool-finder/src/routes/Flowchart.tsx b/packages/tool-finder/src/routes/Flowchart.tsx index 8b4e915d..e42151f5 100644 --- a/packages/tool-finder/src/routes/Flowchart.tsx +++ b/packages/tool-finder/src/routes/Flowchart.tsx @@ -2,6 +2,7 @@ import Background from "@digitalcheck/shared/components/Background"; import Box from "@digitalcheck/shared/components/Box"; import Container from "@digitalcheck/shared/components/Container"; import Header from "@digitalcheck/shared/components/Header"; +import { trackButtonClick } from "services/tracking"; import useTitle from "services/useTitle"; import Button from "@digitalcheck/shared/components/Button"; @@ -104,11 +105,10 @@ Der Start mag Ihnen leichter fallen, wenn Sie als Basis eine zeitliche Abfolge w