reuse vairant logic
This commit is contained in:
parent
9c3957caa3
commit
c4e6450290
@ -1,9 +1,11 @@
|
|||||||
import type { ReactNode } from 'react';
|
import type { ReactNode } from 'react';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
import type { Variant } from '../../utils/intent';
|
||||||
|
import { getVariantBackground } from '../../utils/intent';
|
||||||
|
|
||||||
interface LozengeProps {
|
interface LozengeProps {
|
||||||
children: ReactNode;
|
children: ReactNode;
|
||||||
variant?: 'success' | 'warning' | 'danger' | 'highlight';
|
variant?: Variant;
|
||||||
className?: string;
|
className?: string;
|
||||||
details?: string;
|
details?: string;
|
||||||
}
|
}
|
||||||
@ -13,13 +15,10 @@ const getWrapperClasses = (className: LozengeProps['className']) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getLozengeClasses = (variant: LozengeProps['variant']) => {
|
const getLozengeClasses = (variant: LozengeProps['variant']) => {
|
||||||
return classNames(['rounded-md', 'font-mono', 'leading-none', 'p-4'], {
|
return classNames(
|
||||||
'bg-intent-success text-black': variant === 'success',
|
['rounded-md', 'font-mono', 'leading-none', 'p-4'],
|
||||||
'bg-intent-danger text-white': variant === 'danger',
|
getVariantBackground(variant)
|
||||||
'bg-intent-warning text-black': variant === 'warning',
|
);
|
||||||
'bg-intent-highlight text-black': variant === 'highlight',
|
|
||||||
'bg-intent-help text-white': !variant,
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export const Lozenge = ({
|
export const Lozenge = ({
|
||||||
|
@ -21,6 +21,8 @@ export { ThemeSwitcher } from './components/theme-switcher';
|
|||||||
export { Dialog } from './components/dialog/dialog';
|
export { Dialog } from './components/dialog/dialog';
|
||||||
export { VegaLogo } from './components/vega-logo';
|
export { VegaLogo } from './components/vega-logo';
|
||||||
export { Tooltip } from './components/tooltip';
|
export { Tooltip } from './components/tooltip';
|
||||||
|
export { Indicator } from './components/indicator';
|
||||||
|
export { Card } from './components/card';
|
||||||
|
|
||||||
// Utils
|
// Utils
|
||||||
export * from './utils/intent';
|
export * from './utils/intent';
|
||||||
|
@ -9,6 +9,13 @@ export enum Intent {
|
|||||||
Help = 'help',
|
Help = 'help',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum Variant {
|
||||||
|
Success = 'success',
|
||||||
|
Warning = 'warning',
|
||||||
|
Danger = 'danger',
|
||||||
|
Highlight = 'highlight',
|
||||||
|
}
|
||||||
|
|
||||||
export const getIntentShadow = (intent?: Intent) => {
|
export const getIntentShadow = (intent?: Intent) => {
|
||||||
return classNames('shadow-callout', {
|
return classNames('shadow-callout', {
|
||||||
'shadow-intent-danger': intent === Intent.Danger,
|
'shadow-intent-danger': intent === Intent.Danger,
|
||||||
@ -19,3 +26,13 @@ export const getIntentShadow = (intent?: Intent) => {
|
|||||||
'shadow-intent-help': intent === Intent.Help,
|
'shadow-intent-help': intent === Intent.Help,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getVariantBackground = (variant?: Variant) => {
|
||||||
|
return classNames('shadow-callout', {
|
||||||
|
'bg-intent-success text-black': variant === Variant.Success,
|
||||||
|
'bg-intent-danger text-white': variant === Variant.Danger,
|
||||||
|
'bg-intent-warning text-black': variant === Variant.Warning,
|
||||||
|
'bg-intent-highlight text-black': variant === Variant.Highlight,
|
||||||
|
'bg-intent-help text-white': !variant,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user