session-desktop/ts/components/session/SessionDropdownItem.tsx

48 lines
1,010 B
TypeScript
Raw Normal View History

2019-12-18 01:50:19 +01:00
import React from 'react';
import classNames from 'classnames';
import { SessionIcon, SessionIconSize, SessionIconType } from './icon/';
export enum SessionDropDownItemType {
2019-12-20 00:57:50 +01:00
Default = 'default',
Danger = 'danger',
2019-12-18 01:50:19 +01:00
}
2020-11-17 00:51:39 +01:00
type Props = {
2019-12-20 00:57:50 +01:00
content: string;
type: SessionDropDownItemType;
icon: SessionIconType | null;
active: boolean;
onClick: any;
2020-11-17 00:51:39 +01:00
};
2019-12-20 00:57:50 +01:00
2020-11-17 00:51:39 +01:00
export const SessionDropdownItem = (props: Props) => {
const clickHandler = (e: any) => {
if (props.onClick) {
2019-12-20 00:57:50 +01:00
e.stopPropagation();
2020-11-17 00:51:39 +01:00
props.onClick();
2019-12-20 00:57:50 +01:00
}
2020-11-17 00:51:39 +01:00
};
const { content, type, icon, active } = props;
return (
<div
className={classNames(
'session-dropdown__item',
active ? 'active' : '',
type || SessionDropDownItemType.Default
)}
role="button"
onClick={clickHandler}
>
{icon ? (
<SessionIcon iconType={icon} iconSize={SessionIconSize.Small} />
) : (
''
)}
<div className="item-content">{content}</div>
</div>
);
};