import { html, Component } from "../lib/index.js"; const defaultParams = { name: "", host: "", port: 6697, nickname: "", username: "", realname: "", pass: "", }; export default class NetworkForm extends Component { prevParams = null; state = { ...defaultParams, isNew: true, }; constructor(props) { super(props); this.prevParams = { ...defaultParams }; this.handleChange = this.handleChange.bind(this); this.handleSubmit = this.handleSubmit.bind(this); this.state.isNew = !props.params; if (props.params) { Object.keys(defaultParams).forEach((k) => { if (props.params[k] !== undefined) { this.state[k] = props.params[k]; this.prevParams[k] = props.params[k]; } }); } } handleChange(event) { let target = event.target; let value = target.type == "checkbox" ? target.checked : target.value; this.setState({ [target.name]: value }); } handleSubmit(event) { event.preventDefault(); let params = {}; Object.keys(defaultParams).forEach((k) => { if (this.prevParams[k] == this.state[k]) { return; } params[k] = this.state[k]; }); this.props.onSubmit(params); } render() { let removeNetwork = null; if (!this.state.isNew) { removeNetwork = html` `; } return html`
`; } }