prefer enums over named consts in UI for better static analysis

This commit is contained in:
Rick Watson
2020-05-29 20:58:09 +01:00
parent 0d39c5ca00
commit 0004cf988b
8 changed files with 69 additions and 59 deletions

View File

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

View File

@ -6,8 +6,8 @@ import SaveIcon from '@material-ui/icons/Save';
import {PasswordValidator, RestFormProps, FormActions, FormButton} from '../components';
import { isAPEnabled, AP_MODE_ALWAYS, AP_MODE_DISCONNECTED, AP_NEVER } from './APModes';
import { APSettings } from './types';
import { isAPEnabled } from './APModes';
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={AP_MODE_ALWAYS}>Always</MenuItem>
<MenuItem value={AP_MODE_DISCONNECTED}>When WiFi Disconnected</MenuItem>
<MenuItem value={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,3 +1,9 @@
export enum ApProvisionMode {
AP_MODE_ALWAYS = 0,
AP_MODE_DISCONNECTED = 1,
AP_NEVER = 2
}
export interface APStatus {
active: boolean;
ip_address: string;
@ -6,7 +12,7 @@ export interface APStatus {
}
export interface APSettings {
provision_mode: number;
provision_mode: ApProvisionMode;
ssid: string;
password: string;
}