"use client"; import { Alert, Button, Group, Skeleton, Stack, Text } from "@mantine/core"; import { IconInfoCircle } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; import { getIntegrationName } from "@homarr/definitions"; import { createModal, modalSizeForm } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; import { IntegrationAvatar } from "@homarr/ui"; import { EditIntegrationForm } from "~/app/[locale]/manage/integrations/edit/[id]/_integration-edit-form"; export interface EmbeddedIntegrationEditModalProps { integrationId: string; onSuccess?: () => void; } export const EmbeddedIntegrationEditModal = createModal( ({ actions, innerProps }) => { const t = useI18n(); const { data: integration, isPending, isError, refetch, } = clientApi.integration.byId.useQuery({ id: innerProps.integrationId, }); if (isPending) { return ( ); } if (isError || !integration) { return ( {t("item.edit.integration.loadError")} ); } return ( {integration.name} {getIntegrationName(integration.kind)} } color="blue" variant="light"> {t("item.edit.integration.propagationNotice")} { innerProps.onSuccess?.(); actions.closeModal(); }} /> ); }, ).withOptions({ defaultTitle: (t) => t("item.edit.tab.integration"), size: modalSizeForm, presentation: "inspector", closeOnClickOutside: true, });