import { Box, Button, Text } from "@saleor/macaw-ui/next"; import { SemanticChip } from "@saleor/apps-ui"; import { BoxWithBorder } from "../../../components/box-with-border"; import { BoxFooter } from "../../../components/box-footer"; import { defaultPadding } from "../../../components/ui-defaults"; import { useRouter } from "next/router"; import Image from "next/image"; import sendgrid from "../../../public/sendgrid.png"; import smtp from "../../../public/smtp.svg"; import { smtpUrls } from "../../smtp/urls"; import { sendgridUrls } from "../../sendgrid/urls"; import { appUrls } from "../urls"; import React from "react"; const NoExistingConfigurations = () => { const { push } = useRouter(); const redirectToProvidersSelection = () => { push(appUrls.chooseProvider()); }; return ( No providers configured yet ); }; type ProviderType = "sendgrid" | "smtp"; const providerLabels: Record = { sendgrid: "Sendgrid", smtp: "SMTP", }; export type ConfigurationListItem = { id: string; name: string; active: boolean; provider: ProviderType; }; interface MessagingProvidersSectionProps { configurations: ConfigurationListItem[]; isLoading: boolean; } export const MessagingProvidersBox = ({ configurations, isLoading: loading, }: MessagingProvidersSectionProps) => { const { push } = useRouter(); if (loading) { return ( Loading ); } if (configurations.length === 0) { return ; } const redirectToProvidersSelection = () => { push(appUrls.chooseProvider()); }; const getEditLink = (configuration: ConfigurationListItem) => { switch (configuration.provider) { case "smtp": return smtpUrls.configuration(configuration.id); case "sendgrid": return sendgridUrls.configuration(configuration.id); } }; const getProviderLogo = (configuration: ConfigurationListItem) => { switch (configuration.provider) { case "smtp": return SMTP logo; case "sendgrid": return Sendgrid logo; } }; return ( Provider Configuration name Status {configurations.map((configuration) => ( {getProviderLogo(configuration)} {providerLabels[configuration.provider]} {configuration.name} {configuration.active ? "Active" : "Inactive"} ))} ); };