8000 Retain configured hostname (#173) · thisiscam/esp8266-react@25f04c3 · GitHub
[go: up one dir, main page]

Skip to content

Commit 25f04c3

Browse files
authored
Retain configured hostname (rjwats#173)
Retain configured hostname when selecting new network from network scanner
1 parent c16f769 commit 25f04c3

File tree

2 files changed

+27
-28
lines changed

2 files changed

+27
-28
lines changed

interface/src/wifi/WiFiSettingsController.tsx

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,23 @@
11
import React, { Component } from 'react';
22

3-
import {restController, RestControllerProps, RestFormLoader, SectionContent } from '../components';
3+
import { restController, RestControllerProps, RestFormLoader, SectionContent } from '../components';
44
import WiFiSettingsForm from './WiFiSettingsForm';
5-
import { WiFiConnectionContext } from './WiFiConnectionContext';
65
import { WIFI_SETTINGS_ENDPOINT } from '../api';
76
import { WiFiSettings } from './types';
87

98
type WiFiSettingsControllerProps = RestControllerProps<WiFiSettings>;
109

1110
class WiFiSettingsController extends Component<WiFiSettingsControllerProps> {
1211

13-
static contextType = WiFiConnectionContext;
14-
context!: React.ContextType<typeof WiFiConnectionContext>;
15-
1612
componentDidMount() {
17-
const { selectedNetwork } = this.context;
18-
if (selectedNetwork) {
19-
const wifiSettings: WiFiSettings = {
20-
ssid: selectedNetwork.ssid,
21-
password: "",
22-
hostname: "esp8266-react",
23-
static_ip_config: false,
24-
}
25-
this.props.setData(wifiSettings);
26-
} else {
27-
this.props.loadData();
28-
}
29-
}
30-
31-
deselectNetworkAndLoadData = () => {
32-
this.context.deselectNetwork();
3313
this.props.loadData();
3414
}
3515

36-
componentWillUnmount() {
37-
this.context.deselectNetwork();
38-
}
39-
4016
render() {
4117
return (
4218
<SectionContent title="WiFi Settings">
4319
<RestFormLoader
4420
{...this.props}
45-
loadData={this.deselectNetworkAndLoadData}
4621
render={formProps => <WiFiSettingsForm {...formProps} />}
4722
/>
4823
</SectionContent>

interface/src/wifi/WiFiSettingsForm.tsx

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,39 @@ class WiFiSettingsForm extends React.Component<WiFiStatusFormProps> {
2424
static contextType = WiFiConnectionContext;
2525
context!: React.ContextType<typeof WiFiConnectionContext>;
2626

27+
constructor(props: WiFiStatusFormProps, context: WiFiConnectionContext) {
28+
super(props);
29+
30+
const { selectedNetwork } = context;
31+
if (selectedNetwork) {
32+
const wifiSettings: WiFiSettings = {
33+
ssid: selectedNetwork.ssid,
34+
password: "",
35+
hostname: props.data.hostname,
36+
static_ip_config: false,
37+
}
38+
props.setData(wifiSettings);
39+
}
40+
}
41+
2742
componentWillMount() {
2843
ValidatorForm.addValidationRule('isIP', isIP);
2944
ValidatorForm.addValidationRule('isHostname', isHostname);
3045
ValidatorForm.addValidationRule('isOptionalIP', optional(isIP));
3146
}
3247

48+
deselectNetworkAndLoadData = () => {
49+
this.context.deselectNetwork();
50+
this.props.loadData();
51+
}
52+
53+
componentWillUnmount() {
54+
this.context.deselectNetwork();
55+
}
56+
3357
render() {
3458
const { selectedNetwork, deselectNetwork } = this.context;
35-
const { data, handleValueChange, saveData, loadData } = this.props;
59+
const { data, handleValueChange, saveData } = this.props;
3660
return (
3761
<ValidatorForm onSubmit={saveData} ref="WiFiSettingsForm">
3862
{
@@ -167,7 +191,7 @@ class WiFiSettingsForm extends React.Component<WiFiStatusFormProps> {
167191
<FormButton startIcon={<SaveIcon />} variant="contained" color="primary" type="submit">
168192
Save
169193
</FormButton>
170-
<FormButton variant="contained" color="secondary" onClick={loadData}>
194+
<FormButton variant="contained" color="secondary" onClick={this.deselectNetworkAndLoadData}>
171195
Reset
172196
</FormButton>
173197
</FormActions>

0 commit comments

Comments
 (0)
0