Skip to content

Commit 82ccccd

Browse files
committed
fix(DeviceDetails): Non-functional errorFilter and warningFilter props
1 parent c487045 commit 82ccccd

File tree

3 files changed

+38
-31
lines changed

3 files changed

+38
-31
lines changed

src/lib/seam/components/DeviceDetails/DeviceDetails.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,16 @@ export interface DeviceDetailsProps extends CommonProps {
1515

1616
export const NestedDeviceDetails = withRequiredCommonProps(DeviceDetails)
1717

18+
export interface NestedSpecificDeviceDetailsProps
19+
extends Required<Omit<CommonProps, 'onBack' | 'className'>> {
20+
onBack: (() => void) | undefined
21+
className: string | undefined
22+
}
23+
1824
export function DeviceDetails({
1925
deviceId,
26+
errorFilter = () => true,
27+
warningFilter = () => true,
2028
disableLockUnlock = false,
2129
disableDeleteAccessCode = false,
2230
disableResourceIds = false,
@@ -37,7 +45,9 @@ export function DeviceDetails({
3745
return null
3846
}
3947

40-
const props: Omit<DeviceDetailsProps, 'deviceId'> = {
48+
const props: NestedSpecificDeviceDetailsProps = {
49+
errorFilter,
50+
warningFilter,
4151
disableLockUnlock,
4252
disableDeleteAccessCode,
4353
disableResourceIds,

src/lib/seam/components/DeviceDetails/LockDeviceDetails.tsx

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import type { LockDevice } from 'seamapi'
44
import { ChevronRightIcon } from 'lib/icons/ChevronRight.js'
55
import { useAccessCodes } from 'lib/seam/access-codes/use-access-codes.js'
66
import { NestedAccessCodeTable } from 'lib/seam/components/AccessCodeTable/AccessCodeTable.js'
7-
import type { CommonProps } from 'lib/seam/components/common-props.js'
7+
import type { NestedSpecificDeviceDetailsProps } from 'lib/seam/components/DeviceDetails/DeviceDetails.js'
88
import { DeviceInfo } from 'lib/seam/components/DeviceDetails/DeviceInfo.js'
99
import { DeviceModel } from 'lib/seam/components/DeviceDetails/DeviceModel.js'
1010
import { useToggleLock } from 'lib/seam/devices/use-toggle-lock.js'
@@ -17,28 +17,24 @@ import { OnlineStatus } from 'lib/ui/device/OnlineStatus.js'
1717
import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
1818
import { useToggle } from 'lib/ui/use-toggle.js'
1919

20-
interface LockDeviceDetailsProps extends CommonProps {
20+
interface LockDeviceDetailsProps extends NestedSpecificDeviceDetailsProps {
2121
device: LockDevice
2222
}
2323

24-
export function LockDeviceDetails(
25-
props: LockDeviceDetailsProps
26-
): JSX.Element | null {
27-
const {
28-
device,
29-
errorFilter = () => true,
30-
warningFilter = () => true,
31-
disableLockUnlock,
32-
disableCreateAccessCode,
33-
disableEditAccessCode,
34-
disableDeleteAccessCode,
35-
disableResourceIds,
36-
disableConnectedAccountInformation,
37-
disableClimateSettingSchedules,
38-
onBack,
39-
className,
40-
} = props
41-
24+
export function LockDeviceDetails({
25+
device,
26+
errorFilter,
27+
warningFilter,
28+
disableLockUnlock,
29+
disableCreateAccessCode,
30+
disableEditAccessCode,
31+
disableDeleteAccessCode,
32+
disableResourceIds,
33+
disableConnectedAccountInformation,
34+
disableClimateSettingSchedules,
35+
onBack,
36+
className,
37+
}: LockDeviceDetailsProps): JSX.Element | null {
4238
const [accessCodesOpen, toggleAccessCodesOpen] = useToggle()
4339
const toggleLock = useToggleLock(device)
4440
const { accessCodes } = useAccessCodes({
@@ -132,7 +128,7 @@ export function LockDeviceDetails(
132128
<span className='seam-value'>{lockStatus}</span>
133129
</div>
134130
<div className='seam-right'>
135-
{disableLockUnlock !== true &&
131+
{!disableLockUnlock &&
136132
device.capabilities_supported.includes('lock') && (
137133
<Button
138134
size='small'

src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { debounce } from 'lib/debounce.js'
66
import { CheckBlackIcon } from 'lib/icons/CheckBlack.js'
77
import { ChevronWideIcon } from 'lib/icons/ChevronWide.js'
88
import { NestedClimateSettingScheduleTable } from 'lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js'
9-
import type { CommonProps } from 'lib/seam/components/common-props.js'
9+
import type { NestedSpecificDeviceDetailsProps } from 'lib/seam/components/DeviceDetails/DeviceDetails.js'
1010
import { DeviceInfo } from 'lib/seam/components/DeviceDetails/DeviceInfo.js'
1111
import { useClimateSettingSchedules } from 'lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js'
1212
import { useCoolThermostat } from 'lib/seam/thermostats/use-cool-thermostat.js'
@@ -29,23 +29,24 @@ import { FanModeMenu } from 'lib/ui/thermostat/FanModeMenu.js'
2929
import { TemperatureControlGroup } from 'lib/ui/thermostat/TemperatureControlGroup.js'
3030
import { ThermostatCard } from 'lib/ui/thermostat/ThermostatCard.js'
3131

32-
interface ThermostatDeviceDetailsProps extends CommonProps {
32+
interface ThermostatDeviceDetailsProps
33+
extends NestedSpecificDeviceDetailsProps {
3334
device: ThermostatDevice
3435
}
3536

3637
export function ThermostatDeviceDetails({
3738
device,
38-
onBack,
39-
className,
40-
errorFilter = () => true,
41-
warningFilter = () => true,
39+
errorFilter,
40+
warningFilter,
4241
disableLockUnlock,
4342
disableCreateAccessCode,
4443
disableEditAccessCode,
4544
disableDeleteAccessCode,
46-
disableResourceIds = false,
47-
disableConnectedAccountInformation = false,
48-
disableClimateSettingSchedules = false,
45+
disableResourceIds,
46+
disableConnectedAccountInformation,
47+
disableClimateSettingSchedules,
48+
onBack,
49+
className,
4950
}: ThermostatDeviceDetailsProps): JSX.Element | null {
5051
const [climateSettingsOpen, setClimateSettingsOpen] = useState(false)
5152

0 commit comments

Comments
 (0)