From a5a72365ded184270ad13b982648563f406320cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Simon=20K=C3=BCnzel?= <simonk@fsmpi.rwth-aachen.de>
Date: Thu, 17 Apr 2025 01:54:35 +0200
Subject: [PATCH] Fix #65 and OM Creation Exception

---
 src/videoag/object_management/OMConfigComponent.tsx     | 2 +-
 src/videoag/object_management/ViewPermissionsEditor.tsx | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/videoag/object_management/OMConfigComponent.tsx b/src/videoag/object_management/OMConfigComponent.tsx
index ff9f295..188cfcc 100644
--- a/src/videoag/object_management/OMConfigComponent.tsx
+++ b/src/videoag/object_management/OMConfigComponent.tsx
@@ -778,7 +778,7 @@ export function OMCreate({
                     const values: { [id: string]: [any, boolean] } = {};
                     for (let field_desc of config.fields) {
                         values[field_desc.id] = [
-                            field_desc.default_value,
+                            field_desc.has_default_value ? field_desc.default_value : undefined,
                             field_desc.has_default_value,
                         ];
                     }
diff --git a/src/videoag/object_management/ViewPermissionsEditor.tsx b/src/videoag/object_management/ViewPermissionsEditor.tsx
index f6d539a..c1da6eb 100644
--- a/src/videoag/object_management/ViewPermissionsEditor.tsx
+++ b/src/videoag/object_management/ViewPermissionsEditor.tsx
@@ -68,14 +68,14 @@ export default function ViewPermissionsEditor({
         passwords?: null | { [key: string]: string };
     };
     const { language } = useLanguage();
-    const knownValue = useRef<view_permissions_with_invalid>(undefined);
+    const knownValue = useRef<view_permissions_with_invalid | "unset">("unset");
     const [allDataValue, setAllDataValue] = useState<view_permissions_with_invalid>({
         type: "inherit",
     });
     const [passwordsArray, setPasswordsArray] = useState<[string, string][]>([]);
 
     useEffect(() => {
-        if (deepEquals(value, knownValue.current)) return;
+        if (knownValue.current != "unset" && deepEquals(value, knownValue.current)) return;
         // Value was not changed by us, update internal state
         const effectiveValue = value ?? { type: "inherit" };
         const passwordsMap = effectiveValue.passwords ?? {};
-- 
GitLab