@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
32 lines • 1.26 kB
JavaScript
import { DeviceModelId } from "@ledgerhq/devices";
import semver from "semver";
/**
* This code enforces a maximum device name length on the Live side due to a bug
* in LNX <2.2.0 that breaks the BLE stack if the name is longer than 17 characters.
* To ensure consistency with the maximum length that can be set on Stax (23), the
* visible characters (20), and the maximum APDU-driven rename length (30), this
* patch introduces a maximum length of 20 characters until all inconsistencies
* are aligned.
*/
const getDeviceNameMaxLength = (props) => {
const { deviceModelId, version } = props;
let maxLength = 17; // Default for other models and versions.
switch (deviceModelId) {
case DeviceModelId.nanoX: {
const coercedVersion = semver.coerce(version);
const validVersion = semver.valid(coercedVersion) || "";
if (semver.gte(validVersion, "2.2.0")) {
maxLength = 20;
}
break;
}
case DeviceModelId.stax:
case DeviceModelId.europa:
case DeviceModelId.apex:
maxLength = 20;
break;
}
return maxLength;
};
export default getDeviceNameMaxLength;
//# sourceMappingURL=getDeviceNameMaxLength.js.map