mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 21:06:42 +07:00
34 lines
666 B
TypeScript
34 lines
666 B
TypeScript
import React, { FC, ReactNode } from 'react';
|
|
|
|
import classNames from 'classnames';
|
|
|
|
import { DivProps } from '~/utils/types';
|
|
|
|
import styles from './styles.module.scss';
|
|
|
|
type HoverableEffect = 'rise' | 'shine';
|
|
|
|
interface HoverableProps extends DivProps {
|
|
icon?: ReactNode;
|
|
effect?: HoverableEffect;
|
|
}
|
|
|
|
const Hoverable: FC<HoverableProps> = ({
|
|
children,
|
|
className,
|
|
icon,
|
|
effect = 'rise',
|
|
...rest
|
|
}) => (
|
|
<div
|
|
{...rest}
|
|
className={classNames(styles.hoverable, styles[effect], className, {
|
|
[styles.with_icon]: !!icon,
|
|
})}
|
|
>
|
|
{icon && <div className={styles.icon}>{icon}</div>}
|
|
{children}
|
|
</div>
|
|
);
|
|
|
|
export { Hoverable };
|