From d40d9c5e4743233dda87c91316029b730aa49be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Mon, 22 Apr 2024 17:54:21 +0200 Subject: [PATCH] adds first version of DictComponent --- frontend/src/components/DictComponent.tsx | 42 +++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 frontend/src/components/DictComponent.tsx diff --git a/frontend/src/components/DictComponent.tsx b/frontend/src/components/DictComponent.tsx new file mode 100644 index 0000000..4be26c5 --- /dev/null +++ b/frontend/src/components/DictComponent.tsx @@ -0,0 +1,42 @@ +import React, { useEffect, useRef } from 'react'; +import { DocStringComponent } from './DocStringComponent'; +import { SerializedValue, GenericComponent } from './GenericComponent'; +import { LevelName } from './NotificationsComponent'; + +type DictComponentProps = { + value: Record; + docString: string; + isInstantUpdate: boolean; + addNotification: (message: string, levelname?: LevelName) => void; + id: string; +}; + +export const DictComponent = React.memo((props: DictComponentProps) => { + const { value, docString, isInstantUpdate, addNotification, id } = props; + + const renderCount = useRef(0); + const valueArray = Object.values(value); + + useEffect(() => { + renderCount.current++; + }, [props]); + + return ( +
+ {process.env.NODE_ENV === 'development' && ( +
Render count: {renderCount.current}
+ )} + + {valueArray.map((item) => { + return ( + + ); + })} +
+ ); +});