| Server IP : 66.29.153.156 / Your IP : 216.73.217.22 Web Server : LiteSpeed System : Linux premium322.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64 User : lastyfjz ( 1521) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/lastyfjz/././unicitys.com/wp-content/plugins/extendify/src/QuickEdit/lib/ |
Upload File : |
import { useEditModeStore } from '../state/edit-mode';
import { useQuickEditStore } from '../state/store';
import { decideEscapeAction } from './escape-rule';
const CANCEL_EVENT = 'extendify-agent:cancel-workflow';
const onKey = (e) => {
if (e.key !== 'Escape') return;
const editModeOn = useEditModeStore.getState().on;
if (!editModeOn) return;
const {
agentBlock,
selected,
committedSelection,
setAgentBlock,
clearSelected,
setCommittedSelection,
} = useQuickEditStore.getState();
const sameBlock =
selected?.blockId != null &&
agentBlock?.id != null &&
String(selected.blockId) === String(agentBlock.id);
const { action } = decideEscapeAction({
editModeOn: true,
hasAgentBlock: !!agentBlock,
hasQuickEditSelection: !!selected,
hasCommittedSelection: !!committedSelection,
sameBlock,
});
if (action === 'clear-selection-and-agent-block') {
window.dispatchEvent(new CustomEvent(CANCEL_EVENT));
setAgentBlock(null);
clearSelected();
e.preventDefault();
e.stopPropagation();
return;
}
if (action === 'clear-agent-block') {
window.dispatchEvent(new CustomEvent(CANCEL_EVENT));
setAgentBlock(null);
e.preventDefault();
e.stopPropagation();
return;
}
if (action === 'clear-selection') {
clearSelected();
e.preventDefault();
e.stopPropagation();
return;
}
if (action === 'clear-committed-selection') {
setCommittedSelection(null);
e.preventDefault();
e.stopPropagation();
return;
}
// noop: stop propagation so the old window-level fallback (which
// would have toggled edit mode off) stays quiet. preventDefault is
// intentionally not called — there's nothing to suppress.
e.stopPropagation();
};
export const wireGlobalEscape = () => {
document.addEventListener('keydown', onKey);
return () => document.removeEventListener('keydown', onKey);
};