Fix style

This commit is contained in:
Jorik Schellekens
2020-06-24 16:30:00 +01:00
11 changed files with 313 additions and 182 deletions
+29 -27
View File
@@ -20,42 +20,44 @@ import classnames from "classnames";
import "./Button.scss";
interface IProps extends React.ButtonHTMLAttributes<Element> {
// Briefly display these instead of the children onClick
flashChildren?: React.ReactNode;
// Briefly display these instead of the children onClick
flashChildren?: React.ReactNode;
}
/**
* Like a normal button except it will flash content when clicked.
*/
export default ({
onClick,
children,
flashChildren,
className,
...restProps
const Button: React.FC<IProps> = ({
onClick,
children,
flashChildren,
className,
...restProps
}: IProps) => {
const [wasClicked, setWasClicked] = React.useState(false);
const [wasClicked, setWasClicked] = React.useState(false);
const wrappedOnClick: React.MouseEventHandler = (e) => {
if (onClick) {
onClick(e);
}
const wrappedOnClick: React.MouseEventHandler = (e) => {
if (onClick) {
onClick(e);
}
setWasClicked(true);
window.setTimeout(() => {
setWasClicked(false);
}, 1000);
};
setWasClicked(true);
window.setTimeout(() => {
setWasClicked(false);
}, 1000);
};
const content = wasClicked ? flashChildren : children;
const content = wasClicked ? flashChildren : children;
const classNames = classnames("button", className, {
buttonHighlight: wasClicked,
});
const classNames = classnames("button", className, {
buttonHighlight: wasClicked,
});
return (
<button className={classNames} onClick={wrappedOnClick} {...restProps}>
{content}
</button>
);
return (
<button className={classNames} onClick={wrappedOnClick} {...restProps}>
{content}
</button>
);
};
export default Button;
+5 -3
View File
@@ -19,9 +19,11 @@ import React from "react";
import "./Tile.scss";
interface IProps {
children: React.ReactNode;
children: React.ReactNode;
}
export default (props: IProps) => {
return <div className="tile">{props.children}</div>;
const Tile: React.FC<IProps> = (props: IProps) => {
return <div className="tile">{props.children}</div>;
};
export default Tile;