Files
feedBack/plugins/app_tour_settings/script.js
T
Bret Mogilefskyandbyrongamatos d3037b903e rename: slopsmith -> feedBack, byron -> got-feedBack
Renames across the entire codebase:
- slopsmith/Slopsmith/SLOPSMITH/SlopSmith -> feedBack/FeedBack/FEEDBACK/FeedBack
- byron/Byron/Byrongamatos -> got-feedBack/got-feedBack/got-feedBack
- /home/byron/ -> /opt/got-feedBack/
- byron@ougsoft.com -> hi@got-feedBack.org
- github.com/byrongamatos/ -> github.com/got-feedback/
- com.byron. -> com.got-feedback.
- SLOPSMITH_ env vars -> FEEDBACK_ with backward-compat fallback
- Protocol/storage strings migrated with read-old/write-new pattern
- window.slopsmith JS API -> window.feedBack (canonical) + backward-compat alias

Refs: #rename-slopsmith
2026-06-23 10:04:23 +02:00

69 lines
2.5 KiB
JavaScript

(function () {
'use strict';
var PLUGIN_ID = 'app_tour_settings';
var SCREENS = ['settings'];
function _register() {
try {
window.feedBackTour.register(PLUGIN_ID, { screens: SCREENS });
} catch (e) {
console.warn('[app_tour_settings] register failed', e);
}
}
if (window.feedBackTour && typeof window.feedBackTour.register === 'function') {
_register();
} else {
var deadline = performance.now() + 5000;
var pollId = setInterval(function () {
if (window.feedBackTour && typeof window.feedBackTour.register === 'function') {
clearInterval(pollId);
_register();
} else if (performance.now() > deadline) {
clearInterval(pollId);
}
}, 100);
}
// ── Layout nudge ──────────────────────────────────────────────────────
// Tuner plugin parks a FAB at `fixed bottom-5 right-5` on every screen;
// tour engine's ? button sits at bottom:12px right:12px — same corner.
// Nudge the tour UI up when the settings screen is active.
var NUDGE_CLASS = 'app-tour-settings-nudge';
var STYLE_ID = 'app-tour-settings-nudge-style';
function _ensureStyle() {
if (document.getElementById(STYLE_ID)) return;
var s = document.createElement('style');
s.id = STYLE_ID;
s.textContent =
'body.' + NUDGE_CLASS + ' .feedBack-tour-menu-btn { bottom: 68px; }' +
'body.' + NUDGE_CLASS + ' .feedBack-tour-menu-popover { bottom: 112px; }' +
'body.' + NUDGE_CLASS + ' .feedBack-tour-prompt { bottom: 112px; }';
document.head.appendChild(s);
}
function _applyNudge(screenId) {
if (!document.body) return;
document.body.classList.toggle(NUDGE_CLASS, screenId === 'settings');
}
function _initNudge() {
_ensureStyle();
var active = document.querySelector('.screen.active');
_applyNudge(active ? active.id : null);
if (window.feedBack && typeof window.feedBack.on === 'function') {
window.feedBack.on('screen:changed', function (ev) {
_applyNudge(ev && ev.detail && ev.detail.id);
});
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', _initNudge, { once: true });
} else {
_initNudge();
}
})();