Access point fixes (#137)

* add lingering mode to access point fix bug which prevents active access point from being re-configured
This commit is contained in:
rjwats
2020-05-30 09:47:24 +01:00
committed by GitHub
parent ddbb84454f
commit 555b3efd8d
9 changed files with 81 additions and 30 deletions

View File

@ -1,5 +1,5 @@
import { APSettings, ApProvisionMode } from "./types";
import { APSettings, APProvisionMode } from "./types";
export const isAPEnabled = ({ provision_mode }: APSettings) => {
return provision_mode === ApProvisionMode.AP_MODE_ALWAYS || provision_mode === ApProvisionMode.AP_MODE_DISCONNECTED;
return provision_mode === APProvisionMode.AP_MODE_ALWAYS || provision_mode === APProvisionMode.AP_MODE_DISCONNECTED;
}

View File

@ -7,7 +7,7 @@ import SaveIcon from '@material-ui/icons/Save';
import {PasswordValidator, RestFormProps, FormActions, FormButton} from '../components';
import { isAPEnabled } from './APModes';
import { APSettings, ApProvisionMode } from './types';
import { APSettings, APProvisionMode } from './types';
type APSettingsFormProps = RestFormProps<APSettings>;
@ -24,9 +24,9 @@ class APSettingsForm extends React.Component<APSettingsFormProps> {
variant="outlined"
onChange={handleValueChange('provision_mode')}
margin="normal">
<MenuItem value={ApProvisionMode.AP_MODE_ALWAYS}>Always</MenuItem>
<MenuItem value={ApProvisionMode.AP_MODE_DISCONNECTED}>When WiFi Disconnected</MenuItem>
<MenuItem value={ApProvisionMode.AP_NEVER}>Never</MenuItem>
<MenuItem value={APProvisionMode.AP_MODE_ALWAYS}>Always</MenuItem>
<MenuItem value={APProvisionMode.AP_MODE_DISCONNECTED}>When WiFi Disconnected</MenuItem>
<MenuItem value={APProvisionMode.AP_NEVER}>Never</MenuItem>
</SelectValidator>
{
isAPEnabled(data) &&

View File

@ -1,10 +1,28 @@
import { Theme } from "@material-ui/core";
import { APStatus } from "./types";
import { APStatus, APNetworkStatus } from "./types";
export const apStatusHighlight = ({ active }: APStatus, theme: Theme) => {
return active ? theme.palette.success.main : theme.palette.info.main;
export const apStatusHighlight = ({ status }: APStatus, theme: Theme) => {
switch (status) {
case APNetworkStatus.ACTIVE:
return theme.palette.success.main;
case APNetworkStatus.INACTIVE:
return theme.palette.info.main;
case APNetworkStatus.LINGERING:
return theme.palette.warning.main;
default:
return theme.palette.warning.main;
}
}
export const apStatus = ({ active }: APStatus) => {
return active ? "Active" : "Inactive";
export const apStatus = ({ status }: APStatus) => {
switch (status) {
case APNetworkStatus.ACTIVE:
return "Active";
case APNetworkStatus.INACTIVE:
return "Inactive";
case APNetworkStatus.LINGERING:
return "Lingering until idle";
default:
return "Unknown";
}
};

View File

@ -1,18 +1,24 @@
export enum ApProvisionMode {
export enum APProvisionMode {
AP_MODE_ALWAYS = 0,
AP_MODE_DISCONNECTED = 1,
AP_NEVER = 2
}
export enum APNetworkStatus {
ACTIVE = 0,
INACTIVE = 1,
LINGERING = 2
}
export interface APStatus {
active: boolean;
status: APNetworkStatus;
ip_address: string;
mac_address: string;
station_num: number;
}
export interface APSettings {
provision_mode: ApProvisionMode;
provision_mode: APProvisionMode;
ssid: string;
password: string;
}