1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-05 05:45:22 +02:00

fix(helm): helm charts view bad icon aspect ratio EE-4451 (#7875)

This commit is contained in:
Ali 2022-10-20 14:14:55 +13:00 committed by GitHub
parent 1100a2bd28
commit 368e6b2a44
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 104 additions and 81 deletions

View file

@ -0,0 +1,35 @@
import { Meta } from '@storybook/react';
import { BadgeIcon, BadgeSize, Props } from './BadgeIcon';
export default {
component: BadgeIcon,
title: 'Components/BadgeIcon',
argTypes: {
size: {
control: {
type: 'select',
options: ['md', 'lg', 'xl', '2xl', '3xl'],
},
},
icon: {
control: {
type: 'select',
options: ['edit', 'info', 'smile', 'users'],
},
},
},
} as Meta<Props>;
// : JSX.IntrinsicAttributes & PropsWithChildren<Props>
function Template({
size = '3xl',
icon = 'edit',
}: {
size?: BadgeSize;
icon: string;
}) {
return <BadgeIcon icon={icon} size={size} featherIcon />;
}
export const Example = Template.bind({});

View file

@ -0,0 +1,45 @@
import clsx from 'clsx';
import { Icon, IconProps } from '@@/Icon';
export type BadgeSize = 'md' | 'lg' | 'xl' | '2xl' | '3xl';
export interface Props extends IconProps {
size?: BadgeSize;
}
export function BadgeIcon({ icon, featherIcon, size = '3xl' }: Props) {
const sizeClasses = iconSizeToClasses(size);
return (
<div
className={clsx(
sizeClasses,
`badge-icon
bg-blue-3 text-blue-8
th-dark:bg-gray-9 th-dark:text-blue-3
rounded-full
inline-flex items-center justify-center
`
)}
>
<Icon icon={icon} feather={featherIcon} className="feather !flex" />
</div>
);
}
function iconSizeToClasses(size: BadgeSize) {
switch (size) {
case 'md':
return 'h-6 w-6 text-md';
case 'lg':
return 'h-8 w-8 text-lg';
case 'xl':
return 'h-10 w-10 text-xl';
case '2xl':
return 'h-12 w-12 text-2xl';
case '3xl':
return 'h-14 w-14 text-3xl';
default:
return 'h-14 w-14 text-3xl';
}
}

View file

@ -0,0 +1 @@
export { BadgeIcon } from './BadgeIcon';