chore: remove Intercom integration and chat support components (#8875)
Intercom is no longer used. This removes all related frontend components, hooks, custom events, API config, types, and i18n keys.
This commit is contained in:
parent
e6b9d4c9ba
commit
c21d2c6fb3
28 changed files with 3 additions and 240 deletions
|
|
@ -16,8 +16,6 @@ import { Input, ToggleSwitch } from "@plane/ui";
|
|||
import { ControllerInput } from "@/components/common/controller-input";
|
||||
// hooks
|
||||
import { useInstance } from "@/hooks/store";
|
||||
// components
|
||||
import { IntercomConfig } from "./intercom";
|
||||
|
||||
export interface IGeneralConfigurationForm {
|
||||
instance: IInstance;
|
||||
|
|
@ -27,14 +25,13 @@ export interface IGeneralConfigurationForm {
|
|||
export const GeneralConfigurationForm = observer(function GeneralConfigurationForm(props: IGeneralConfigurationForm) {
|
||||
const { instance, instanceAdmins } = props;
|
||||
// hooks
|
||||
const { instanceConfigurations, updateInstanceInfo, updateInstanceConfigurations } = useInstance();
|
||||
const { updateInstanceInfo } = useInstance();
|
||||
|
||||
// form data
|
||||
const {
|
||||
handleSubmit,
|
||||
control,
|
||||
formState: { errors, isSubmitting },
|
||||
watch,
|
||||
} = useForm<Partial<IInstance>>({
|
||||
defaultValues: {
|
||||
instance_name: instance?.instance_name,
|
||||
|
|
@ -45,17 +42,6 @@ export const GeneralConfigurationForm = observer(function GeneralConfigurationFo
|
|||
const onSubmit = async (formData: Partial<IInstance>) => {
|
||||
const payload: Partial<IInstance> = { ...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({
|
||||
|
|
@ -112,8 +98,7 @@ export const GeneralConfigurationForm = observer(function GeneralConfigurationFo
|
|||
</div>
|
||||
|
||||
<div className="space-y-6">
|
||||
<div className="border-b border-subtle pb-1.5 text-16 font-medium text-primary">Chat + telemetry</div>
|
||||
<IntercomConfig isTelemetryEnabled={watch("is_telemetry_enabled") ?? false} />
|
||||
<div className="border-b border-subtle pb-1.5 text-16 font-medium text-primary">Telemetry</div>
|
||||
<div className="flex items-center gap-14">
|
||||
<div className="flex grow items-center gap-4">
|
||||
<div className="shrink-0">
|
||||
|
|
|
|||
|
|
@ -1,86 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
import { useState } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import useSWR from "swr";
|
||||
import { MessageSquare } from "lucide-react";
|
||||
import type { IFormattedInstanceConfiguration } from "@plane/types";
|
||||
import { ToggleSwitch } from "@plane/ui";
|
||||
// hooks
|
||||
import { useInstance } from "@/hooks/store";
|
||||
|
||||
type TIntercomConfig = {
|
||||
isTelemetryEnabled: boolean;
|
||||
};
|
||||
|
||||
export const IntercomConfig = observer(function IntercomConfig(props: TIntercomConfig) {
|
||||
const { isTelemetryEnabled } = props;
|
||||
// hooks
|
||||
const { instanceConfigurations, updateInstanceConfigurations, fetchInstanceConfigurations } = useInstance();
|
||||
// states
|
||||
const [isSubmitting, setIsSubmitting] = useState<boolean>(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<IFormattedInstanceConfiguration>) => {
|
||||
try {
|
||||
await updateInstanceConfigurations(payload);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
} finally {
|
||||
setIsSubmitting(false);
|
||||
}
|
||||
};
|
||||
|
||||
const enableIntercomConfig = () => {
|
||||
void submitInstanceConfigurations({ IS_INTERCOM_ENABLED: isIntercomEnabled ? "0" : "1" });
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="flex items-center gap-14">
|
||||
<div className="flex grow items-center gap-4">
|
||||
<div className="shrink-0">
|
||||
<div className="flex size-11 items-center justify-center rounded-lg bg-layer-1">
|
||||
<MessageSquare className="size-5 p-0.5 text-tertiary" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="grow">
|
||||
<div className="text-13 leading-5 font-medium text-primary">Chat with us</div>
|
||||
<div className="text-11 leading-5 font-regular text-tertiary">
|
||||
Let your users chat with us via Intercom or another service. Toggling Telemetry off turns this off
|
||||
automatically.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="ml-auto">
|
||||
<ToggleSwitch
|
||||
value={isIntercomEnabled ? true : false}
|
||||
onChange={enableIntercomConfig}
|
||||
size="sm"
|
||||
disabled={!isTelemetryEnabled || isSubmitting || initialLoader}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
});
|
||||
|
|
@ -63,8 +63,6 @@ class InstanceEndpoint(BaseAPIView):
|
|||
POSTHOG_HOST,
|
||||
UNSPLASH_ACCESS_KEY,
|
||||
LLM_API_KEY,
|
||||
IS_INTERCOM_ENABLED,
|
||||
INTERCOM_APP_ID,
|
||||
) = get_configuration_value(
|
||||
[
|
||||
{
|
||||
|
|
@ -124,15 +122,6 @@ class InstanceEndpoint(BaseAPIView):
|
|||
"key": "LLM_API_KEY",
|
||||
"default": os.environ.get("LLM_API_KEY", ""),
|
||||
},
|
||||
# Intercom settings
|
||||
{
|
||||
"key": "IS_INTERCOM_ENABLED",
|
||||
"default": os.environ.get("IS_INTERCOM_ENABLED", "1"),
|
||||
},
|
||||
{
|
||||
"key": "INTERCOM_APP_ID",
|
||||
"default": os.environ.get("INTERCOM_APP_ID", ""),
|
||||
},
|
||||
]
|
||||
)
|
||||
|
||||
|
|
@ -169,10 +158,6 @@ class InstanceEndpoint(BaseAPIView):
|
|||
# is smtp configured
|
||||
data["is_smtp_configured"] = bool(EMAIL_HOST)
|
||||
|
||||
# Intercom settings
|
||||
data["is_intercom_enabled"] = IS_INTERCOM_ENABLED == "1"
|
||||
data["intercom_app_id"] = INTERCOM_APP_ID
|
||||
|
||||
# Base URL
|
||||
data["admin_base_url"] = settings.ADMIN_BASE_URL
|
||||
data["space_base_url"] = settings.SPACE_BASE_URL
|
||||
|
|
|
|||
|
|
@ -232,21 +232,6 @@ unsplash_config_variables = [
|
|||
},
|
||||
]
|
||||
|
||||
intercom_config_variables = [
|
||||
{
|
||||
"key": "IS_INTERCOM_ENABLED",
|
||||
"value": os.environ.get("IS_INTERCOM_ENABLED", "1"),
|
||||
"category": "INTERCOM",
|
||||
"is_encrypted": False,
|
||||
},
|
||||
{
|
||||
"key": "INTERCOM_APP_ID",
|
||||
"value": os.environ.get("INTERCOM_APP_ID", ""),
|
||||
"category": "INTERCOM",
|
||||
"is_encrypted": False,
|
||||
},
|
||||
]
|
||||
|
||||
core_config_variables = [
|
||||
*authentication_config_variables,
|
||||
*workspace_management_config_variables,
|
||||
|
|
@ -257,5 +242,4 @@ core_config_variables = [
|
|||
*smtp_config_variables,
|
||||
*llm_config_variables,
|
||||
*unsplash_config_variables,
|
||||
*intercom_config_variables,
|
||||
]
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import { FileText, GithubIcon, MessageSquare, Rocket } from "lucide-react";
|
|||
import type { TPowerKCommandConfig } from "@/components/power-k/core/types";
|
||||
// hooks
|
||||
import { usePowerK } from "@/hooks/store/use-power-k";
|
||||
import { useChatSupport } from "@/hooks/use-chat-support";
|
||||
|
||||
/**
|
||||
* Help commands - Help related commands
|
||||
|
|
@ -17,7 +16,6 @@ import { useChatSupport } from "@/hooks/use-chat-support";
|
|||
export const usePowerKHelpCommands = (): TPowerKCommandConfig[] => {
|
||||
// store
|
||||
const { toggleShortcutsListModal } = usePowerK();
|
||||
const { isEnabled: isChatSupportEnabled, openChatSupport } = useChatSupport();
|
||||
|
||||
return [
|
||||
{
|
||||
|
|
@ -71,16 +69,5 @@ export const usePowerKHelpCommands = (): TPowerKCommandConfig[] => {
|
|||
isVisible: () => true,
|
||||
closeOnSelect: true,
|
||||
},
|
||||
{
|
||||
id: "chat_with_us",
|
||||
type: "action",
|
||||
group: "help",
|
||||
i18n_title: "power_k.help_actions.chat_with_us",
|
||||
icon: MessageSquare,
|
||||
action: () => openChatSupport(),
|
||||
isEnabled: () => isChatSupportEnabled,
|
||||
isVisible: () => isChatSupportEnabled,
|
||||
closeOnSelect: true,
|
||||
},
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
import React, { useState } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { HelpCircle, MessagesSquare, User } from "lucide-react";
|
||||
import { HelpCircle, User } from "lucide-react";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
import { PageIcon } from "@plane/propel/icons";
|
||||
// ui
|
||||
|
|
@ -16,7 +16,6 @@ import { ProductUpdatesModal } from "@/components/global";
|
|||
import { AppSidebarItem } from "@/components/sidebar/sidebar-item";
|
||||
// hooks
|
||||
import { usePowerK } from "@/hooks/store/use-power-k";
|
||||
import { useChatSupport } from "@/hooks/use-chat-support";
|
||||
// plane web components
|
||||
import { PlaneVersionNumber } from "@/plane-web/components/global";
|
||||
|
||||
|
|
@ -24,7 +23,6 @@ export const HelpMenuRoot = observer(function HelpMenuRoot() {
|
|||
// store hooks
|
||||
const { t } = useTranslation();
|
||||
const { toggleShortcutsListModal } = usePowerK();
|
||||
const { openChatSupport, isEnabled: isChatSupportEnabled } = useChatSupport();
|
||||
// states
|
||||
const [isNeedHelpOpen, setIsNeedHelpOpen] = useState(false);
|
||||
const [isProductUpdatesModalOpen, setProductUpdatesModalOpen] = useState(false);
|
||||
|
|
@ -56,18 +54,6 @@ export const HelpMenuRoot = observer(function HelpMenuRoot() {
|
|||
<span className="text-11">{t("documentation")}</span>
|
||||
</div>
|
||||
</CustomMenu.MenuItem>
|
||||
{isChatSupportEnabled && (
|
||||
<CustomMenu.MenuItem>
|
||||
<button
|
||||
type="button"
|
||||
onClick={openChatSupport}
|
||||
className="flex w-full items-center gap-x-2 rounded-sm text-11 hover:bg-layer-1"
|
||||
>
|
||||
<MessagesSquare className="h-3.5 w-3.5 text-secondary" />
|
||||
<span className="text-11">{t("message_support")}</span>
|
||||
</button>
|
||||
</CustomMenu.MenuItem>
|
||||
)}
|
||||
<CustomMenu.MenuItem onClick={() => window.open("mailto:sales@plane.so", "_blank")}>
|
||||
<div className="flex items-center gap-x-2 rounded-sm text-11">
|
||||
<User className="h-3.5 w-3.5 text-secondary" size={14} />
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
type ChatSupportType = "open";
|
||||
|
||||
type ChatSupportEventType = `chat-support:${ChatSupportType}`;
|
||||
|
||||
export const CHAT_SUPPORT_EVENTS = {
|
||||
open: "chat-support:open",
|
||||
} satisfies Record<ChatSupportType, ChatSupportEventType>;
|
||||
|
||||
export class ChatSupportEvent extends CustomEvent<ChatSupportType> {
|
||||
constructor(type: ChatSupportType) {
|
||||
super(CHAT_SUPPORT_EVENTS[type]);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
import { useCallback } from "react";
|
||||
// custom events
|
||||
import { ChatSupportEvent } from "@/custom-events/chat-support";
|
||||
// hooks
|
||||
import { useInstance } from "@/hooks/store/use-instance";
|
||||
import { useUser } from "@/hooks/store/user";
|
||||
|
||||
export interface IUseChatSupport {
|
||||
openChatSupport: () => void;
|
||||
isEnabled: boolean;
|
||||
}
|
||||
|
||||
export const useChatSupport = (): IUseChatSupport => {
|
||||
const { data: user } = useUser();
|
||||
const { config } = useInstance();
|
||||
// derived values
|
||||
const isEnabled = Boolean(user && config?.is_intercom_enabled && config?.intercom_app_id);
|
||||
|
||||
const openChatSupport = useCallback(() => {
|
||||
if (!isEnabled) return;
|
||||
window.dispatchEvent(new ChatSupportEvent("open"));
|
||||
}, [isEnabled]);
|
||||
|
||||
return { openChatSupport, isEnabled };
|
||||
};
|
||||
|
|
@ -395,7 +395,6 @@ export default {
|
|||
time_tracking_description: "Zaznamenávejte čas strávený na pracovních položkách a projektech.",
|
||||
work_management_description: "Spravujte svou práci a projekty snadno.",
|
||||
documentation: "Dokumentace",
|
||||
message_support: "Kontaktovat podporu",
|
||||
contact_sales: "Kontaktovat prodej",
|
||||
hyper_mode: "Hyper režim",
|
||||
keyboard_shortcuts: "Klávesové zkratky",
|
||||
|
|
|
|||
|
|
@ -406,7 +406,6 @@ export default {
|
|||
time_tracking_description: "Erfassen Sie die auf Arbeitselemente und Projekte verwendete Zeit.",
|
||||
work_management_description: "Verwalten Sie Ihre Arbeit und Projekte mühelos.",
|
||||
documentation: "Dokumentation",
|
||||
message_support: "Support kontaktieren",
|
||||
contact_sales: "Vertrieb kontaktieren",
|
||||
hyper_mode: "Hyper-Modus",
|
||||
keyboard_shortcuts: "Tastaturkürzel",
|
||||
|
|
|
|||
|
|
@ -229,7 +229,6 @@ export default {
|
|||
time_tracking_description: "Log time spent on work items and projects.",
|
||||
work_management_description: "Manage your work and projects with ease.",
|
||||
documentation: "Documentation",
|
||||
message_support: "Message support",
|
||||
contact_sales: "Contact sales",
|
||||
hyper_mode: "Hyper Mode",
|
||||
keyboard_shortcuts: "Keyboard shortcuts",
|
||||
|
|
@ -2697,7 +2696,6 @@ export default {
|
|||
open_plane_documentation: "Open Plane documentation",
|
||||
join_forum: "Join our Forum",
|
||||
report_bug: "Report a bug",
|
||||
chat_with_us: "Chat with us",
|
||||
},
|
||||
page_placeholders: {
|
||||
default: "Type a command or search",
|
||||
|
|
|
|||
|
|
@ -406,7 +406,6 @@ export default {
|
|||
time_tracking_description: "Registra el tiempo dedicado a elementos de trabajo y proyectos.",
|
||||
work_management_description: "Gestiona tu trabajo y proyectos con facilidad.",
|
||||
documentation: "Documentación",
|
||||
message_support: "Mensaje al soporte",
|
||||
contact_sales: "Contactar ventas",
|
||||
hyper_mode: "Modo Hyper",
|
||||
keyboard_shortcuts: "Atajos de teclado",
|
||||
|
|
|
|||
|
|
@ -402,7 +402,6 @@ export default {
|
|||
time_tracking_description: "Enregistrez le temps passé sur les éléments de travail et les projets.",
|
||||
work_management_description: "Gérez votre travail et vos projets facilement.",
|
||||
documentation: "Documentation",
|
||||
message_support: "Contacter le support",
|
||||
contact_sales: "Contacter les ventes",
|
||||
hyper_mode: "Mode Hyper",
|
||||
keyboard_shortcuts: "Raccourcis clavier",
|
||||
|
|
|
|||
|
|
@ -398,7 +398,6 @@ export default {
|
|||
time_tracking_description: "Catat waktu yang dihabiskan untuk item kerja dan proyek.",
|
||||
work_management_description: "Kelola pekerjaan dan proyek Anda dengan mudah.",
|
||||
documentation: "Dokumentasi",
|
||||
message_support: "Pesan dukungan",
|
||||
contact_sales: "Hubungi penjualan",
|
||||
hyper_mode: "Mode Hyper",
|
||||
keyboard_shortcuts: "Pintasan keyboard",
|
||||
|
|
|
|||
|
|
@ -400,7 +400,6 @@ export default {
|
|||
time_tracking_description: "Registra il tempo trascorso su elementi di lavoro e progetti.",
|
||||
work_management_description: "Gestisci il tuo lavoro e i tuoi progetti con facilità.",
|
||||
documentation: "Documentazione",
|
||||
message_support: "Contatta il supporto",
|
||||
contact_sales: "Contatta le vendite",
|
||||
hyper_mode: "Modalità Hyper",
|
||||
keyboard_shortcuts: "Scorciatoie da tastiera",
|
||||
|
|
|
|||
|
|
@ -395,7 +395,6 @@ export default {
|
|||
time_tracking_description: "作業項目やプロジェクトに費やした時間を記録します。",
|
||||
work_management_description: "作業とプロジェクトを簡単に管理します。",
|
||||
documentation: "ドキュメント",
|
||||
message_support: "サポートにメッセージ",
|
||||
contact_sales: "営業に問い合わせ",
|
||||
hyper_mode: "Hyper Mode",
|
||||
keyboard_shortcuts: "キーボードショートカット",
|
||||
|
|
|
|||
|
|
@ -390,7 +390,6 @@ export default {
|
|||
time_tracking_description: "작업 항목 및 프로젝트에 소요된 시간을 기록하세요.",
|
||||
work_management_description: "작업 및 프로젝트를 쉽게 관리합니다.",
|
||||
documentation: "문서",
|
||||
message_support: "지원 메시지",
|
||||
contact_sales: "영업 문의",
|
||||
hyper_mode: "하이퍼 모드",
|
||||
keyboard_shortcuts: "키보드 단축키",
|
||||
|
|
|
|||
|
|
@ -393,7 +393,6 @@ export default {
|
|||
time_tracking_description: "Rejestruj czas spędzony na elementach pracy i projektach.",
|
||||
work_management_description: "Łatwo zarządzaj swoją pracą i projektami.",
|
||||
documentation: "Dokumentacja",
|
||||
message_support: "Skontaktuj się z pomocą",
|
||||
contact_sales: "Skontaktuj się z działem sprzedaży",
|
||||
hyper_mode: "Tryb Hyper",
|
||||
keyboard_shortcuts: "Skróty klawiaturowe",
|
||||
|
|
|
|||
|
|
@ -402,7 +402,6 @@ export default {
|
|||
time_tracking_description: "Registre o tempo gasto em itens de trabalho e projetos.",
|
||||
work_management_description: "Gerencie seu trabalho e projetos com facilidade.",
|
||||
documentation: "Documentação",
|
||||
message_support: "Suporte por mensagem",
|
||||
contact_sales: "Contatar vendas",
|
||||
hyper_mode: "Modo Hyper",
|
||||
keyboard_shortcuts: "Atalhos do teclado",
|
||||
|
|
|
|||
|
|
@ -399,7 +399,6 @@ export default {
|
|||
time_tracking_description: "Înregistrează timpul petrecut pe activități și proiecte.",
|
||||
work_management_description: "Gestionează-ți munca și proiectele cu ușurință.",
|
||||
documentation: "Documentație",
|
||||
message_support: "Trimite mesaj la suport",
|
||||
contact_sales: "Contactează vânzările",
|
||||
hyper_mode: "Mod Hyper",
|
||||
keyboard_shortcuts: "Scurtături tastatură",
|
||||
|
|
|
|||
|
|
@ -402,7 +402,6 @@ export default {
|
|||
time_tracking_description: "Записывайте время, потраченное на рабочие элементы и проекты.",
|
||||
work_management_description: "Управление рабочими элементами и проектами",
|
||||
documentation: "Документация",
|
||||
message_support: "Написать в поддержку",
|
||||
contact_sales: "Связаться с отделом продаж",
|
||||
hyper_mode: "Гиперрежим",
|
||||
keyboard_shortcuts: "Горячие клавиши",
|
||||
|
|
@ -2869,7 +2868,6 @@ export default {
|
|||
open_plane_documentation: "Открыть документацию Plane",
|
||||
join_forum: "Присоединиться к Forum",
|
||||
report_bug: "Сообщить об ошибке",
|
||||
chat_with_us: "Написать нам",
|
||||
},
|
||||
page_placeholders: {
|
||||
default: "Введите команду или поиск",
|
||||
|
|
|
|||
|
|
@ -395,7 +395,6 @@ export default {
|
|||
time_tracking_description: "Zaznamenajte čas strávený na pracovných položkách a projektoch.",
|
||||
work_management_description: "Spravujte svoju prácu a projekty jednoducho.",
|
||||
documentation: "Dokumentácia",
|
||||
message_support: "Kontaktovať podporu",
|
||||
contact_sales: "Kontaktovať predaj",
|
||||
hyper_mode: "Hyper režim",
|
||||
keyboard_shortcuts: "Klávesové skratky",
|
||||
|
|
|
|||
|
|
@ -396,7 +396,6 @@ export default {
|
|||
time_tracking_description: "İş öğeleri ve projelerde harcanan zamanı kaydedin.",
|
||||
work_management_description: "İşlerinizi ve projelerinizi kolayca yönetin.",
|
||||
documentation: "Dokümantasyon",
|
||||
message_support: "Destekle iletişim",
|
||||
contact_sales: "Satış Ekibiyle İletişim",
|
||||
hyper_mode: "Hiper Mod",
|
||||
keyboard_shortcuts: "Klavye Kısayolları",
|
||||
|
|
|
|||
|
|
@ -402,7 +402,6 @@ export default {
|
|||
time_tracking_description: "Фіксуйте час, витрачений на робочі одиниці та проєкти.",
|
||||
work_management_description: "Зручно керуйте своєю роботою та проєктами.",
|
||||
documentation: "Документація",
|
||||
message_support: "Звернутися в підтримку",
|
||||
contact_sales: "Зв’язатися з відділом продажів",
|
||||
hyper_mode: "Гіпер-режим",
|
||||
keyboard_shortcuts: "Гарячі клавіші",
|
||||
|
|
@ -2861,7 +2860,6 @@ export default {
|
|||
open_plane_documentation: "Відкрити документацію Plane",
|
||||
join_forum: "Приєднатися до Forum",
|
||||
report_bug: "Повідомити про помилку",
|
||||
chat_with_us: "Написати нам",
|
||||
},
|
||||
page_placeholders: {
|
||||
default: "Введіть команду або виконайте пошук",
|
||||
|
|
|
|||
|
|
@ -399,7 +399,6 @@ export default {
|
|||
time_tracking_description: "Ghi lại thời gian dành cho các mục công việc và dự án.",
|
||||
work_management_description: "Quản lý công việc và dự án của bạn một cách dễ dàng.",
|
||||
documentation: "Tài liệu",
|
||||
message_support: "Liên hệ hỗ trợ",
|
||||
contact_sales: "Liên hệ bộ phận bán hàng",
|
||||
hyper_mode: "Chế độ siêu tốc",
|
||||
keyboard_shortcuts: "Phím tắt",
|
||||
|
|
|
|||
|
|
@ -385,7 +385,6 @@ export default {
|
|||
time_tracking_description: "记录在工作项和项目上花费的时间。",
|
||||
work_management_description: "轻松管理您的工作和项目。",
|
||||
documentation: "文档",
|
||||
message_support: "联系支持",
|
||||
contact_sales: "联系销售",
|
||||
hyper_mode: "超级模式",
|
||||
keyboard_shortcuts: "键盘快捷键",
|
||||
|
|
|
|||
|
|
@ -384,7 +384,6 @@ export default {
|
|||
time_tracking_description: "記錄在工作事項和專案上花費的時間。",
|
||||
work_management_description: "輕鬆管理您的工作和專案。",
|
||||
documentation: "文件",
|
||||
message_support: "聯絡支援",
|
||||
contact_sales: "聯絡業務",
|
||||
hyper_mode: "極速模式",
|
||||
keyboard_shortcuts: "鍵盤快速鍵",
|
||||
|
|
|
|||
|
|
@ -65,9 +65,6 @@ export interface IInstanceConfig {
|
|||
space_base_url: string | undefined;
|
||||
admin_base_url: string | undefined;
|
||||
is_self_managed: boolean;
|
||||
// intercom
|
||||
is_intercom_enabled: boolean;
|
||||
intercom_app_id: string | undefined;
|
||||
instance_changelog_url?: string;
|
||||
}
|
||||
|
||||
|
|
@ -83,14 +80,11 @@ export interface IInstanceAdmin {
|
|||
user_detail: IUserLite;
|
||||
}
|
||||
|
||||
export type TInstanceIntercomConfigurationKeys = "IS_INTERCOM_ENABLED" | "INTERCOM_APP_ID";
|
||||
|
||||
export type TInstanceConfigurationKeys =
|
||||
| TInstanceAIConfigurationKeys
|
||||
| TInstanceEmailConfigurationKeys
|
||||
| TInstanceImageConfigurationKeys
|
||||
| TInstanceAuthenticationKeys
|
||||
| TInstanceIntercomConfigurationKeys
|
||||
| TInstanceWorkspaceConfigurationKeys;
|
||||
|
||||
export interface IInstanceConfiguration {
|
||||
|
|
|
|||
Loading…
Reference in a new issue