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 ;
case "sendgrid":
return ;
}
};
return (
Provider
Configuration name
Status
{configurations.map((configuration) => (
{getProviderLogo(configuration)}
{providerLabels[configuration.provider]}
{configuration.name}
{configuration.active ? "Active" : "Inactive"}
))}
);
};