Files
formbricks/apps/web/modules/integrations/webhooks/components/trigger-checkbox-group.tsx
T
Dhruwang Jariwala 36378e9c23 feat: tolgee (#4692)
Co-authored-by: pandeymangg <anshuman.pandey9999@gmail.com>
2025-02-07 05:49:35 +00:00

69 lines
2.0 KiB
TypeScript

"use client";
import { Checkbox } from "@/modules/ui/components/checkbox";
import { PipelineTriggers } from "@prisma/client";
import { useTranslate } from "@tolgee/react";
import React from "react";
interface TriggerCheckboxGroupProps {
selectedTriggers: PipelineTriggers[];
onCheckboxChange: (selectedValue: PipelineTriggers) => void;
allowChanges: boolean;
}
const triggers: {
title: string;
value: PipelineTriggers;
}[] = [
{
title: "environments.integrations.webhooks.response_created",
value: "responseCreated",
},
{
title: "environments.integrations.webhooks.response_updated",
value: "responseUpdated",
},
{
title: "environments.integrations.webhooks.response_finished",
value: "responseFinished",
},
];
export const TriggerCheckboxGroup: React.FC<TriggerCheckboxGroupProps> = ({
selectedTriggers,
onCheckboxChange,
allowChanges,
}) => {
const { t } = useTranslate();
return (
<div className="mt-1 rounded-lg border border-slate-200">
<div className="grid content-center rounded-lg bg-slate-50 p-3 text-left text-sm text-slate-900">
{triggers.map((trigger) => (
<div key={trigger.value} className="my-1 flex items-center space-x-2">
<label
htmlFor={trigger.value}
className={`flex ${
!allowChanges ? "cursor-not-allowed opacity-50" : "cursor-pointer"
} items-center`}>
<Checkbox
type="button"
id={trigger.value}
value={trigger.value}
className="bg-white"
checked={selectedTriggers.includes(trigger.value)}
onCheckedChange={() => {
if (allowChanges) {
onCheckboxChange(trigger.value);
}
}}
disabled={!allowChanges}
/>
<span className="ml-2">{t(trigger.title)}</span>
</label>
</div>
))}
</div>
</div>
);
};