diff --git a/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.tsx b/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.tsx index 24e9ffeb1..547d7a6c2 100644 --- a/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.tsx +++ b/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.tsx @@ -13,6 +13,7 @@ import { } from 'lib/seam/components/common-props.js' import { NestedDeviceDetails } from 'lib/seam/components/DeviceDetails/DeviceDetails.js' import { NestedEditAccessCodeForm } from 'lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.js' +import { useDevice } from 'lib/seam/devices/use-device.js' import { accessCodeErrorFilter, accessCodeWarningFilter, @@ -94,6 +95,12 @@ export function AccessCodeDetails({ ) }, [accessCode, deleteCode, onDelete, preventDefaultOnDelete]) + const { device } = useDevice({ device_id: accessCode?.device_id }) + const canSpecifyPinCode = + device?.properties.code_constraints?.every( + ({ constraint_type: type }) => type !== 'cannot_specify_pin_code' + ) ?? true + if (accessCode == null) { return null } @@ -192,18 +199,23 @@ export function AccessCodeDetails({ alerts.length > 0 && 'seam-top-has-alerts' )} > - {t.accessCode} -
{name}
-
- {accessCode.code} - { - void copyToClipboard(accessCode.code ?? '') - }} - > - - -
+ {canSpecifyPinCode && ( + <> + {t.accessCode} +
{name}
+
+ {accessCode.code} + { + void copyToClipboard(accessCode.code ?? '') + }} + > + + +
+ + )} +
@@ -215,28 +227,32 @@ export function AccessCodeDetails({ onSelectDevice={selectDevice} /> - {(!disableEditAccessCode || !disableDeleteAccessCode) && ( -
- {!disableEditAccessCode && !accessCode.is_offline_access_code && ( - - )} - {!disableDeleteAccessCode && !accessCode.is_offline_access_code && ( - - )} -
- )} + + {canSpecifyPinCode && + (!disableEditAccessCode || !disableDeleteAccessCode) && ( +
+ {!disableEditAccessCode && !accessCode.is_offline_access_code && ( + + )} + {!disableDeleteAccessCode && + !accessCode.is_offline_access_code && ( + + )} +
+ )} +
{!disableResourceIds && (