mirror of
https://codeberg.org/emersion/gamja
synced 2025-03-13 15:58:40 +01:00
Set default connect params in App constructor
Fixes default params not populated in Connect component.
This commit is contained in:
parent
34baafc77f
commit
9692f97c11
@ -30,6 +30,7 @@ export default class App extends Component {
|
|||||||
realname: null,
|
realname: null,
|
||||||
nick: null,
|
nick: null,
|
||||||
saslPlain: null,
|
saslPlain: null,
|
||||||
|
autoconnect: false,
|
||||||
autojoin: [],
|
autojoin: [],
|
||||||
},
|
},
|
||||||
status: Status.DISCONNECTED,
|
status: Status.DISCONNECTED,
|
||||||
@ -44,6 +45,32 @@ export default class App extends Component {
|
|||||||
this.handleConnectSubmit = this.handleConnectSubmit.bind(this);
|
this.handleConnectSubmit = this.handleConnectSubmit.bind(this);
|
||||||
this.handleBufferListClick = this.handleBufferListClick.bind(this);
|
this.handleBufferListClick = this.handleBufferListClick.bind(this);
|
||||||
this.handleComposerSubmit = this.handleComposerSubmit.bind(this);
|
this.handleComposerSubmit = this.handleComposerSubmit.bind(this);
|
||||||
|
|
||||||
|
if (window.localStorage && localStorage.getItem("autoconnect")) {
|
||||||
|
var connectParams = JSON.parse(localStorage.getItem("autoconnect"));
|
||||||
|
this.state.connectParams = {
|
||||||
|
...this.state.connectParams,
|
||||||
|
...connectParams,
|
||||||
|
autoconnect: true,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
var params = parseQueryString();
|
||||||
|
|
||||||
|
if (params.server) {
|
||||||
|
this.state.connectParams.serverURL = params.server;
|
||||||
|
} else {
|
||||||
|
var host = window.location.host || "localhost:8080";
|
||||||
|
var proto = "wss:";
|
||||||
|
if (window.location.protocol != "https:") {
|
||||||
|
proto = "ws:";
|
||||||
|
}
|
||||||
|
this.state.connectParams.serverURL = proto + "//" + host + "/socket";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (params.channels) {
|
||||||
|
this.state.connectParams.autojoin = params.channels.split(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setBufferState(name, updater, callback) {
|
setBufferState(name, updater, callback) {
|
||||||
@ -262,8 +289,8 @@ export default class App extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleConnectSubmit(connectParams) {
|
handleConnectSubmit(connectParams) {
|
||||||
if (localStorage) {
|
if (window.localStorage) {
|
||||||
if (connectParams.rememberMe) {
|
if (connectParams.autoconnect) {
|
||||||
localStorage.setItem("autoconnect", JSON.stringify(connectParams));
|
localStorage.setItem("autoconnect", JSON.stringify(connectParams));
|
||||||
} else {
|
} else {
|
||||||
localStorage.removeItem("autoconnect");
|
localStorage.removeItem("autoconnect");
|
||||||
@ -284,7 +311,7 @@ export default class App extends Component {
|
|||||||
var args = parts.slice(1);
|
var args = parts.slice(1);
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case "quit":
|
case "quit":
|
||||||
if (localStorage) {
|
if (window.localStorage) {
|
||||||
localStorage.removeItem("autoconnect");
|
localStorage.removeItem("autoconnect");
|
||||||
}
|
}
|
||||||
this.client.close();
|
this.client.close();
|
||||||
@ -364,36 +391,8 @@ export default class App extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
if (localStorage && localStorage.getItem("autoconnect")) {
|
if (this.state.connectParams.autoconnect) {
|
||||||
var connectParams = JSON.parse(localStorage.getItem("autoconnect"));
|
this.connect(this.state.connectParams);
|
||||||
this.connect(connectParams);
|
|
||||||
} else {
|
|
||||||
var params = parseQueryString();
|
|
||||||
|
|
||||||
var serverURL = params.server;
|
|
||||||
if (!serverURL) {
|
|
||||||
var host = window.location.host || "localhost:8080";
|
|
||||||
var proto = "wss:";
|
|
||||||
if (window.location.protocol != "https:") {
|
|
||||||
proto = "ws:";
|
|
||||||
}
|
|
||||||
serverURL = proto + "//" + host + "/socket";
|
|
||||||
}
|
|
||||||
|
|
||||||
var autojoin = [];
|
|
||||||
if (params.channels) {
|
|
||||||
autojoin = params.channels.split(",");
|
|
||||||
}
|
|
||||||
|
|
||||||
this.setState((state) => {
|
|
||||||
return {
|
|
||||||
connectParams: {
|
|
||||||
...state.connectParams,
|
|
||||||
serverURL,
|
|
||||||
autojoin,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ export default class Connect extends Component {
|
|||||||
...this.state,
|
...this.state,
|
||||||
serverURL: props.params.serverURL || "",
|
serverURL: props.params.serverURL || "",
|
||||||
nick: props.params.nick || "",
|
nick: props.params.nick || "",
|
||||||
rememberMe: props.params.rememberMe || false,
|
rememberMe: props.params.autoconnect || false,
|
||||||
username: props.params.username || "",
|
username: props.params.username || "",
|
||||||
realname: props.params.realname || "",
|
realname: props.params.realname || "",
|
||||||
autojoin: (props.params.autojoin || []).join(","),
|
autojoin: (props.params.autojoin || []).join(","),
|
||||||
@ -48,7 +48,7 @@ export default class Connect extends Component {
|
|||||||
serverURL: this.state.serverURL,
|
serverURL: this.state.serverURL,
|
||||||
serverPass: this.state.serverPass,
|
serverPass: this.state.serverPass,
|
||||||
nick: this.state.nick,
|
nick: this.state.nick,
|
||||||
rememberMe: this.state.rememberMe,
|
autoconnect: this.state.rememberMe,
|
||||||
username: this.state.username || this.state.nick,
|
username: this.state.username || this.state.nick,
|
||||||
realname: this.state.realname || this.state.nick,
|
realname: this.state.realname || this.state.nick,
|
||||||
saslPlain: null,
|
saslPlain: null,
|
||||||
@ -74,6 +74,17 @@ export default class Connect extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
var rememberMe = null;
|
||||||
|
if (window.localStorage) {
|
||||||
|
rememberMe = html`
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" name="rememberMe" checked=${this.state.rememberMe} disabled=${this.props.disabled}/>
|
||||||
|
Remember me
|
||||||
|
</label>
|
||||||
|
<br/><br/>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<form onChange=${this.handleChange} onSubmit=${this.handleSubmit}>
|
<form onChange=${this.handleChange} onSubmit=${this.handleSubmit}>
|
||||||
<h2>Connect to IRC</h2>
|
<h2>Connect to IRC</h2>
|
||||||
@ -90,11 +101,7 @@ export default class Connect extends Component {
|
|||||||
</label>
|
</label>
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
<label>
|
${rememberMe}
|
||||||
<input type="checkbox" name="rememberMe" checked=${this.state.rememberMe} disabled=${this.props.disabled}/>
|
|
||||||
Remember me
|
|
||||||
</label>
|
|
||||||
<br/><br/>
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Advanced options</summary>
|
<summary>Advanced options</summary>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user