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
25 lines
712 B
JavaScript
25 lines
712 B
JavaScript
const { EOL } = require('os')
|
|
|
|
const getFirstRegexpMatchOrDefault = (text, regexp, defaultValue) => {
|
|
regexp.lastIndex = 0 // https://stackoverflow.com/a/11477448/4536543
|
|
let match = regexp.exec(text)
|
|
if (match !== null) {
|
|
return match[1]
|
|
} else {
|
|
return defaultValue
|
|
}
|
|
}
|
|
|
|
const DEFAULT_INDENT = ' '
|
|
const INDENT_REGEXP = /^([ \t]+)[^\s]/m
|
|
|
|
module.exports.detectIndent = text =>
|
|
getFirstRegexpMatchOrDefault(text, INDENT_REGEXP, DEFAULT_INDENT)
|
|
module.exports.DEFAULT_INDENT = DEFAULT_INDENT
|
|
|
|
const DEFAULT_EOL = EOL
|
|
const EOL_REGEXP = /(\r\n|\n|\r)/g
|
|
|
|
module.exports.detectEOL = text =>
|
|
getFirstRegexpMatchOrDefault(text, EOL_REGEXP, DEFAULT_EOL)
|
|
module.exports.DEFAULT_EOL = DEFAULT_EOL
|