diff --git a/src/Contexts/GroupTasksContext.js b/src/Contexts/GroupTasksContext.js
index 38176c9..20bffd7 100644
--- a/src/Contexts/GroupTasksContext.js
+++ b/src/Contexts/GroupTasksContext.js
@@ -1,4 +1,5 @@
import { createContext, useContext, useRef, useState } from "react";
+import { Form } from "antd";
const preview = {
categoryGroup: {},
@@ -10,6 +11,7 @@ const preview = {
previousParamCategory: null,
paginationPageRef: null,
selectInputs: {},
+ form: null,
};
const GroupTasksContext = createContext(preview);
@@ -32,6 +34,8 @@ export function GroupTasksProvider({ children }) {
// this is used for the inputs as there is no way to manipulate the select value via the DOM (like we do on the text inputs) as it is needed by the websocket
const [selectInputs, setSelectInputs] = useState({});
+ const [form] = Form.useForm();
+
return (
{children}
diff --git a/src/Handlers/WebSocketMessageHandler.js b/src/Handlers/WebSocketMessageHandler.js
index 61cf9f9..1e96823 100644
--- a/src/Handlers/WebSocketMessageHandler.js
+++ b/src/Handlers/WebSocketMessageHandler.js
@@ -294,13 +294,15 @@ export function handleWebSocketMessage(
// update input value
if (body.inputType === "text") {
+ groupTasksContext.form.setFieldValue(body.element, body.value);
+
// html based DOM manipulation
- const foundInput = document.getElementById(body.element);
+ /*const foundInput = document.getElementById(body.element);
if (foundInput) {
// this timeout is needed because the previous useState for the lockedByUserId takes some milliseconds to complete
- setTimeout(() => setNativeValue(foundInput, body.value), 50);
- }
+ // setTimeout(() => setNativeValue(foundInput, body.value), 50);
+ } */
} else if (body.inputType === "select" || body.inputType === "checkbox") {
groupTasksContext.setSelectInputs((prev) => {
const newInputs = { ...prev };
@@ -1106,7 +1108,11 @@ function setNativeValue(element, value) {
// React 16
let tracker = element._valueTracker;
if (tracker) {
+ console.log("tracker set value", value);
+ console.log(element);
tracker.setValue(lastValue);
+ } else {
+ console.log("tracker not set value");
}
element.dispatchEvent(event);
}
diff --git a/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js b/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
index 8e46905..a1a4e85 100644
--- a/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
+++ b/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
@@ -389,6 +389,8 @@ export default function GroupTasksViewModal({ isOpen }) {
groupTaskSteps.sort((a, b) => a.Step - b.Step);
+ if (groupTasksContext.categoryGroup.groups === undefined) return [];
+
groupTasksContext.categoryGroup.groups.forEach((group) => {
if (currentGroupTask.current.GroupId === group.id) {
groupTasks = group.tasks;
@@ -770,9 +772,9 @@ function InputRequiredHandler({
currentGroupTask,
groupTaskParameters,
groupTaskStepInputs,
- notificationApi,
step,
taskLockedByUserId,
+ notificationApi,
}) {
const { t } = useTranslation();
const groupTasksContext = useGroupTasksContext();
@@ -860,7 +862,236 @@ function InputRequiredHandler({
typingTimer.current = setTimeout(() => typingMessage(), 1000);
};
+ const getInitialFormValues = () => {
+ let initialValues = {};
+
+ groupTaskParameters.forEach((groupTaskParameter) => {
+ initialValues[
+ `${currentGroupTask.Id}-${step}-${groupTaskParameter.parameterName}`
+ ] = getDefaultValue(groupTaskParameter);
+ });
+
+ return initialValues;
+ };
+
return (
+
+ );
+
+ /*return (
- );
+ ); */
}
function GroupTaskStepLogHandler({ currentGroupTaskId, log, files }) {
diff --git a/src/Pages/GroupTasks/Overview/index.js b/src/Pages/GroupTasks/Overview/index.js
index a1380e6..06ac8b1 100644
--- a/src/Pages/GroupTasks/Overview/index.js
+++ b/src/Pages/GroupTasks/Overview/index.js
@@ -181,11 +181,19 @@ export default function GroupTasks({ isGroupTasksViewModalOpen }) {
);
}
-export function MyFormItem({ children, t, style, labelDisplayName, isGlobal }) {
+export function MyFormItem({
+ children,
+ t,
+ style,
+ labelDisplayName,
+ isGlobal,
+ name,
+}) {
return (
{
*/
const root = ReactDOM.createRoot(document.getElementById("root"));
+
root.render(
- }>
+ }>
-
+
);
// If you want to start measuring performance in your app, pass a function