"use client"; import { useState } from "react"; import { observer } from "mobx-react"; import Image from "next/image"; import Link from "next/link"; import { useParams, useSearchParams } from "next/navigation"; import useSWR, { mutate } from "swr"; // icons import { RefreshCw } from "lucide-react"; // plane imports import { IMPORTERS_LIST } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // types import { IImporterService } from "@plane/types"; // ui import { Button } from "@plane/ui"; // components import { DeleteImportModal, GithubImporterRoot, JiraImporterRoot, SingleImport } from "@/components/integration"; import { ImportExportSettingsLoader } from "@/components/ui/loader/settings/import-and-export"; // constants import { IMPORTER_SERVICES_LIST } from "@/constants/fetch-keys"; // hooks import { useUser } from "@/hooks/store/user"; // assets import GithubLogo from "@/public/services/github.png"; import JiraLogo from "@/public/services/jira.svg"; // services import { IntegrationService } from "@/services/integrations"; // services const integrationService = new IntegrationService(); const getImporterLogo = (provider: string) => { switch (provider) { case "github": return GithubLogo; case "jira": return JiraLogo; default: return ""; } }; // FIXME: [Deprecated] Remove this component const IntegrationGuide = observer(() => { // states const [refreshing, setRefreshing] = useState(false); const [deleteImportModal, setDeleteImportModal] = useState(false); const [importToDelete, setImportToDelete] = useState(null); // router const { workspaceSlug } = useParams(); const searchParams = useSearchParams(); const provider = searchParams.get("provider"); // store hooks const { data: currentUser } = useUser(); const { t } = useTranslation(); const { data: importerServices } = useSWR( workspaceSlug ? IMPORTER_SERVICES_LIST(workspaceSlug as string) : null, workspaceSlug ? () => integrationService.getImporterServicesList(workspaceSlug as string) : null ); const handleDeleteImport = (importService: IImporterService) => { setImportToDelete(importService); setDeleteImportModal(true); }; return ( <> setDeleteImportModal(false)} data={importToDelete} user={currentUser || null} />
{(!provider || provider === "csv") && ( <> {/*
Relocation Guide
You can now transfer all the work items that you{"'"}ve created in other tracking services. This tool will guide you to relocate the work item to Plane.
Read More
*/} {IMPORTERS_LIST.map((service) => (
{`${t(service.i18n_title)}

{t(service.i18n_title)}

{t(service.i18n_description)}

))}

Previous Imports

{importerServices ? ( importerServices.length > 0 ? (
{importerServices.map((service) => ( handleDeleteImport(service)} /> ))}
) : (
{/* */}
) ) : ( )}
)} {provider && provider === "github" && } {provider && provider === "jira" && }
); }); export default IntegrationGuide;