diff --git a/app/src/client/app/ModelsPage.tsx b/app/src/client/app/ModelsPage.tsx index 5143dbd..1ab7879 100644 --- a/app/src/client/app/ModelsPage.tsx +++ b/app/src/client/app/ModelsPage.tsx @@ -7,11 +7,13 @@ import Loader from '../admin/common/Loader'; import { getModels } from '../services/modelService'; import { ModelSchema, JsonSchema } from '../interfaces/models'; import ModelFormContainer from '../components/ModelFormContainer'; +import NotificationBox from '../components/NotificationBox'; const ModelsPage = () => { const [modelsSchema, setModelsSchema] = useState(null); const [initialModelSchema, setInitialModelSchema] = useState(null); const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState(null); const fetchData = async () => { setIsLoading(true); @@ -19,8 +21,8 @@ const ModelsPage = () => { const response = await getModels(); setModelsSchema(response); setInitialModelSchema(response.schemas[0].json_schema); - } catch (error) { - // handle error scenario + } catch (error: any) { + setError('Something went wrong. Please try again later.'); console.log(error); } setIsLoading(false); @@ -43,16 +45,19 @@ const ModelsPage = () => {
-
-
+
+
- {modelsSchema && ( - <> - - {initialModelSchema && } - - )} +
+ {modelsSchema && ( + <> + + {initialModelSchema && } + + )} + {error && setError(null)} message={error} />} +
diff --git a/app/src/client/components/DynamicFormBuilder.tsx b/app/src/client/components/DynamicFormBuilder.tsx index b782d6a..99e42c0 100644 --- a/app/src/client/components/DynamicFormBuilder.tsx +++ b/app/src/client/components/DynamicFormBuilder.tsx @@ -18,33 +18,37 @@ const DynamicFormBuilder: React.FC = ({ jsonSchema }) = }; return ( -
- {Object.entries(jsonSchema.properties).map(([key, property]) => ( -
- - {property.enum ? ( - handleChange(key, value)} - /> - ) : ( - handleChange(key, value)} - /> - )} -
- ))} - + + {Object.entries(jsonSchema.properties).map(([key, property]) => + property?.enum?.length === 1 ? null : ( +
+ + {property.enum ? ( + handleChange(key, value)} + /> + ) : ( + handleChange(key, value)} + /> + )} +
+ ) + )} +
+ +
); }; diff --git a/app/src/client/components/ModelFormContainer.tsx b/app/src/client/components/ModelFormContainer.tsx index d0d49e4..10131a2 100644 --- a/app/src/client/components/ModelFormContainer.tsx +++ b/app/src/client/components/ModelFormContainer.tsx @@ -10,7 +10,7 @@ interface ModelFormContainerProps { const ModelFormContainer: React.FC = ({ modelsSchema, onModelChange }) => { return (
-
+
onChange(e.target.value)} className='my-2 p-2 border rounded' id={id}> +