"use client"; import { FC } from "react"; import { observer } from "mobx-react"; import { Controller, useForm } from "react-hook-form"; import { Telescope } from "lucide-react"; // types import { IInstance, IInstanceAdmin } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, ToggleSwitch, setToast } from "@plane/ui"; // components import { ControllerInput } from "@/components/common/controller-input"; import { useInstance } from "@/hooks/store"; import { IntercomConfig } from "./intercom"; // hooks export interface IGeneralConfigurationForm { instance: IInstance; instanceAdmins: IInstanceAdmin[]; } export const GeneralConfigurationForm: FC = observer((props) => { const { instance, instanceAdmins } = props; // hooks const { instanceConfigurations, updateInstanceInfo, updateInstanceConfigurations } = useInstance(); // form data const { handleSubmit, control, watch, formState: { errors, isSubmitting }, } = useForm>({ defaultValues: { instance_name: instance?.instance_name, is_telemetry_enabled: instance?.is_telemetry_enabled, }, }); const onSubmit = async (formData: Partial) => { const payload: Partial = { ...formData }; // update the intercom configuration const isIntercomEnabled = instanceConfigurations?.find((config) => config.key === "IS_INTERCOM_ENABLED")?.value === "1"; if (!payload.is_telemetry_enabled && isIntercomEnabled) { try { await updateInstanceConfigurations({ IS_INTERCOM_ENABLED: "0" }); } catch (error) { console.error(error); } } await updateInstanceInfo(payload) .then(() => setToast({ type: TOAST_TYPE.SUCCESS, title: "Success", message: "Settings updated successfully", }) ) .catch((err) => console.error(err)); }; return (
Instance details

Email

Instance ID

Chat + telemetry
Let Plane collect anonymous usage data
No PII is collected.This anonymized data is used to understand how you use Plane and build new features in line with{" "} our Telemetry Policy.
( )} />
); });