diff --git a/interface/src/framework/ap/APSettingsForm.tsx b/interface/src/framework/ap/APSettingsForm.tsx
index f15c6b802..8080f4f0f 100644
--- a/interface/src/framework/ap/APSettingsForm.tsx
+++ b/interface/src/framework/ap/APSettingsForm.tsx
@@ -14,6 +14,7 @@ import {
ValidatedPasswordField,
ValidatedTextField
} from '../../components';
+
import { APProvisionMode, APSettings } from '../../types';
import { numberValue, updateValue, useRest } from '../../utils';
import * as APApi from '../../api/ap';
diff --git a/interface/src/project/SettingsCustomization.tsx b/interface/src/project/SettingsCustomization.tsx
index 905647f06..ad9ab5b90 100644
--- a/interface/src/project/SettingsCustomization.tsx
+++ b/interface/src/project/SettingsCustomization.tsx
@@ -11,7 +11,8 @@ import {
DialogTitle,
ToggleButton,
ToggleButtonGroup,
- Tooltip
+ Tooltip,
+ Grid
} from '@mui/material';
import { Table } from '@table-library/react-table-library/table';
@@ -37,7 +38,7 @@ import * as EMSESP from './api';
import { extractErrorMessage } from '../utils';
-import { DeviceShort, Devices, DeviceEntity } from './types';
+import { DeviceShort, Devices, DeviceEntity, DeviceEntityMask } from './types';
const SettingsCustomization: FC = () => {
const { enqueueSnackbar } = useSnackbar();
@@ -286,40 +287,69 @@ const SettingsCustomization: FC = () => {
return new_masks;
};
+ const maskDisabled = (set: boolean) => {
+ setDeviceEntities(
+ deviceEntities
+ .filter((de) => de.m & selectedFilters || !selectedFilters)
+ .map(({ m, ...entities }) => ({
+ ...entities,
+ m: set
+ ? m | (DeviceEntityMask.DV_API_MQTT_EXCLUDE | DeviceEntityMask.DV_WEB_EXCLUDE)
+ : m & ~(DeviceEntityMask.DV_API_MQTT_EXCLUDE | DeviceEntityMask.DV_WEB_EXCLUDE)
+ }))
+ );
+ };
+
return (
<>
-