From fabb2a2b20828b195bbc3ad76a58af63d4c6bf10 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Sun, 8 Sep 2024 14:31:06 +0530 Subject: [PATCH 1/6] refactor: cleaner pagination type check --- src/components/organisms/BrowserWindow.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/BrowserWindow.tsx b/src/components/organisms/BrowserWindow.tsx index 7ae888a1..538eef8d 100644 --- a/src/components/organisms/BrowserWindow.tsx +++ b/src/components/organisms/BrowserWindow.tsx @@ -117,7 +117,7 @@ export const BrowserWindow = () => { socket?.emit('listSelector', { selector: listSelector }); if (paginationMode) { // Pagination mode: only set highlighterData if type is not empty, 'none', 'scrollDown', or 'scrollUp' - if (paginationType !== '' && paginationType !== 'scrollDown' && paginationType !== 'scrollUp' && paginationType !== 'none') { + if (paginationType !== '' && !['none', 'scrollDown', 'scrollUp'].includes(paginationType)) { setHighlighterData(data); } else { setHighlighterData(null); From e84a1bbdbce2ec318b0246bb796048c003572c7f Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Mon, 9 Sep 2024 01:22:35 +0530 Subject: [PATCH 2/6] feat: prevent premature reset of getList --- server/src/workflow-management/classes/Generator.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/workflow-management/classes/Generator.ts b/server/src/workflow-management/classes/Generator.ts index 1f59b3f8..158ba2a6 100644 --- a/server/src/workflow-management/classes/Generator.ts +++ b/server/src/workflow-management/classes/Generator.ts @@ -527,8 +527,6 @@ export class WorkflowGenerator { this.socket.emit('highlighter', { rect, selector: displaySelector, elementInfo }); } } - // reset getList after usage - this.getList = false; } /** From b5224eb4595ac71efb40833ea994d55d43763912 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Mon, 9 Sep 2024 03:16:59 +0530 Subject: [PATCH 3/6] feat: send highlighterData even if list selector empty --- server/src/workflow-management/classes/Generator.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/src/workflow-management/classes/Generator.ts b/server/src/workflow-management/classes/Generator.ts index 158ba2a6..7819fe1a 100644 --- a/server/src/workflow-management/classes/Generator.ts +++ b/server/src/workflow-management/classes/Generator.ts @@ -485,12 +485,12 @@ export class WorkflowGenerator { const generalSelector = await getNonUniqueSelectors(page, coordinates) const childSelectors = await getChildSelectors(page, generalSelector.generalSelector); - console.log('Non Unique Selectors [DEBUG]:', generalSelector); - console.log('Child Selectors [DEBUG]:', childSelectors); + console.log(`Get List value while generating selector`, this.getList); const selectorBasedOnCustomAction = (this.getList === true) ? await getNonUniqueSelectors(page, coordinates) : await getSelectors(page, coordinates); + const bestSelector = getBestSelectorForAction( { type: action, @@ -522,6 +522,8 @@ export class WorkflowGenerator { if (this.listSelector !== '') { const childSelectors = await getChildSelectors(page, this.listSelector || ''); this.socket.emit('highlighter', { rect, selector: displaySelector, elementInfo, childSelectors }) + } else { + this.socket.emit('highlighter', { rect, selector: displaySelector, elementInfo }); } } else { this.socket.emit('highlighter', { rect, selector: displaySelector, elementInfo }); From 041332edfa31bca798480104f8eca197aac84fc0 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Mon, 9 Sep 2024 03:17:28 +0530 Subject: [PATCH 4/6] feat: emit getList socket events from context --- src/context/browserActions.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/context/browserActions.tsx b/src/context/browserActions.tsx index 6590913a..2ab82553 100644 --- a/src/context/browserActions.tsx +++ b/src/context/browserActions.tsx @@ -1,4 +1,5 @@ import React, { createContext, useContext, useState, ReactNode } from 'react'; +import { useSocketStore } from './socket'; export type PaginationType = 'scrollDown' | 'scrollUp' | 'clickNext' | 'clickLoadMore' | 'none' | ''; export type LimitType = '10' | '100' | 'custom' | ''; @@ -39,6 +40,8 @@ export const ActionProvider = ({ children }: { children: ReactNode }) => { const [limitType, setLimitType] = useState(''); const [customLimit, setCustomLimit] = useState(''); + const {socket} = useSocketStore(); + const updatePaginationType = (type: PaginationType) => setPaginationType(type); const updateLimitType = (type: LimitType) => setLimitType(type); const updateCustomLimit = (limit: string) => setCustomLimit(limit); @@ -52,9 +55,14 @@ export const ActionProvider = ({ children }: { children: ReactNode }) => { const startGetText = () => setGetText(true); const stopGetText = () => setGetText(false); - const startGetList = () => setGetList(true); + const startGetList = () => { + setGetList(true); + socket?.emit('setGetList', { getList: true }); + } + const stopGetList = () => { setGetList(false); + socket?.emit('setGetList', { getList: false }); setPaginationType(''); setLimitType(''); setCustomLimit(''); From 1712c121b95c1292b3cc47aa49edf6b33e9bae5b Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Mon, 9 Sep 2024 03:18:13 +0530 Subject: [PATCH 5/6] fix: remove redundant socket emission for getList --- src/components/organisms/BrowserWindow.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/organisms/BrowserWindow.tsx b/src/components/organisms/BrowserWindow.tsx index 538eef8d..9b38a302 100644 --- a/src/components/organisms/BrowserWindow.tsx +++ b/src/components/organisms/BrowserWindow.tsx @@ -112,7 +112,6 @@ export const BrowserWindow = () => { const highlighterHandler = useCallback((data: { rect: DOMRect, selector: string, elementInfo: ElementInfo | null, childSelectors?: string[] }) => { if (getList === true) { - socket?.emit('setGetList', { getList: true }); if (listSelector) { socket?.emit('listSelector', { selector: listSelector }); if (paginationMode) { From e53ce5374a1a38111e0e76f7e427038865411bbe Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Mon, 9 Sep 2024 03:19:42 +0530 Subject: [PATCH 6/6] docs: getList mode explanataion --- src/components/organisms/BrowserWindow.tsx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/organisms/BrowserWindow.tsx b/src/components/organisms/BrowserWindow.tsx index 9b38a302..c205856d 100644 --- a/src/components/organisms/BrowserWindow.tsx +++ b/src/components/organisms/BrowserWindow.tsx @@ -115,24 +115,26 @@ export const BrowserWindow = () => { if (listSelector) { socket?.emit('listSelector', { selector: listSelector }); if (paginationMode) { - // Pagination mode: only set highlighterData if type is not empty, 'none', 'scrollDown', or 'scrollUp' + // only set highlighterData if type is not empty, 'none', 'scrollDown', or 'scrollUp' if (paginationType !== '' && !['none', 'scrollDown', 'scrollUp'].includes(paginationType)) { setHighlighterData(data); } else { setHighlighterData(null); } } else if (data.childSelectors && data.childSelectors.includes(data.selector)) { - // !Pagination mode: highlight only valid child elements within the listSelector + // highlight only valid child elements within the listSelector setHighlighterData(data); } else { - // If not a valid child in normal mode, clear the highlighter + // if !valid child in normal mode, clear the highlighter setHighlighterData(null); } } else { - setHighlighterData(data); // Set highlighterData for the initial listSelector selection + // set highlighterData for the initial listSelector selection + setHighlighterData(data); } } else { - setHighlighterData(data); // For non-list steps + // for non-list steps + setHighlighterData(data); } }, [highlighterData, getList, socket, listSelector, paginationMode, paginationType]);