~emersion/gamja

eef2093c884996c72eb42caa340d64435586827a — Drew DeVault 10 days ago 6039e13
Add "auth" parameter to tune connect form
3 files changed, 31 insertions(+), 6 deletions(-)

M README.md
M components/app.js
M components/connect-form.js
M README.md => README.md +5 -0
@@ 85,6 85,11 @@ gamja default settings can be set using a `config.json` file at the root:
		"url": "wss://irc.example.org",
		// Channel(s) to auto-join (string or array of strings).
		"autojoin": "#gamja",
		// Controls how the password UI is presented to the user. Set to
		// "mandatory" to require a password, "optional" to accept one but not
		// require it, and "disabled" to never ask for a password. Defaults to
		// "optional".
		"auth": "optional",
		// Interval in seconds to send PING commands (number). Set to 0 to
		// disable. Enabling PINGs can have an impact on client power usage and
		// should only be enabled if necessary.

M components/app.js => components/app.js +7 -1
@@ 213,7 213,12 @@ export default class App extends Component {
		}

		this.setState((state) => {
			return { connectParams: { ...state.connectParams, ...connectParams } };
			return {
				connectParams: {
					...state.connectParams,
					...connectParams,
				},
			};
		});

		if (connectParams.autoconnect) {


@@ 1203,6 1208,7 @@ export default class App extends Component {
					<${ConnectForm}
						error=${this.state.error}
						params=${this.state.connectParams}
						auth=${this.config.server ? this.config.server.auth : null}
						connecting=${connecting}
						onSubmit=${this.handleConnectSubmit}
						key=${this.state.connectParams}

M components/connect-form.js => components/connect-form.js +19 -5
@@ 98,6 98,24 @@ export default class ConnectForm extends Component {
			`;
		}

		var auth = null;
		if (this.props.auth !== "disabled") {
			auth = html`
				<label>
					Password:<br/>
					<input
						type="password"
						name="password"
						value=${this.state.password}
						disabled=${disabled}
						required=${this.props.auth === "mandatory"}
						placeholder=${this.props.auth !== "mandatory" ? "(optional)" : ""}
					/>
				</label>
				<br/><br/>
			`;
		}

		return html`
			<form onChange=${this.handleChange} onSubmit=${this.handleSubmit}>
				<h2>Connect to IRC</h2>


@@ 108,11 126,7 @@ export default class ConnectForm extends Component {
				</label>
				<br/><br/>

				<label>
					Password:<br/>
					<input type="password" name="password" value=${this.state.password} disabled=${disabled}/>
				</label>
				<br/><br/>
				${auth}

				<label>
					<input type="checkbox" name="rememberMe" checked=${this.state.rememberMe} disabled=${disabled}/>