saleor-apps-redis_apl/apps/taxes/src/modules/providers-configuration/ui/provider-icon.tsx
Adrian Pilarczyk 9f0dd813a4
feat: add taxes app (#223)
* feat:  add taxes app

* chore: 🔥 remove files, use monorepo ones instead

* chore:  add all env vars to .env.example

* refactor: 🔧 use saleor eslint config

* build: ⬆️ app-sdk, remove vercel from apl

* refactor: ♻️ remove providers/index, infer taxProviders from providerConfig

* refactor: ♻️ use tuples to use objects

* refactor: 🚚 move types to taxes module

* refactor: ♻️ tax-prepare-data -> tax-line-resolver

* refactor: get isInFrame from apps-shared

* build: ⬆️ next

* feat:  add appRegister allowlist

* Update apps/taxes/src/pages/api/manifest.ts

Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com>

* Update apps/taxes/src/pages/api/manifest.ts

Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com>

* chore: 💡 improve comments

* refactor: 🔥 app-dashboard-link

* docs: 📝 add taxes to readme

* refactor: 🔥 app-main-bar

* refactor: ♻️ align saleor-app.ts with the rest

* refactor: ♻️ use defaultValues

* chore: ♻️ misc

---------

Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com>
2023-03-02 12:01:17 +01:00

24 lines
708 B
TypeScript

import Image, { ImageProps } from "next/image";
import { providerConfig, TaxProviderName } from "../../taxes/providers/config";
type Size = "small" | "medium" | "large" | "xlarge";
const sizes: Record<Size, number> = {
small: 16,
medium: 24,
large: 32,
xlarge: 48,
};
type ProviderIconProps = {
provider: TaxProviderName;
size?: Size;
} & Omit<ImageProps, "src" | "height" | "width" | "alt">;
export const ProviderIcon = ({ provider, size = "medium", ...props }: ProviderIconProps) => {
const { icon, label } = providerConfig[provider];
const matchedSize = sizes[size];
return (
<Image src={icon} alt={`${label} icon`} width={matchedSize} height={matchedSize} {...props} />
);
};