Greums's picture
crlf to lf
1813a37
raw
history blame
1.02 kB
import {ComponentChildren, JSX} from 'preact';
import cn from 'classnames';
import style from "./style.module.scss";
export function Button(props: {
loading?: boolean;
onClick?: () => void;
className?: string;
secondary?: boolean;
disabled?: boolean;
title?: string;
children: ComponentChildren;
}) {
const disabled = props.disabled || props.loading;
const buttonClass = cn(style.btn, {[style.secondary]: props.secondary}, 'button', props.className, {[style.disabled]:disabled});
let spinner: JSX.Element = undefined;
if (props.loading) {
spinner = <span className={style.spinner}/>
}
return (
<button
type="button"
onClick={() => {
if (!disabled) {
props.onClick()
}
}}
className={buttonClass}
disabled={disabled}
title={props.title}
>
{spinner}
{props.children}
</button>
);
}