From f77ccd80f278b454c07474b4d2bc2dd4423b8e44 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 13:21:52 +0530 Subject: [PATCH 01/34] feat: pass pairForEdit --- src/pages/RecordingPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/RecordingPage.tsx b/src/pages/RecordingPage.tsx index 8683e691..73afef01 100644 --- a/src/pages/RecordingPage.tsx +++ b/src/pages/RecordingPage.tsx @@ -129,7 +129,7 @@ export const RecordingPage = ({ recordingName }: RecordingPageProps) => { - + : } From 69b9c6138fee545a896515ac0001ff21198ab5b5 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 13:23:38 +0530 Subject: [PATCH 02/34] feat: pass pairForEdit in RightSidePanelProps --- src/components/organisms/RightSidePanel.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 9148fb5a..4a5e0687 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -17,11 +17,13 @@ import FormControl from '@mui/material/FormControl'; import FormLabel from '@mui/material/FormLabel'; import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; +import { PairForEdit } from "../../pages/RecordingPage"; // TODO: // 1. Add description for each browser step // 2. Handle non custom action steps interface RightSidePanelProps { + pairForEdit: PairForEdit; onFinishCapture: () => void; } From 2a130aecd6f867be7ff67c4b02dd61f926b8efd7 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:14:34 +0530 Subject: [PATCH 03/34] chore: -rm pairForEdit prop --- src/components/organisms/RightSidePanel.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 4a5e0687..9148fb5a 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -17,13 +17,11 @@ import FormControl from '@mui/material/FormControl'; import FormLabel from '@mui/material/FormLabel'; import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; -import { PairForEdit } from "../../pages/RecordingPage"; // TODO: // 1. Add description for each browser step // 2. Handle non custom action steps interface RightSidePanelProps { - pairForEdit: PairForEdit; onFinishCapture: () => void; } From 4b82e5425ad9209502aacad12a4bfe970d063894 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:14:56 +0530 Subject: [PATCH 04/34] chore: -rm pairForEdit prop --- src/pages/RecordingPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/RecordingPage.tsx b/src/pages/RecordingPage.tsx index 73afef01..8683e691 100644 --- a/src/pages/RecordingPage.tsx +++ b/src/pages/RecordingPage.tsx @@ -129,7 +129,7 @@ export const RecordingPage = ({ recordingName }: RecordingPageProps) => { - + : } From a71cc52af9c05c5c1b46d4e8e90ff06f0064bce2 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:16:35 +0530 Subject: [PATCH 05/34] feat: workflow state --- src/components/organisms/RightSidePanel.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 9148fb5a..0941a26a 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -17,6 +17,8 @@ import FormControl from '@mui/material/FormControl'; import FormLabel from '@mui/material/FormLabel'; import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; +import { emptyWorkflow } from "../../shared/constants"; + // TODO: // 1. Add description for each browser step @@ -26,6 +28,7 @@ interface RightSidePanelProps { } export const RightSidePanel: React.FC = ({ onFinishCapture }) => { + const [workflow, setWorkflow] = useState(emptyWorkflow); const [textLabels, setTextLabels] = useState<{ [id: string]: string }>({}); const [errors, setErrors] = useState<{ [id: string]: string }>({}); const [confirmedTextSteps, setConfirmedTextSteps] = useState<{ [id: string]: boolean }>({}); From 7bde29cd5709a3e003c0f309b7fd399418c805c9 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:17:03 +0530 Subject: [PATCH 06/34] feat: workflow file type --- src/components/organisms/RightSidePanel.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 0941a26a..4454cf3c 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -4,6 +4,7 @@ import EditIcon from '@mui/icons-material/Edit'; import TextFieldsIcon from '@mui/icons-material/TextFields'; import DocumentScannerIcon from '@mui/icons-material/DocumentScanner'; import { SimpleBox } from "../atoms/Box"; +import { WhereWhatPair, WorkflowFile } from "maxun-core"; import Typography from "@mui/material/Typography"; import { useGlobalInfoStore } from "../../context/globalInfo"; import { PaginationType, useActionContext, LimitType } from '../../context/browserActions'; @@ -28,7 +29,7 @@ interface RightSidePanelProps { } export const RightSidePanel: React.FC = ({ onFinishCapture }) => { - const [workflow, setWorkflow] = useState(emptyWorkflow); + const [workflow, setWorkflow] = useState(emptyWorkflow); const [textLabels, setTextLabels] = useState<{ [id: string]: string }>({}); const [errors, setErrors] = useState<{ [id: string]: string }>({}); const [confirmedTextSteps, setConfirmedTextSteps] = useState<{ [id: string]: boolean }>({}); From 7dd3a9477a8f2180979899dea20f1380a97840aa Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:35:29 +0530 Subject: [PATCH 07/34] feat: fetch workflow --- src/components/organisms/RightSidePanel.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 4454cf3c..4eee9991 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -20,6 +20,17 @@ import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; import { emptyWorkflow } from "../../shared/constants"; +const fetchWorkflow = (id: string, callback: (response: WorkflowFile) => void) => { + getActiveWorkflow(id).then( + (response) => { + if (response) { + callback(response); + } else { + throw new Error("No workflow found"); + } + } + ).catch((error) => { console.log(error.message) }) +}; // TODO: // 1. Add description for each browser step From f51bced65a13807761ad93cb00847b1e4c19aca7 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:35:53 +0530 Subject: [PATCH 08/34] fix: missing workflow imports --- src/components/organisms/RightSidePanel.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 4eee9991..0405b9be 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -19,6 +19,8 @@ import FormLabel from '@mui/material/FormLabel'; import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; import { emptyWorkflow } from "../../shared/constants"; +import { getActiveWorkflow, getParamsOfActiveWorkflow } from "../../api/workflow"; + const fetchWorkflow = (id: string, callback: (response: WorkflowFile) => void) => { getActiveWorkflow(id).then( From 813d339fe5a765f442b1e11bbf1bdb6ddb2fd3c3 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:36:52 +0530 Subject: [PATCH 09/34] feat: workflow handler --- src/components/organisms/RightSidePanel.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 0405b9be..367d04a8 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -56,6 +56,11 @@ export const RightSidePanel: React.FC = ({ onFinishCapture const { browserSteps, updateBrowserTextStepLabel, deleteBrowserStep, addScreenshotStep, updateListTextFieldLabel, removeListTextField } = useBrowserSteps(); const { socket } = useSocketStore(); + const workflowHandler = useCallback((data: WorkflowFile) => { + setWorkflow(data); + setRecordingLength(data.workflow.length); + }, [workflow]) + const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { // Prevent editing if the field is confirmed From cd3880e58e955af1d70c443fe315f42ca76ac821 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:38:41 +0530 Subject: [PATCH 10/34] fix: recoridng length --- src/components/organisms/RightSidePanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 367d04a8..4f440830 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -58,7 +58,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture const workflowHandler = useCallback((data: WorkflowFile) => { setWorkflow(data); - setRecordingLength(data.workflow.length); + //setRecordingLength(data.workflow.length); }, [workflow]) const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { From abbec747c4a999cf648a3a960dbb9cb3e9191179 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:39:11 +0530 Subject: [PATCH 11/34] feat: fetch workflow every time id changes --- src/components/organisms/RightSidePanel.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 4f440830..d8e27d6c 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -61,6 +61,20 @@ export const RightSidePanel: React.FC = ({ onFinishCapture //setRecordingLength(data.workflow.length); }, [workflow]) + useEffect(() => { + // fetch the workflow every time the id changes + if (id) { + fetchWorkflow(id, workflowHandler); + } + // fetch workflow in 15min intervals + let interval = setInterval(() => { + if (id) { + fetchWorkflow(id, workflowHandler); + } + }, (1000 * 60 * 15)); + return () => clearInterval(interval) + }, [id]); + const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { // Prevent editing if the field is confirmed From 94cc105e7ba54a3895d2c583842449defa8634f4 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:39:36 +0530 Subject: [PATCH 12/34] chore: import useEffect --- src/components/organisms/RightSidePanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index d8e27d6c..7596691f 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -1,4 +1,4 @@ -import React, { useState, useCallback } from 'react'; +import React, { useState, useCallback, useEffect } from 'react'; import { Button, Paper, Box, TextField } from "@mui/material"; import EditIcon from '@mui/icons-material/Edit'; import TextFieldsIcon from '@mui/icons-material/TextFields'; From 87c408da4ee91065e8d5be2961c52bfd4d2d1691 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:41:50 +0530 Subject: [PATCH 13/34] feat: get id from socket store --- src/components/organisms/RightSidePanel.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 7596691f..796f1b6c 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -20,6 +20,7 @@ import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; import { emptyWorkflow } from "../../shared/constants"; import { getActiveWorkflow, getParamsOfActiveWorkflow } from "../../api/workflow"; +import { useSocketStore } from '../../context/socket'; const fetchWorkflow = (id: string, callback: (response: WorkflowFile) => void) => { @@ -54,7 +55,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture const { lastAction, notify } = useGlobalInfoStore(); const { getText, startGetText, stopGetText, getScreenshot, startGetScreenshot, stopGetScreenshot, getList, startGetList, stopGetList, startPaginationMode, stopPaginationMode, paginationType, updatePaginationType, limitType, customLimit, updateLimitType, updateCustomLimit, stopLimitMode, startLimitMode } = useActionContext(); const { browserSteps, updateBrowserTextStepLabel, deleteBrowserStep, addScreenshotStep, updateListTextFieldLabel, removeListTextField } = useBrowserSteps(); - const { socket } = useSocketStore(); + const { id, socket } = useSocketStore(); const workflowHandler = useCallback((data: WorkflowFile) => { setWorkflow(data); From ee37f2d25fcda522b40165094fe9a4405198919b Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:42:10 +0530 Subject: [PATCH 14/34] chore: -rm duplicate socket store imports --- src/components/organisms/RightSidePanel.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 796f1b6c..b1e1b222 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -20,8 +20,6 @@ import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; import { emptyWorkflow } from "../../shared/constants"; import { getActiveWorkflow, getParamsOfActiveWorkflow } from "../../api/workflow"; -import { useSocketStore } from '../../context/socket'; - const fetchWorkflow = (id: string, callback: (response: WorkflowFile) => void) => { getActiveWorkflow(id).then( From 398d0036cdfd74a74721c60129722cb0133e87c8 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 17:43:49 +0530 Subject: [PATCH 15/34] feat: socket for workflow --- src/components/organisms/RightSidePanel.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index b1e1b222..403b00de 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -74,6 +74,16 @@ export const RightSidePanel: React.FC = ({ onFinishCapture return () => clearInterval(interval) }, [id]); + useEffect(() => { + if (socket) { + socket.on("workflow", workflowHandler); + } + + return () => { + socket?.off('workflow', workflowHandler); + } + }, [socket, workflowHandler]); + const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { // Prevent editing if the field is confirmed From 8e07de54e7dba2f3e26e197591a53b79a2dedd5b Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:05:57 +0530 Subject: [PATCH 16/34] feat: move workflow socket --- src/components/organisms/RightSidePanel.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 403b00de..9f3e3bec 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -61,6 +61,9 @@ export const RightSidePanel: React.FC = ({ onFinishCapture }, [workflow]) useEffect(() => { + if (socket) { + socket.on("workflow", workflowHandler); + } // fetch the workflow every time the id changes if (id) { fetchWorkflow(id, workflowHandler); @@ -71,7 +74,10 @@ export const RightSidePanel: React.FC = ({ onFinishCapture fetchWorkflow(id, workflowHandler); } }, (1000 * 60 * 15)); - return () => clearInterval(interval) + return () => { + socket?.off("workflow", workflowHandler); + clearInterval(interval); + }; }, [id]); useEffect(() => { @@ -84,6 +90,13 @@ export const RightSidePanel: React.FC = ({ onFinishCapture } }, [socket, workflowHandler]); + const hasScrapeListAction = workflow.workflow.some(pair => + pair.what.some(action => action.action === "scrapeList") + ); + + console.log(`Has Scrape List Action?`, hasScrapeListAction); // true if any pair contains scrapeList action + + const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { // Prevent editing if the field is confirmed From 2e15c8eb44ef7bc47ba622ed0f2635b3c3325cf8 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:06:25 +0530 Subject: [PATCH 17/34] feat: pass socket & workflowHandler in dependency array --- src/components/organisms/RightSidePanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 9f3e3bec..39721ff7 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -78,7 +78,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture socket?.off("workflow", workflowHandler); clearInterval(interval); }; - }, [id]); + }, [id, socket, workflowHandler]); useEffect(() => { if (socket) { From e60e712b9682a1f8a06b0ff2b4d52244592496d9 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:06:54 +0530 Subject: [PATCH 18/34] feat: remove duplicate useEffect --- src/components/organisms/RightSidePanel.tsx | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 39721ff7..487c7e45 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -79,17 +79,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture clearInterval(interval); }; }, [id, socket, workflowHandler]); - - useEffect(() => { - if (socket) { - socket.on("workflow", workflowHandler); - } - - return () => { - socket?.off('workflow', workflowHandler); - } - }, [socket, workflowHandler]); - + const hasScrapeListAction = workflow.workflow.some(pair => pair.what.some(action => action.action === "scrapeList") ); From f4092f71c1525403161e58d979f0c70e6a6bd78a Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:07:24 +0530 Subject: [PATCH 19/34] chore:prettier --- src/components/organisms/RightSidePanel.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 487c7e45..9c16b005 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -77,15 +77,15 @@ export const RightSidePanel: React.FC = ({ onFinishCapture return () => { socket?.off("workflow", workflowHandler); clearInterval(interval); - }; + }; }, [id, socket, workflowHandler]); - - const hasScrapeListAction = workflow.workflow.some(pair => + + const hasScrapeListAction = workflow.workflow.some(pair => pair.what.some(action => action.action === "scrapeList") ); - + console.log(`Has Scrape List Action?`, hasScrapeListAction); // true if any pair contains scrapeList action - + const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { From d4f3ff4e9cdc69bcb76345475be3d7494408137d Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:12:51 +0530 Subject: [PATCH 20/34] chore: remove console.log --- src/components/organisms/RightSidePanel.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 9c16b005..a9807852 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -84,9 +84,6 @@ export const RightSidePanel: React.FC = ({ onFinishCapture pair.what.some(action => action.action === "scrapeList") ); - console.log(`Has Scrape List Action?`, hasScrapeListAction); // true if any pair contains scrapeList action - - const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { // Prevent editing if the field is confirmed From 312ab45c9f56ff44325c2c02511e5c51dd6b2aea Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:25:21 +0530 Subject: [PATCH 21/34] feat: if !hasScrapeListAction then allow Capture List --- src/components/organisms/RightSidePanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index a9807852..64b0e2c2 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -336,7 +336,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture - {!getText && !getScreenshot && !getList && } + {!getText && !getScreenshot && !getList && !hasScrapeListAction && } {getList && ( <> From 9cb7e1165bda080cf3ff5a38cc0279c90aded552 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:29:34 +0530 Subject: [PATCH 22/34] feat: has screenshot action --- src/components/organisms/RightSidePanel.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 64b0e2c2..b72e39bc 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -84,6 +84,10 @@ export const RightSidePanel: React.FC = ({ onFinishCapture pair.what.some(action => action.action === "scrapeList") ); + const hasScreenshotAction = workflow.workflow.some(pair => + pair.what.some(action => action.action === "screenshot") + ); + const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { // Prevent editing if the field is confirmed From bcaad30b4f8d451e850fe9b37e2e383454c6f3c6 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:30:09 +0530 Subject: [PATCH 23/34] feat: if !hasScreenshotAction then allow Capture Screenshot --- src/components/organisms/RightSidePanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index b72e39bc..1de4628d 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -408,7 +408,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture } - {!getText && !getScreenshot && !getList && } + {!getText && !getScreenshot && !getList && !hasScreenshotAction && } {getScreenshot && ( From aaeddb7a0331d6d1c9f8a476f23c9106f03d2d78 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:36:19 +0530 Subject: [PATCH 24/34] feat: has scrapeSchema action --- src/components/organisms/RightSidePanel.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 1de4628d..4a802388 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -88,6 +88,10 @@ export const RightSidePanel: React.FC = ({ onFinishCapture pair.what.some(action => action.action === "screenshot") ); + const hasScrapeSchemaAction = workflow.workflow.some(pair => + pair.what.some(action => action.action === "scrapeSchema") + ); + const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { // Prevent editing if the field is confirmed From 2b43a6acf2497f49da01159d72c1cb0b244547e9 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:39:59 +0530 Subject: [PATCH 25/34] chore: remove unused imports --- src/components/organisms/RightSidePanel.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 4a802388..d16889ca 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -4,7 +4,7 @@ import EditIcon from '@mui/icons-material/Edit'; import TextFieldsIcon from '@mui/icons-material/TextFields'; import DocumentScannerIcon from '@mui/icons-material/DocumentScanner'; import { SimpleBox } from "../atoms/Box"; -import { WhereWhatPair, WorkflowFile } from "maxun-core"; +import { WorkflowFile } from "maxun-core"; import Typography from "@mui/material/Typography"; import { useGlobalInfoStore } from "../../context/globalInfo"; import { PaginationType, useActionContext, LimitType } from '../../context/browserActions'; @@ -19,7 +19,7 @@ import FormLabel from '@mui/material/FormLabel'; import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; import { emptyWorkflow } from "../../shared/constants"; -import { getActiveWorkflow, getParamsOfActiveWorkflow } from "../../api/workflow"; +import { getActiveWorkflow } from "../../api/workflow"; const fetchWorkflow = (id: string, callback: (response: WorkflowFile) => void) => { getActiveWorkflow(id).then( From 50078eb276280ef17415a93a1930c11333921694 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:43:13 +0530 Subject: [PATCH 26/34] feat: states for Capture List, Screenshot & Text --- src/components/organisms/RightSidePanel.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index d16889ca..4d71f90c 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -48,6 +48,9 @@ export const RightSidePanel: React.FC = ({ onFinishCapture const [confirmedListTextFields, setConfirmedListTextFields] = useState<{ [listId: string]: { [fieldKey: string]: boolean } }>({}); const [showPaginationOptions, setShowPaginationOptions] = useState(false); const [showLimitOptions, setShowLimitOptions] = useState(false); + const [showCaptureList, setShowCaptureList] = useState(true); + const [showCaptureScreenshot, setShowCaptureScreenshot] = useState(true); + const [showCaptureText, setShowCaptureText] = useState(true); const [captureStage, setCaptureStage] = useState<'initial' | 'pagination' | 'limit' | 'complete'>('initial'); const { lastAction, notify } = useGlobalInfoStore(); From 3eb30beb11f41145e177ee22ac1c66165c57f6ee Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:52:53 +0530 Subject: [PATCH 27/34] feat: wrap pair action checkers in useEffect --- src/components/organisms/RightSidePanel.tsx | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 4d71f90c..0dfcf3bb 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -83,17 +83,19 @@ export const RightSidePanel: React.FC = ({ onFinishCapture }; }, [id, socket, workflowHandler]); - const hasScrapeListAction = workflow.workflow.some(pair => - pair.what.some(action => action.action === "scrapeList") - ); + useEffect(() => { + const hasScrapeListAction = workflow.workflow.some(pair => + pair.what.some(action => action.action === "scrapeList") + ); - const hasScreenshotAction = workflow.workflow.some(pair => - pair.what.some(action => action.action === "screenshot") - ); + const hasScreenshotAction = workflow.workflow.some(pair => + pair.what.some(action => action.action === "screenshot") + ); - const hasScrapeSchemaAction = workflow.workflow.some(pair => - pair.what.some(action => action.action === "scrapeSchema") - ); + const hasScrapeSchemaAction = workflow.workflow.some(pair => + pair.what.some(action => action.action === "scrapeSchema") + ); + }, [workflow]); const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { if (listId !== undefined && fieldKey !== undefined) { From 2d75e4d4107f4a1e94d0b0080b1b8e9c19da6181 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:53:17 +0530 Subject: [PATCH 28/34] feat: set visibility of actions --- src/components/organisms/RightSidePanel.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 0dfcf3bb..6bbadc5f 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -95,6 +95,10 @@ export const RightSidePanel: React.FC = ({ onFinishCapture const hasScrapeSchemaAction = workflow.workflow.some(pair => pair.what.some(action => action.action === "scrapeSchema") ); + + setShowCaptureList(!(hasScrapeListAction || hasScrapeSchemaAction || hasScreenshotAction)); + setShowCaptureScreenshot(!(hasScrapeListAction || hasScrapeSchemaAction || hasScreenshotAction)); + setShowCaptureText(!(hasScrapeListAction || hasScreenshotAction)); }, [workflow]); const handleTextLabelChange = (id: number, label: string, listId?: number, fieldKey?: string) => { From 7a7ae8f00c294e9a2d57aa155ef9f2c988056f46 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 18:54:59 +0530 Subject: [PATCH 29/34] feat: use showCaptureList & showCaptureScreenshot --- src/components/organisms/RightSidePanel.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 6bbadc5f..4d3024fc 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -353,7 +353,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture - {!getText && !getScreenshot && !getList && !hasScrapeListAction && } + {!getText && !getScreenshot && !getList && !showCaptureList && } {getList && ( <> @@ -421,7 +421,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture } - {!getText && !getScreenshot && !getList && !hasScreenshotAction && } + {!getText && !getScreenshot && !getList && !showCaptureScreenshot && } {getScreenshot && ( From 86d065ac7a6c265bc97704ad145610085e3d1859 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 19:00:02 +0530 Subject: [PATCH 30/34] feat: use showCaptureText --- src/components/organisms/RightSidePanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 4d3024fc..28174576 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -412,7 +412,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture )} - {!getText && !getScreenshot && !getList && } + {!getText && !getScreenshot && !getList && !showCaptureText && } {getText && <> From 903ef5bd3d6cc60aa0eb7daceb2f33fcf0b6d6bb Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 19:12:40 +0530 Subject: [PATCH 31/34] feat: check if any pairs in workflow --- src/components/organisms/RightSidePanel.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 28174576..44a5a3be 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -84,6 +84,14 @@ export const RightSidePanel: React.FC = ({ onFinishCapture }, [id, socket, workflowHandler]); useEffect(() => { + const hasPairs = workflow.workflow.length > 0; + + if (!hasPairs) { + setShowCaptureList(true); + setShowCaptureScreenshot(true); + setShowCaptureText(true); + return; + } const hasScrapeListAction = workflow.workflow.some(pair => pair.what.some(action => action.action === "scrapeList") ); From 2a8cb6576842620e0757ac94f4969995d35fe8f6 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 19:12:55 +0530 Subject: [PATCH 32/34] chore: lint --- src/components/organisms/RightSidePanel.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 44a5a3be..28b8fc69 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -87,10 +87,10 @@ export const RightSidePanel: React.FC = ({ onFinishCapture const hasPairs = workflow.workflow.length > 0; if (!hasPairs) { - setShowCaptureList(true); - setShowCaptureScreenshot(true); - setShowCaptureText(true); - return; + setShowCaptureList(true); + setShowCaptureScreenshot(true); + setShowCaptureText(true); + return; } const hasScrapeListAction = workflow.workflow.some(pair => pair.what.some(action => action.action === "scrapeList") From 2491b3a7d7e6a7c39794f79a5db45ac224dee047 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 19:13:18 +0530 Subject: [PATCH 33/34] chore: spacing --- src/components/organisms/RightSidePanel.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 28b8fc69..329bcad7 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -92,6 +92,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture setShowCaptureText(true); return; } + const hasScrapeListAction = workflow.workflow.some(pair => pair.what.some(action => action.action === "scrapeList") ); From fbf5acf9c252c17596aac9e365a30f7b0478a898 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 8 Oct 2024 19:16:27 +0530 Subject: [PATCH 34/34] fix: remove ! --- src/components/organisms/RightSidePanel.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/organisms/RightSidePanel.tsx b/src/components/organisms/RightSidePanel.tsx index 329bcad7..b938dbb8 100644 --- a/src/components/organisms/RightSidePanel.tsx +++ b/src/components/organisms/RightSidePanel.tsx @@ -92,7 +92,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture setShowCaptureText(true); return; } - + const hasScrapeListAction = workflow.workflow.some(pair => pair.what.some(action => action.action === "scrapeList") ); @@ -362,7 +362,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture - {!getText && !getScreenshot && !getList && !showCaptureList && } + {!getText && !getScreenshot && !getList && showCaptureList && } {getList && ( <> @@ -421,7 +421,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture )} - {!getText && !getScreenshot && !getList && !showCaptureText && } + {!getText && !getScreenshot && !getList && showCaptureText && } {getText && <> @@ -430,7 +430,7 @@ export const RightSidePanel: React.FC = ({ onFinishCapture } - {!getText && !getScreenshot && !getList && !showCaptureScreenshot && } + {!getText && !getScreenshot && !getList && showCaptureScreenshot && } {getScreenshot && (