auto scroll to next step
parent
0056fb9250
commit
933112b5c9
|
@ -20,6 +20,7 @@
|
||||||
"react-router-dom": "^6.10.0",
|
"react-router-dom": "^6.10.0",
|
||||||
"react-scripts": "5.0.1",
|
"react-scripts": "5.0.1",
|
||||||
"react-stl-viewer": "^2.2.5",
|
"react-stl-viewer": "^2.2.5",
|
||||||
|
"uuid": "^9.0.0",
|
||||||
"web-vitals": "^2.1.4"
|
"web-vitals": "^2.1.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -16455,6 +16456,14 @@
|
||||||
"websocket-driver": "^0.7.4"
|
"websocket-driver": "^0.7.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/sockjs/node_modules/uuid": {
|
||||||
|
"version": "8.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||||
|
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
||||||
|
"bin": {
|
||||||
|
"uuid": "dist/bin/uuid"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/source-list-map": {
|
"node_modules/source-list-map": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
|
||||||
|
@ -17649,9 +17658,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/uuid": {
|
"node_modules/uuid": {
|
||||||
"version": "8.3.2",
|
"version": "9.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
|
||||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
|
||||||
"bin": {
|
"bin": {
|
||||||
"uuid": "dist/bin/uuid"
|
"uuid": "dist/bin/uuid"
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
"react-router-dom": "^6.10.0",
|
"react-router-dom": "^6.10.0",
|
||||||
"react-scripts": "5.0.1",
|
"react-scripts": "5.0.1",
|
||||||
"react-stl-viewer": "^2.2.5",
|
"react-stl-viewer": "^2.2.5",
|
||||||
|
"uuid": "^9.0.0",
|
||||||
"web-vitals": "^2.1.4"
|
"web-vitals": "^2.1.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Content, Footer } from "antd/es/layout/layout";
|
import { Content } from "antd/es/layout/layout";
|
||||||
import AppRoutes from "../AppRoutes";
|
import AppRoutes from "../AppRoutes";
|
||||||
|
|
||||||
function PageContent() {
|
function PageContent() {
|
||||||
|
|
|
@ -375,26 +375,32 @@ export default function GroupTasksViewModal({ isOpen }) {
|
||||||
description={
|
description={
|
||||||
groupTaskSteps[index].Status ===
|
groupTaskSteps[index].Status ===
|
||||||
Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED ? (
|
Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED ? (
|
||||||
<InputRequiredHandler
|
<div id={`${currentGroupTask.Id}-scroll-${index}`}>
|
||||||
webSocketContext={webSocketContext}
|
<InputRequiredHandler
|
||||||
currentGroupTask={currentGroupTask}
|
webSocketContext={webSocketContext}
|
||||||
groupTaskParameters={groupTask.parameters}
|
currentGroupTask={currentGroupTask}
|
||||||
groupTaskStepInputs={
|
groupTaskParameters={groupTask.parameters}
|
||||||
groupTaskSteps[index] !== undefined &&
|
groupTaskStepInputs={
|
||||||
groupTaskSteps[index].Inputs !== "" &&
|
groupTaskSteps[index] !== undefined &&
|
||||||
groupTaskSteps[index].Inputs
|
groupTaskSteps[index].Inputs !== "" &&
|
||||||
}
|
groupTaskSteps[index].Inputs
|
||||||
notificationApi={notificationApi}
|
}
|
||||||
step={index + 1}
|
notificationApi={notificationApi}
|
||||||
taskLockedByUserId={groupTaskSteps[index].LockedByUserId}
|
step={index + 1}
|
||||||
/>
|
taskLockedByUserId={
|
||||||
|
groupTaskSteps[index].LockedByUserId
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
) : (
|
) : (
|
||||||
groupTaskSteps[index].Log.length > 0 && (
|
groupTaskSteps[index].Log.length > 0 && (
|
||||||
<GroupTaskStepLogHandler
|
<div id={`${currentGroupTask.Id}-scroll-${index}`}>
|
||||||
currentGroupTaskId={currentGroupTask.Id}
|
<GroupTaskStepLogHandler
|
||||||
log={groupTaskSteps[index].Log}
|
currentGroupTaskId={currentGroupTask.Id}
|
||||||
files={groupTaskSteps[index].Files}
|
log={groupTaskSteps[index].Log}
|
||||||
/>
|
files={groupTaskSteps[index].Files}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
14
src/utils.js
14
src/utils.js
|
@ -232,6 +232,8 @@ export function WebSocketProvider({
|
||||||
break;
|
break;
|
||||||
case ReceivedMessagesCommands.NewGroupTaskStep:
|
case ReceivedMessagesCommands.NewGroupTaskStep:
|
||||||
setGroupTasksSteps((arr) => [...arr, body]);
|
setGroupTasksSteps((arr) => [...arr, body]);
|
||||||
|
|
||||||
|
scrollToNextStep(body.GroupTasksId, body.Step);
|
||||||
break;
|
break;
|
||||||
case ReceivedMessagesCommands.UpdateGroupTaskStep:
|
case ReceivedMessagesCommands.UpdateGroupTaskStep:
|
||||||
setGroupTasksSteps((arr) => {
|
setGroupTasksSteps((arr) => {
|
||||||
|
@ -241,6 +243,8 @@ export function WebSocketProvider({
|
||||||
|
|
||||||
return newArr;
|
return newArr;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
scrollToNextStep(body.GroupTasksId, body.Step);
|
||||||
break;
|
break;
|
||||||
case ReceivedMessagesCommands.UpdateGroupTask:
|
case ReceivedMessagesCommands.UpdateGroupTask:
|
||||||
setGroupTasks((arr) => {
|
setGroupTasks((arr) => {
|
||||||
|
@ -578,6 +582,16 @@ export function WebSocketProvider({
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function scrollToNextStep(groupTaskId, step) {
|
||||||
|
setTimeout(
|
||||||
|
() =>
|
||||||
|
document
|
||||||
|
.getElementById(`${groupTaskId}-scroll-${step - 1}`)
|
||||||
|
?.scrollIntoView({ behavior: "smooth" }),
|
||||||
|
200
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// https://stackoverflow.com/a/52486921
|
// https://stackoverflow.com/a/52486921
|
||||||
function setNativeValue(element, value) {
|
function setNativeValue(element, value) {
|
||||||
let lastValue = element.value;
|
let lastValue = element.value;
|
||||||
|
|
Loading…
Reference in New Issue