import React from "react"
import Loader from "misago/components/loader"
import RegisterForm from "misago/components/register.js"
import ajax from "misago/services/ajax"
import captcha from "misago/services/captcha"
import modal from "misago/services/modal"
import snackbar from "misago/services/snackbar"
export default class extends React.Component {
constructor(props) {
super(props)
this.state = {
isLoading: false,
isLoaded: false,
criteria: null
}
}
showRegisterForm = () => {
if (misago.get("SETTINGS").account_activation === "closed") {
snackbar.info(gettext("New registrations are currently disabled."))
} else if (this.state.isLoaded) {
modal.show()
} else {
this.setState({ isLoading: true })
Promise.all([
captcha.load(),
ajax.get(misago.get("AUTH_CRITERIA_API"))
]).then(
result => {
this.setState({
isLoading: false,
isLoaded: true,
criteria: result[1]
})
modal.show()
},
() => {
this.setState({ isLoading: false })
snackbar.error(
gettext("Registration is currently unavailable due to an error.")
)
}
)
}
}
getClassName() {
return this.props.className + (this.state.isLoading ? " btn-loading" : "")
}
render() {
return (
)
}
}