Toggle manual hardware edit button

This commit is contained in:
pewdiepie-archdaemon
2026-06-27 22:35:50 +00:00
parent f0b3c0bb83
commit a5eea9c093
+13 -1
View File
@@ -878,6 +878,8 @@ function _renderHwVisibilityWarning(sys) {
box.querySelector('[data-hw-action="manual"]')?.addEventListener('click', () => { box.querySelector('[data-hw-action="manual"]')?.addEventListener('click', () => {
const panel = document.getElementById('hwfit-manual-panel'); const panel = document.getElementById('hwfit-manual-panel');
if (panel) panel.classList.remove('hidden'); if (panel) panel.classList.remove('hidden');
const manualBtn = document.getElementById('hwfit-hw-manual-btn');
if (manualBtn) manualBtn.textContent = 'CANCEL';
document.getElementById('hwfit-hw-manual-btn')?.scrollIntoView?.({ document.getElementById('hwfit-hw-manual-btn')?.scrollIntoView?.({
behavior: 'smooth', behavior: 'smooth',
block: 'center', block: 'center',
@@ -1042,6 +1044,8 @@ export function _hwfitRenderHw(el, sys) {
_saveManualHwState(null); _saveManualHwState(null);
btn.closest('.hwfit-hw-chip-row')?.remove(); btn.closest('.hwfit-hw-chip-row')?.remove();
document.getElementById('hwfit-manual-panel')?.classList.add('hidden'); document.getElementById('hwfit-manual-panel')?.classList.add('hidden');
const manualBtn = document.getElementById('hwfit-hw-manual-btn');
if (manualBtn) manualBtn.textContent = 'EDIT';
_resetGpuToggleState(); _resetGpuToggleState();
_hwfitCache = null; _hwfitCache = null;
_hwfitFetch(true); _hwfitFetch(true);
@@ -1062,16 +1066,20 @@ function _wireManualHardwareControls(el) {
const btn = document.getElementById('hwfit-hw-manual-btn'); const btn = document.getElementById('hwfit-hw-manual-btn');
const panel = document.getElementById('hwfit-manual-panel'); const panel = document.getElementById('hwfit-manual-panel');
if (!btn || !panel) return; if (!btn || !panel) return;
const syncManualButton = () => {
btn.textContent = panel.classList.contains('hidden') ? 'EDIT' : 'CANCEL';
};
const clearManual = () => { const clearManual = () => {
_saveManualHwState(null); _saveManualHwState(null);
el.querySelector('.hwfit-hw-chip-manual')?.remove(); el.querySelector('.hwfit-hw-chip-manual')?.remove();
panel.classList.add('hidden'); panel.classList.add('hidden');
syncManualButton();
_resetGpuToggleState(); _resetGpuToggleState();
_hwfitCache = null; _hwfitCache = null;
_hwfitFetch(true); _hwfitFetch(true);
}; };
const manual = _manualHwState(); const manual = _manualHwState();
btn.textContent = 'EDIT'; syncManualButton();
if (manual) { if (manual) {
panel.querySelector('.hwfit-manual-mode').value = manual.mode || 'gpu'; panel.querySelector('.hwfit-manual-mode').value = manual.mode || 'gpu';
panel.querySelector('.hwfit-manual-backend').value = manual.backend || 'cuda'; panel.querySelector('.hwfit-manual-backend').value = manual.backend || 'cuda';
@@ -1087,11 +1095,13 @@ function _wireManualHardwareControls(el) {
btn._hwfitManualBound = true; btn._hwfitManualBound = true;
btn.addEventListener('click', () => { btn.addEventListener('click', () => {
panel.classList.toggle('hidden'); panel.classList.toggle('hidden');
syncManualButton();
syncMode(); syncMode();
}); });
} }
el.querySelector('.hwfit-hw-chip-toggle[data-hw-chip="manual"]')?.addEventListener('click', () => { el.querySelector('.hwfit-hw-chip-toggle[data-hw-chip="manual"]')?.addEventListener('click', () => {
panel.classList.remove('hidden'); panel.classList.remove('hidden');
syncManualButton();
syncMode(); syncMode();
}); });
if (!panel._hwfitManualBound) { if (!panel._hwfitManualBound) {
@@ -1108,12 +1118,14 @@ function _wireManualHardwareControls(el) {
_resetGpuToggleState(); _resetGpuToggleState();
_hwfitCache = null; _hwfitCache = null;
panel.classList.add('hidden'); panel.classList.add('hidden');
syncManualButton();
_hwfitRenderHw(el, _manualDisplaySystem(window._hwfitSystemCache, manual)); _hwfitRenderHw(el, _manualDisplaySystem(window._hwfitSystemCache, manual));
_hwfitFetch(true); _hwfitFetch(true);
}); });
panel.querySelector('.hwfit-hw-manual-clear')?.addEventListener('click', clearManual); panel.querySelector('.hwfit-hw-manual-clear')?.addEventListener('click', clearManual);
} }
syncMode(); syncMode();
syncManualButton();
} }
export const _fitColors = { perfect: 'var(--green, #50fa7b)', good: 'var(--yellow, #f1fa8c)', marginal: 'var(--orange, #ffb86c)', too_tight: 'var(--red, #ff5555)' }; export const _fitColors = { perfect: 'var(--green, #50fa7b)', good: 'var(--yellow, #f1fa8c)', marginal: 'var(--orange, #ffb86c)', too_tight: 'var(--red, #ff5555)' };