import React, { useEffect } from "react"; import { InputGroup, Form, Row, Col } from "react-bootstrap"; import { DocStringComponent } from "./DocStringComponent"; import { LevelName } from "./NotificationsComponent"; import { SerializedObject, SerializedEnum } from "../types/SerializedObject"; import { propsAreEqual } from "../utils/propsAreEqual"; import useRenderCount from "../hooks/useRenderCount"; interface EnumComponentProps extends SerializedEnum { addNotification: (message: string, levelname?: LevelName) => void; displayName: string; id: string; changeCallback: (value: SerializedObject, callback?: (ack: unknown) => void) => void; } export const EnumComponent = React.memo((props: EnumComponentProps) => { const { addNotification, displayName, id, value, full_access_path: fullAccessPath, enum: enumDict, doc: docString, readonly: readOnly, changeCallback, } = props; const renderCount = useRenderCount(); useEffect(() => { addNotification(`${fullAccessPath} changed to ${value}.`); }, [value]); return (