Files
triggerdotdev--trigger.dev/apps/webapp/app/components/code/ApiLogoIcon.tsx
T
Eric Allam 5035e10f11 Fix issue with zod schemas getting serialized through loaders and causing mucho errors
Create SerializableProvider and omit non-serializable data from getProviders
2023-01-29 07:04:51 +00:00

60 lines
1.0 KiB
TypeScript

type Props = Omit<
React.DetailedHTMLProps<
React.ImgHTMLAttributes<HTMLImageElement>,
HTMLImageElement
>,
"src" | "alt"
> & {
integration?: { icon: string; name: string };
size?: Size;
};
type Size =
| "extra-small"
| "small"
| "regular"
| "large"
| "extra-large"
| "custom";
export function ApiLogoIcon({
className,
integration,
size = "extra-large",
...props
}: Props) {
if (!integration) {
return null;
}
return (
<img
className={`
rounded bg-slate-850
${getSizeClassName(size)}
${className}
`}
src={integration.icon}
alt={integration.name}
{...props}
/>
);
}
function getSizeClassName(size: Size) {
switch (size) {
case "extra-small":
return "h-6 w-6 p-2";
case "small":
return "h-8 w-8 p-2";
case "large":
return "h-16 w-16 p-2";
case "extra-large":
return "h-20 w-20 p-2";
case "custom":
return "";
case "regular":
default:
return "h-10 w-10 p-2";
}
}