From 933112b5c9911b337977f358bb56aa1d3cee5762 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 15 Jun 2023 14:07:14 +0200 Subject: [PATCH] auto scroll to next step --- package-lock.json | 15 ++++++-- package.json | 1 + src/Components/PageContent/index.js | 2 +- src/Pages/GroupTasks/GroupTasksViewModal.js | 42 ++++++++++++--------- src/utils.js | 14 +++++++ 5 files changed, 52 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index c771ce1..1644480 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "react-router-dom": "^6.10.0", "react-scripts": "5.0.1", "react-stl-viewer": "^2.2.5", + "uuid": "^9.0.0", "web-vitals": "^2.1.4" } }, @@ -16455,6 +16456,14 @@ "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": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -17649,9 +17658,9 @@ } }, "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==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { "uuid": "dist/bin/uuid" } diff --git a/package.json b/package.json index 3f655be..08d52ff 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "react-router-dom": "^6.10.0", "react-scripts": "5.0.1", "react-stl-viewer": "^2.2.5", + "uuid": "^9.0.0", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/src/Components/PageContent/index.js b/src/Components/PageContent/index.js index fdafff8..b65392b 100644 --- a/src/Components/PageContent/index.js +++ b/src/Components/PageContent/index.js @@ -1,4 +1,4 @@ -import { Content, Footer } from "antd/es/layout/layout"; +import { Content } from "antd/es/layout/layout"; import AppRoutes from "../AppRoutes"; function PageContent() { diff --git a/src/Pages/GroupTasks/GroupTasksViewModal.js b/src/Pages/GroupTasks/GroupTasksViewModal.js index 541b306..43ccd64 100644 --- a/src/Pages/GroupTasks/GroupTasksViewModal.js +++ b/src/Pages/GroupTasks/GroupTasksViewModal.js @@ -375,26 +375,32 @@ export default function GroupTasksViewModal({ isOpen }) { description={ groupTaskSteps[index].Status === Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED ? ( - +
+ +
) : ( groupTaskSteps[index].Log.length > 0 && ( - +
+ +
) ) } diff --git a/src/utils.js b/src/utils.js index 6928d1c..3055431 100644 --- a/src/utils.js +++ b/src/utils.js @@ -232,6 +232,8 @@ export function WebSocketProvider({ break; case ReceivedMessagesCommands.NewGroupTaskStep: setGroupTasksSteps((arr) => [...arr, body]); + + scrollToNextStep(body.GroupTasksId, body.Step); break; case ReceivedMessagesCommands.UpdateGroupTaskStep: setGroupTasksSteps((arr) => { @@ -241,6 +243,8 @@ export function WebSocketProvider({ return newArr; }); + + scrollToNextStep(body.GroupTasksId, body.Step); break; case ReceivedMessagesCommands.UpdateGroupTask: 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 function setNativeValue(element, value) { let lastValue = element.value;