mirror of
https://github.com/Grasscutters/Cultivation.git
synced 2025-12-14 08:04:52 +01:00
45 lines
893 B
TypeScript
45 lines
893 B
TypeScript
import React from 'react'
|
|
import './BigButton.css'
|
|
|
|
interface IProps {
|
|
children: React.ReactNode;
|
|
onClick: () => any;
|
|
id: string;
|
|
disabled?: boolean;
|
|
}
|
|
|
|
interface IState {
|
|
disabled?: boolean;
|
|
}
|
|
|
|
export default class BigButton extends React.Component<IProps, IState> {
|
|
constructor(props: IProps) {
|
|
super(props)
|
|
|
|
this.state = {
|
|
disabled: this.props.disabled
|
|
}
|
|
|
|
this.handleClick = this.handleClick.bind(this)
|
|
}
|
|
|
|
static getDerivedStateFromProps(props: IProps, state: IState) {
|
|
return {
|
|
disabled: props.disabled
|
|
}
|
|
}
|
|
|
|
handleClick() {
|
|
if (this.state.disabled) return
|
|
|
|
this.props.onClick()
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<div className={'BigButton ' + (this.state.disabled ? 'disabled' : '')} onClick={this.handleClick} id={this.props.id}>
|
|
<div className="BigButtonText">{this.props.children}</div>
|
|
</div>
|
|
)
|
|
}
|
|
} |