Detects when user changes same config setting 3+ times within 24 hours. Shows non-intrusive prompt offering help with guided calibration flow. Guided calibration features: - Test for false positives (walk around room) - Test for missed motion (sit still) - Suggest optimal value based on diurnal baseline SNR and link health - Apply suggested value button Files: - dashboard/js/proactive.js: Complete implementation with localStorage tracking Acceptance: - Help prompt fires after 3+ changes in 24h - Calibration flow tests both directions - Suggests value based on system data - Apply button works
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
function requireUtil() {
|
|
try {
|
|
// eslint-disable-next-line no-restricted-modules
|
|
return require("util");
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// for v10.12.0+
|
|
function lookupCustomInspectSymbol() {
|
|
return Symbol.for("nodejs.util.inspect.custom");
|
|
}
|
|
|
|
// for older node environments
|
|
function tryReadingCustomSymbolFromUtilInspect(options) {
|
|
const _requireUtil = options.requireUtil || requireUtil;
|
|
const util = _requireUtil();
|
|
return util ? util.inspect.custom : null;
|
|
}
|
|
|
|
exports.getUtilInspect = function getUtilInspect(fallback, options = {}) {
|
|
const _requireUtil = options.requireUtil || requireUtil;
|
|
const util = _requireUtil();
|
|
return function inspect(value, showHidden, depth) {
|
|
return util ? util.inspect(value, showHidden, depth) : fallback(value);
|
|
};
|
|
};
|
|
|
|
exports.getCustomInspectSymbol = function getCustomInspectSymbol(options = {}) {
|
|
const _lookupCustomInspectSymbol =
|
|
options.lookupCustomInspectSymbol || lookupCustomInspectSymbol;
|
|
|
|
// get custom inspect symbol for node environments
|
|
return (
|
|
_lookupCustomInspectSymbol() ||
|
|
tryReadingCustomSymbolFromUtilInspect(options)
|
|
);
|
|
};
|