MCPcopy Create free account
hub / github.com/InverseUI/InverseUI-Recorder / startRecording

Function startRecording

modules/recording.js:394–441  ·  view source on GitHub ↗
(getXpaths, safeSendMessage)

Source from the content-addressed store, hash-verified

392 * Start recording user actions by adding event listeners
393 */
394export function startRecording(getXpaths, safeSendMessage) {
395 if (isRecordingActive) return;
396
397 console.log('InverseUI: Starting action recording');
398 isRecordingActive = true;
399
400 // Store listeners so we can remove them later
401 const clickListener = function(event) {
402 var target = event.target || event.srcElement;
403 var xpaths = getXpaths(target);
404 console.log("click on xpath: " + xpaths);
405
406 safeSendMessage({
407 message: "onClick",
408 xPath: xpaths,
409 coordinates: { x: event.clientX, y: event.clientY },
410 button: event.button,
411 modifiers: {
412 ctrl: event.ctrlKey,
413 shift: event.shiftKey,
414 alt: event.altKey,
415 meta: event.metaKey
416 }
417 });
418 };
419
420 const inputListener = function(event) {
421 var target = event.target || event.srcElement;
422 var xpaths = getXpaths(target);
423 console.log("input on xpath: " + xpaths + " | content: " + target.value);
424 safeSendMessage({
425 message: "onInput",
426 xPath: xpaths,
427 content: target.value,
428 type: target.type
429 });
430 };
431
432 // Add event listeners
433 document.addEventListener("click", clickListener, true);
434 document.addEventListener("input", inputListener, true);
435
436 // Store listeners for cleanup
437 eventListeners.push(
438 { element: document, event: "click", listener: clickListener, capture: true },
439 { element: document, event: "input", listener: inputListener, capture: true }
440 );
441}
442
443/**
444 * Stop recording user actions by removing event listeners

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected