lbry-desktop/ui/component/settingsRow/view.jsx

40 lines
1.2 KiB
React
Raw Permalink Normal View History

2021-08-05 10:42:37 +02:00
// @flow
import React from 'react';
import classnames from 'classnames';
type Props = {
title: string,
subtitle?: string,
multirow?: boolean, // Displays the Value widget(s) below the Label instead of on the right.
useVerticalSeparator?: boolean, // Show a separator line between Label and Value. Useful when there are multiple Values.
disabled?: boolean,
2021-08-05 10:42:37 +02:00
children?: React$Node,
footer?: React$Node,
2021-08-05 10:42:37 +02:00
};
export default function SettingsRow(props: Props) {
const { title, subtitle, multirow, useVerticalSeparator, disabled, children, footer } = props;
2021-08-05 10:42:37 +02:00
return (
<div
className={classnames('card__main-actions settings__row', {
'section__actions--between': !multirow,
'opacity-30': disabled,
2021-08-05 10:42:37 +02:00
})}
>
<div className="settings__row--title">
<p>{title}</p>
{subtitle && <p className="settings__row--subtitle">{subtitle}</p>}
{footer && footer}
2021-08-05 10:42:37 +02:00
</div>
<div
className={classnames('settings__row--value', {
'settings__row--value--multirow': multirow,
'settings__row--value--vertical-separator': useVerticalSeparator,
})}
>
{children && children}
</div>
</div>
);
}