|
|
|
import React from 'react';
|
|
|
|
import classNames from 'classnames';
|
|
|
|
import {
|
|
|
|
SessionIcon,
|
|
|
|
SessionIconButton,
|
|
|
|
SessionIconSize,
|
|
|
|
SessionIconType,
|
|
|
|
} from './icon';
|
|
|
|
import { inversedTheme } from '../../state/ducks/SessionTheme';
|
|
|
|
import { DefaultTheme } from 'styled-components';
|
|
|
|
import { SessionButton } from './SessionButton';
|
|
|
|
|
|
|
|
const Tab = ({
|
|
|
|
isSelected,
|
|
|
|
label,
|
|
|
|
onSelect,
|
|
|
|
type,
|
|
|
|
}: {
|
|
|
|
isSelected: boolean;
|
|
|
|
label: string;
|
|
|
|
onSelect?: (event: number) => void;
|
|
|
|
type: number;
|
|
|
|
}) => {
|
|
|
|
const handleClick = onSelect
|
|
|
|
? () => {
|
|
|
|
onSelect(type);
|
|
|
|
}
|
|
|
|
: undefined;
|
|
|
|
|
|
|
|
return (
|
|
|
|
<h1
|
|
|
|
className={classNames(
|
|
|
|
'module-left-pane__title',
|
|
|
|
isSelected ? 'active' : null
|
|
|
|
)}
|
|
|
|
onClick={handleClick}
|
|
|
|
role="button"
|
|
|
|
>
|
|
|
|
{label}
|
|
|
|
</h1>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
label?: string;
|
|
|
|
buttonIcon?: SessionIconType;
|
|
|
|
buttonClicked?: any;
|
|
|
|
theme: DefaultTheme;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const LeftPaneSectionHeader = (props: Props) => {
|
|
|
|
const { label, buttonIcon, buttonClicked } = props;
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div className="module-left-pane__header">
|
|
|
|
{label && <Tab label={label} type={0} isSelected={true} key={label} />}
|
|
|
|
{buttonIcon && (
|
|
|
|
<SessionButton
|
|
|
|
onClick={buttonClicked}
|
|
|
|
key="compose"
|
|
|
|
theme={props.theme}
|
|
|
|
>
|
|
|
|
<SessionIcon
|
|
|
|
iconType={buttonIcon}
|
|
|
|
iconSize={SessionIconSize.Small}
|
|
|
|
iconColor="white"
|
|
|
|
theme={props.theme}
|
|
|
|
/>
|
|
|
|
</SessionButton>
|
|
|
|
)}
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
};
|