Files
parcer/src/components/robot/Recordings.tsx

195 lines
6.7 KiB
TypeScript
Raw Normal View History

2024-06-24 22:41:54 +05:30
import React, { useState } from 'react';
2025-01-09 20:01:43 +05:30
import { RecordingsTable } from "./RecordingsTable";
2024-06-24 22:41:54 +05:30
import { Grid } from "@mui/material";
2025-01-09 20:02:58 +05:30
import { RunSettings, RunSettingsModal } from "../run/RunSettings";
2025-01-09 20:04:02 +05:30
import { ScheduleSettings, ScheduleSettingsModal } from "./ScheduleSettings";
2025-01-09 19:59:52 +05:30
import { IntegrationSettings, IntegrationSettingsModal } from "../integration/IntegrationSettings";
2025-01-09 20:01:43 +05:30
import { RobotSettings, RobotSettingsModal } from "./RobotSettings";
import { RobotEditModal } from './RobotEdit';
import { RobotDuplicationModal } from './RobotDuplicate';
2024-06-24 22:41:54 +05:30
interface RecordingsProps {
handleEditRecording: (id: string, fileName: string) => void;
2024-06-24 22:41:54 +05:30
handleRunRecording: (settings: RunSettings) => void;
2024-09-12 22:18:10 +05:30
handleScheduleRecording: (settings: ScheduleSettings) => void;
2024-10-09 22:31:11 +05:30
setRecordingInfo: (id: string, name: string) => void;
2024-06-24 22:41:54 +05:30
}
2025-01-09 17:15:48 +05:30
export const Recordings = ({ handleEditRecording, handleRunRecording, setRecordingInfo, handleScheduleRecording }: RecordingsProps) => {
2024-06-24 22:41:54 +05:30
const [runSettingsAreOpen, setRunSettingsAreOpen] = useState(false);
2024-09-10 12:09:53 +05:30
const [scheduleSettingsAreOpen, setScheduleSettingsAreOpen] = useState(false);
2024-09-15 01:45:14 +05:30
const [integrateSettingsAreOpen, setIntegrateSettingsAreOpen] = useState(false);
const [robotSettingsAreOpen, setRobotSettingsAreOpen] = useState(false);
2024-11-17 00:33:23 +05:30
const [robotEditAreOpen, setRobotEditAreOpen] = useState(false);
2024-11-17 14:06:26 +05:30
const [robotDuplicateAreOpen, setRobotDuplicateAreOpen] = useState(false);
2024-06-24 22:41:54 +05:30
const [params, setParams] = useState<string[]>([]);
2024-10-09 22:31:11 +05:30
const [selectedRecordingId, setSelectedRecordingId] = useState<string>('');
2025-01-09 17:15:48 +05:30
const handleIntegrateRecording = (id: string, settings: IntegrationSettings) => { };
const handleSettingsRecording = (id: string, settings: RobotSettings) => { };
const handleEditRobot = (id: string, settings: RobotSettings) => { };
const handleDuplicateRobot = (id: string, settings: RobotSettings) => { };
2024-06-24 22:41:54 +05:30
2024-10-09 22:31:11 +05:30
const handleSettingsAndIntegrate = (id: string, name: string, params: string[]) => {
2024-09-17 17:16:15 +05:30
if (params.length === 0) {
setIntegrateSettingsAreOpen(true);
2024-10-09 22:31:11 +05:30
setRecordingInfo(id, name);
setSelectedRecordingId(id);
2024-09-17 17:16:15 +05:30
} else {
setParams(params);
setIntegrateSettingsAreOpen(true);
2024-10-09 22:31:11 +05:30
setRecordingInfo(id, name);
setSelectedRecordingId(id);
2024-09-17 17:16:15 +05:30
}
}
2024-10-09 22:31:11 +05:30
const handleSettingsAndRun = (id: string, name: string, params: string[]) => {
2024-06-24 22:41:54 +05:30
if (params.length === 0) {
setRunSettingsAreOpen(true);
2024-10-09 22:31:11 +05:30
setRecordingInfo(id, name);
setSelectedRecordingId(id);
2024-06-24 22:41:54 +05:30
} else {
setParams(params);
setRunSettingsAreOpen(true);
2024-10-09 22:31:11 +05:30
setRecordingInfo(id, name);
setSelectedRecordingId(id);
2024-06-24 22:41:54 +05:30
}
}
2024-10-09 22:31:11 +05:30
const handleSettingsAndSchedule = (id: string, name: string, params: string[]) => {
2024-09-10 12:09:53 +05:30
if (params.length === 0) {
setScheduleSettingsAreOpen(true);
2024-10-09 22:31:11 +05:30
setRecordingInfo(id, name);
setSelectedRecordingId(id);
2024-09-10 12:09:53 +05:30
} else {
setParams(params);
setScheduleSettingsAreOpen(true);
2024-10-09 22:31:11 +05:30
setRecordingInfo(id, name);
setSelectedRecordingId(id);
2024-09-10 12:09:53 +05:30
}
}
const handleRobotSettings = (id: string, name: string, params: string[]) => {
if (params.length === 0) {
setRobotSettingsAreOpen(true);
setRecordingInfo(id, name);
setSelectedRecordingId(id);
} else {
setParams(params);
setRobotSettingsAreOpen(true);
setRecordingInfo(id, name);
setSelectedRecordingId(id);
}
}
2024-11-17 00:33:23 +05:30
const handleEditRobotOption = (id: string, name: string, params: string[]) => {
if (params.length === 0) {
setRobotEditAreOpen(true);
setRecordingInfo(id, name);
setSelectedRecordingId(id);
} else {
setParams(params);
setRobotEditAreOpen(true);
setRecordingInfo(id, name);
setSelectedRecordingId(id);
}
}
2024-11-17 14:06:26 +05:30
const handleDuplicateRobotOption = (id: string, name: string, params: string[]) => {
if (params.length === 0) {
setRobotDuplicateAreOpen(true);
setRecordingInfo(id, name);
setSelectedRecordingId(id);
} else {
setParams(params);
setRobotDuplicateAreOpen(true);
setRecordingInfo(id, name);
setSelectedRecordingId(id);
}
}
2024-06-24 22:41:54 +05:30
const handleClose = () => {
setParams([]);
setRunSettingsAreOpen(false);
2024-10-09 22:31:11 +05:30
setRecordingInfo('', '');
setSelectedRecordingId('');
2024-06-24 22:41:54 +05:30
}
2024-09-17 17:28:23 +05:30
const handleIntegrateClose = () => {
setParams([]);
setIntegrateSettingsAreOpen(false);
2024-10-09 22:31:11 +05:30
setRecordingInfo('', '');
setSelectedRecordingId('');
2024-09-17 17:28:23 +05:30
}
2024-09-10 12:09:53 +05:30
const handleScheduleClose = () => {
setParams([]);
setScheduleSettingsAreOpen(false);
2024-10-09 22:31:11 +05:30
setRecordingInfo('', '');
setSelectedRecordingId('');
2024-09-10 12:09:53 +05:30
}
const handleRobotSettingsClose = () => {
setParams([]);
setRobotSettingsAreOpen(false);
setRecordingInfo('', '');
setSelectedRecordingId('');
}
2024-11-17 00:33:23 +05:30
const handleRobotEditClose = () => {
setParams([]);
setRobotEditAreOpen(false);
setRecordingInfo('', '');
setSelectedRecordingId('');
}
2024-11-17 14:06:26 +05:30
const handleRobotDuplicateClose = () => {
setParams([]);
setRobotDuplicateAreOpen(false);
setRecordingInfo('', '');
setSelectedRecordingId('');
}
2024-06-24 22:41:54 +05:30
return (
<React.Fragment>
2024-09-10 03:11:49 +05:30
<RunSettingsModal isOpen={runSettingsAreOpen}
handleClose={handleClose}
handleStart={(settings) => handleRunRecording(settings)}
isTask={params.length !== 0}
params={params}
/>
2024-09-10 12:11:52 +05:30
<ScheduleSettingsModal isOpen={scheduleSettingsAreOpen}
2024-09-10 12:09:53 +05:30
handleClose={handleScheduleClose}
handleStart={(settings) => handleScheduleRecording(settings)}
/>
2024-09-17 17:28:23 +05:30
<IntegrationSettingsModal isOpen={integrateSettingsAreOpen}
handleClose={handleIntegrateClose}
2024-10-17 00:32:16 +05:30
handleStart={(settings) => handleIntegrateRecording(selectedRecordingId, settings)}
2024-09-17 17:28:23 +05:30
/>
<RobotSettingsModal isOpen={robotSettingsAreOpen}
handleClose={handleRobotSettingsClose}
handleStart={(settings) => handleSettingsRecording(selectedRecordingId, settings)}
/>
2025-01-09 17:15:48 +05:30
<RobotEditModal isOpen={robotEditAreOpen}
2024-11-17 00:33:23 +05:30
handleClose={handleRobotEditClose}
2025-01-09 17:15:48 +05:30
handleStart={(settings) => handleEditRobot(selectedRecordingId, settings)}
2024-11-17 00:33:23 +05:30
/>
2024-11-17 14:06:26 +05:30
<RobotDuplicationModal isOpen={robotDuplicateAreOpen}
handleClose={handleRobotDuplicateClose}
handleStart={(settings) => handleDuplicateRobot(selectedRecordingId, settings)}
/>
2024-09-10 03:11:49 +05:30
<Grid container direction="column" sx={{ padding: '30px' }}>
<Grid item xs>
<RecordingsTable
handleEditRecording={handleEditRecording}
handleRunRecording={handleSettingsAndRun}
2024-09-10 12:09:53 +05:30
handleScheduleRecording={handleSettingsAndSchedule}
2024-09-17 17:25:15 +05:30
handleIntegrateRecording={handleSettingsAndIntegrate}
handleSettingsRecording={handleRobotSettings}
2024-11-17 00:33:23 +05:30
handleEditRobot={handleEditRobotOption}
2024-11-17 14:06:26 +05:30
handleDuplicateRobot={handleDuplicateRobotOption}
2024-09-10 03:11:49 +05:30
/>
</Grid>
2024-06-24 22:41:54 +05:30
</Grid>
</React.Fragment>
);
2024-10-09 22:31:11 +05:30
}