|
|
|
import React from 'react';
|
|
|
|
import { SessionToggle } from '../SessionToggle';
|
|
|
|
import { SessionButton, SessionButtonColor, SessionButtonType } from '../SessionButton';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export enum SessionSettingType {
|
|
|
|
Toggle = 'toggle',
|
|
|
|
Options = 'options',
|
|
|
|
Button = 'button',
|
|
|
|
}
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
title: string;
|
|
|
|
description?: string;
|
|
|
|
type: SessionSettingType;
|
|
|
|
value: boolean | string;
|
|
|
|
onClick?: any;
|
|
|
|
buttonText?: string;
|
|
|
|
buttonColor?: SessionButtonColor;
|
|
|
|
}
|
|
|
|
|
|
|
|
export class SessionSettingListItem extends React.Component<Props> {
|
|
|
|
public constructor(props: Props) {
|
|
|
|
super(props);
|
|
|
|
this.state = {
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public render(): JSX.Element {
|
|
|
|
const { title, description, type, value, onClick, buttonText, buttonColor } = this.props
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div className="session-settings-item">
|
|
|
|
<div className="session-settings-item__info">
|
|
|
|
<div className="session-settings-item__title">
|
|
|
|
{ title }
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{ description && (
|
|
|
|
<div className="session-settings-item__description">
|
|
|
|
{ description }
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{ type === SessionSettingType.Toggle && (
|
|
|
|
<div className="session-sessings-item__selection">
|
|
|
|
<SessionToggle
|
|
|
|
active={ Boolean(value) }
|
|
|
|
onClick = { onClick }
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
|
|
|
|
{ type === SessionSettingType.Button && (
|
|
|
|
<SessionButton
|
|
|
|
text = { buttonText }
|
|
|
|
buttonColor = { buttonColor }
|
|
|
|
onClick = { onClick }
|
|
|
|
/>
|
|
|
|
)}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|