"use client"; import { FC, useState } from "react"; import { observer } from "mobx-react"; import useSWR from "swr"; import { MessageSquare } from "lucide-react"; import { IFormattedInstanceConfiguration } from "@plane/types"; import { ToggleSwitch } from "@plane/ui"; // hooks import { useInstance } from "@/hooks/store"; type TIntercomConfig = { isTelemetryEnabled: boolean; }; export const IntercomConfig: FC = observer((props) => { const { isTelemetryEnabled } = props; // hooks const { instanceConfigurations, updateInstanceConfigurations, fetchInstanceConfigurations } = useInstance(); // states const [isSubmitting, setIsSubmitting] = useState(false); // derived values const isIntercomEnabled = isTelemetryEnabled ? instanceConfigurations ? instanceConfigurations?.find((config) => config.key === "IS_INTERCOM_ENABLED")?.value === "1" ? true : false : undefined : false; const { isLoading } = useSWR(isTelemetryEnabled ? "INSTANCE_CONFIGURATIONS" : null, () => isTelemetryEnabled ? fetchInstanceConfigurations() : null ); const initialLoader = isLoading && isIntercomEnabled === undefined; const submitInstanceConfigurations = async (payload: Partial) => { try { await updateInstanceConfigurations(payload); } catch (error) { console.error(error); } finally { setIsSubmitting(false); } }; const enableIntercomConfig = () => { submitInstanceConfigurations({ IS_INTERCOM_ENABLED: isIntercomEnabled ? "0" : "1" }); }; return ( <>
Chat with us
Let your users chat with us via Intercom or another service. Toggling Telemetry off turns this off automatically.
); });