@swapr/ui
Version:
Lib of UI components and web3 components
1 lines • 6.44 kB
Source Map (JSON)
{"version":3,"file":"Toast.cjs","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { PropsWithChildren, ReactNode } from \"react\";\nimport { toast as sonnerToast, Toaster } from \"sonner\";\nimport { cva } from \"class-variance-authority\";\n\nimport { IconButton, Button, Icon, IconName } from \"@/components\";\n\nexport const toastStyles = cva(\n [\n \"flex items-center\",\n \"w-fit px-4 py-3.5 space-x-4\",\n \"bg-surface-surface-white-smoke-1 border shadow-6 rounded-20\",\n \"text-text-low-em\",\n ],\n {\n variants: {\n colorScheme: {\n default: [\"border-outline-base-em\"],\n error: [\"border-outline-danger-alpha\"],\n success: [\"border-outline-success-alpha\"],\n warning: [\"border-outline-warning-alpha\"],\n info: [\"border-outline-info-alpha\"],\n },\n },\n defaultVariants: {\n colorScheme: \"default\",\n },\n }\n);\n\ninterface ToastProps extends PropsWithChildren {\n actionText?: ReactNode | string | undefined;\n actionOnClick?: () => void;\n colorScheme?: \"default\" | \"error\" | \"success\" | \"warning\" | \"info\";\n className?: string;\n iconName?: IconName;\n}\n\nexport const toast = ({\n actionOnClick,\n actionText,\n colorScheme,\n children,\n className,\n}: ToastProps) => {\n sonnerToast.custom(t => (\n <div className={toastStyles({ colorScheme, className })}>\n <div className=\"flex items-center space-x-4 shrink-0\">\n {children}\n {actionText && (\n <Button\n colorScheme=\"main\"\n variant=\"tertiary\"\n size=\"sm\"\n onClick={actionOnClick}\n >\n {actionText}\n </Button>\n )}\n <IconButton\n variant=\"ghost\"\n name=\"cross\"\n size=\"xs\"\n onClick={() => sonnerToast.dismiss(t)}\n />\n </div>\n </div>\n ));\n};\n\nexport const errorToast = ({\n actionOnClick,\n actionText,\n children,\n className,\n iconName = \"info-fill\",\n}: ToastProps) =>\n toast({\n children: (\n <IconWithChildren iconName={iconName}>{children}</IconWithChildren>\n ),\n actionOnClick,\n actionText,\n colorScheme: \"error\",\n className,\n });\n\nexport const successToast = ({\n actionOnClick,\n actionText,\n children,\n className,\n iconName = \"tick-fill\",\n}: ToastProps) =>\n toast({\n children: (\n <IconWithChildren iconName={iconName}>{children}</IconWithChildren>\n ),\n actionOnClick,\n actionText,\n colorScheme: \"success\",\n className,\n });\n\nexport const warningToast = ({\n actionOnClick,\n actionText,\n children,\n className,\n iconName = \"warning-fill\",\n}: ToastProps) =>\n toast({\n children: (\n <IconWithChildren iconName={iconName}>{children}</IconWithChildren>\n ),\n actionOnClick,\n actionText,\n colorScheme: \"warning\",\n className,\n });\n\nexport const infoToast = ({\n actionOnClick,\n actionText,\n children,\n className,\n iconName = \"info-fill\",\n}: ToastProps) =>\n toast({\n children: (\n <IconWithChildren iconName={iconName}>{children}</IconWithChildren>\n ),\n actionOnClick,\n actionText,\n colorScheme: \"info\",\n className,\n });\n\nexport { Toaster };\n\ninterface IconWithChildrenProps extends PropsWithChildren {\n iconName: IconName;\n}\n\nconst IconWithChildren = ({ children, iconName }: IconWithChildrenProps) => (\n <>\n <Icon name={iconName} className=\"text-text-med-em shrink-0\" size={18} />\n <div className=\" max-w-44\">{children}</div>\n </>\n);\n"],"names":["cva","sonnerToast","jsx","jsxs","Button","IconButton","Fragment","Icon"],"mappings":"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"}