@solidstarters/solid-core-ui 1.1.17 → 1.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -1
  2. package/dist/components/common/SingleSelectAutoCompleteField.js +3 -1
  3. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -1
  4. package/dist/components/core/common/SolidGlobalSearchElement.js +3 -3
  5. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  6. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  7. package/dist/components/core/form/fields/SolidBooleanField.js +9 -7
  8. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  9. package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
  10. package/dist/components/core/form/fields/SolidDateField.js +7 -5
  11. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  12. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  13. package/dist/components/core/form/fields/SolidDateTimeField.js +7 -5
  14. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  15. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  16. package/dist/components/core/form/fields/SolidDecimalField.js +9 -7
  17. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  18. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  19. package/dist/components/core/form/fields/SolidIntegerField.js +9 -7
  20. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  21. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  22. package/dist/components/core/form/fields/SolidJsonField.js +6 -4
  23. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  24. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  25. package/dist/components/core/form/fields/SolidLongTextField.js +8 -6
  26. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  27. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  28. package/dist/components/core/form/fields/SolidMediaMultipleField.js +18 -16
  29. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  30. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  31. package/dist/components/core/form/fields/SolidMediaSingleField.js +19 -17
  32. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  33. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  34. package/dist/components/core/form/fields/SolidRichTextField.js +9 -7
  35. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  36. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  37. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +10 -8
  38. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  39. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  40. package/dist/components/core/form/fields/SolidSelectionStaticField.js +10 -8
  41. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  42. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  43. package/dist/components/core/form/fields/SolidShortTextField.js +8 -6
  44. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  45. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  46. package/dist/components/core/form/fields/SolidTimeField.js +7 -5
  47. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  48. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  49. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +15 -11
  50. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  51. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts +1 -0
  52. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  53. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +66 -7
  54. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  55. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  56. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -10
  57. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  58. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  59. package/dist/components/core/list/SolidListView.js +42 -34
  60. package/dist/components/core/list/SolidListView.js.map +1 -1
  61. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  62. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +9 -2
  63. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  64. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  65. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +10 -3
  66. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  67. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  68. package/dist/components/core/model/FieldMetaData.js +54 -1
  69. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  70. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
  71. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  72. package/dist/components/core/model/FieldMetaDataForm.js +118 -51
  73. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  74. package/dist/components/core/module/CreateModule.js +2 -1
  75. package/dist/components/core/module/CreateModule.js.map +1 -1
  76. package/dist/redux/api/modelApi.d.ts +2 -1
  77. package/dist/redux/api/modelApi.d.ts.map +1 -1
  78. package/dist/redux/api/modelApi.js +9 -2
  79. package/dist/redux/api/modelApi.js.map +1 -1
  80. package/package.json +1 -1
  81. package/src/components/common/SingleSelectAutoCompleteField.tsx +3 -1
  82. package/src/components/core/common/SolidGlobalSearchElement.tsx +3 -3
  83. package/src/components/core/form/fields/SolidBooleanField.tsx +6 -3
  84. package/src/components/core/form/fields/SolidDateField.tsx +6 -3
  85. package/src/components/core/form/fields/SolidDateTimeField.tsx +6 -3
  86. package/src/components/core/form/fields/SolidDecimalField.tsx +6 -3
  87. package/src/components/core/form/fields/SolidIntegerField.tsx +6 -3
  88. package/src/components/core/form/fields/SolidJsonField.tsx +6 -3
  89. package/src/components/core/form/fields/SolidLongTextField.tsx +6 -3
  90. package/src/components/core/form/fields/SolidMediaMultipleField.tsx +6 -3
  91. package/src/components/core/form/fields/SolidMediaSingleField.tsx +6 -3
  92. package/src/components/core/form/fields/SolidRichTextField.tsx +7 -3
  93. package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +6 -3
  94. package/src/components/core/form/fields/SolidSelectionStaticField.tsx +6 -3
  95. package/src/components/core/form/fields/SolidShortTextField.tsx +8 -4
  96. package/src/components/core/form/fields/SolidTimeField.tsx +7 -4
  97. package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +29 -25
  98. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +92 -2
  99. package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +5 -1
  100. package/src/components/core/list/SolidListView.tsx +12 -3
  101. package/src/components/core/list/columns/SolidMediaMultipleColumn.tsx +18 -0
  102. package/src/components/core/list/columns/SolidMediaSingleColumn.tsx +21 -0
  103. package/src/components/core/model/FieldMetaData.tsx +25 -1
  104. package/src/components/core/model/FieldMetaDataForm.tsx +108 -18
  105. package/src/components/core/module/CreateModule.tsx +1 -1
  106. package/src/redux/api/modelApi.ts +9 -2
@@ -8,16 +8,37 @@ import { FilterMatchMode } from 'primereact/api';
8
8
 
9
9
  const SolidMediaSingleColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
10
10
  // const filterable = column.attrs.filterable;
11
+
11
12
  const filterable = false;
12
13
  const showFilterOperator = false;
13
14
  const columnDataType = undefined;
14
15
  const header = column.attrs.label ?? fieldMetadata.displayName;
15
16
 
17
+ const imageBodyTemplate = (product: any) => {
18
+ if (!product?._media?.[fieldMetadata.name]) return null;
19
+
20
+ const imageUrls = product._media[fieldMetadata.name].map((i: any) => i._full_url);
21
+
22
+ return (
23
+ <>
24
+ {imageUrls.map((url: string, index: number) => (
25
+ <img
26
+ key={index}
27
+ src={url}
28
+ alt={`product-image-${index}`}
29
+ className="w-6rem shadow-2 border-round"
30
+ />
31
+ ))}
32
+ </>
33
+ );
34
+ };
35
+
16
36
  return (
17
37
  <Column
18
38
  key={fieldMetadata.name}
19
39
  field={fieldMetadata.name}
20
40
  header={header}
41
+ body={imageBodyTemplate}
21
42
  // className="text-sm"
22
43
  sortable={column.attrs.sortable}
23
44
  // filter={filterable}
@@ -74,6 +74,30 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
74
74
  )
75
75
  };
76
76
 
77
+ const showToaster = async (message: any, severity: any) => {
78
+ const errorMessages = Object.values(message);
79
+ if (errorMessages.length > 0) {
80
+ toast?.current?.show({
81
+ severity: severity,
82
+ summary: "Can you send me the report?",
83
+ life: 3000,
84
+ //@ts-ignore
85
+ content: (props) => (
86
+ <div
87
+ className="flex flex-column align-items-left"
88
+ style={{ flex: "1" }}
89
+ >
90
+ {errorMessages.map((m, index) => (
91
+ <div className="flex align-items-center gap-2" key={index}>
92
+ <span className="font-bold text-900">{String(m)}</span>
93
+ </div>
94
+ ))}
95
+ </div>
96
+ ),
97
+ });
98
+ }
99
+ };
100
+
77
101
 
78
102
 
79
103
  return (
@@ -132,7 +156,7 @@ const FieldMetaData = ({ modelMetaData, fieldMetaData, setFieldMetaData, deleteM
132
156
  }}
133
157
  showHeader={false}
134
158
  >
135
- <FieldMetaDataForm modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp}></FieldMetaDataForm>
159
+ <FieldMetaDataForm modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>
136
160
  </Dialog>
137
161
  <Dialog
138
162
  visible={isRequiredPopUp}
@@ -4,7 +4,7 @@ import { SingleSelectAutoCompleteField } from "@/components/common/SingleSelectA
4
4
  import { getSingularAndPlural } from "@/helpers/helpers";
5
5
  import { useGetFieldDefaultMetaDataQuery } from "@/redux/api/fieldApi";
6
6
  import { useLazyGetMediaStorageProvidersQuery } from "@/redux/api/mediaStorageProviderApi";
7
- import { useLazyGetModelsQuery } from "@/redux/api/modelApi";
7
+ import { useLazyGetModelsQuery, useUpdateUserKeyMutation } from "@/redux/api/modelApi";
8
8
  import { useLazyGetmodulesQuery } from "@/redux/api/moduleApi";
9
9
  import { useFormik } from "formik";
10
10
  import { capitalize } from "lodash";
@@ -506,7 +506,7 @@ const createValidationSchema = (currentFields: any, selectedType: any, allFields
506
506
  return Yup.object(schema);
507
507
  };
508
508
 
509
- const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, allFields, deleteModelFunction, setVisiblePopup, params, setIsRequiredPopUp }: any) => {
509
+ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, allFields, deleteModelFunction, setVisiblePopup, params, setIsRequiredPopUp, showToaster }: any) => {
510
510
 
511
511
  const booleanOptions = ["false", "true"];
512
512
  const [isBackPopupVisible, setIsBackPopupVisible] = useState(false);
@@ -523,6 +523,10 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
523
523
  const [triggerGetMediaStorageProvider, { data: MediaStorageProviderData, isFetching: isMediaStorageProviderFetching, error: MediaStorageProviderError }] = useLazyGetMediaStorageProvidersQuery();
524
524
  const [triggerGetModules, { data: moduleData, isFetching: isModuleFetching, error: moduleError }] = useLazyGetmodulesQuery();
525
525
  const [triggerGetModels, { data: modelData, isFetching: ismodelFetching, error: modelError }] = useLazyGetModelsQuery();
526
+ const [
527
+ updateUserKey,
528
+ { isLoading: isUpdateUserKeyLoading, isSuccess: isUpdateUserKeySuccess, isError: isUpdateUserKeyError, error: UpdateUserKeyError, data: newModel },
529
+ ] = useUpdateUserKeyMutation();
526
530
 
527
531
 
528
532
  const [markdownText, setMarkdownText] = useState<string>();
@@ -543,7 +547,8 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
543
547
  const [ormTypeOptions, setOrmTypeOptions] = useState([]);
544
548
  const [selectedOrmType, setSelectedOrmType] = useState<any>(fieldMetaData?.ormType);
545
549
 
546
-
550
+ const [isUserKeyFields, setUserKeyFields] = useState(false);
551
+ const [userKeyData, setUserKeyData] = useState([]);
547
552
 
548
553
  const [
549
554
  filteredExternalIdProvider,
@@ -734,7 +739,9 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
734
739
  }
735
740
  };
736
741
 
737
-
742
+ const searchUserKeyField = () => {
743
+ return userKeyData;
744
+ }
738
745
 
739
746
  const searchComputedFieldValueType = async (event: any) => {
740
747
  const query = event.query;
@@ -904,7 +911,8 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
904
911
  isUserKey: fieldMetaData ? fieldMetaData?.isUserKey : false,
905
912
  relationJoinColumnName: fieldMetaData ? fieldMetaData?.relationJoinColumnName : null,
906
913
  joinColumnName: fieldMetaData ? fieldMetaData?.joinColumnName : null,
907
- relationJoinTableName: fieldMetaData ? fieldMetaData?.relationJoinTableName : null
914
+ relationJoinTableName: fieldMetaData ? fieldMetaData?.relationJoinTableName : null,
915
+ userKey: fieldMetaData ? fieldMetaData?.userKey : null
908
916
  };
909
917
 
910
918
 
@@ -914,7 +922,6 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
914
922
  enableReinitialize: true,
915
923
  onSubmit: async (values) => {
916
924
  try {
917
-
918
925
  setFieldMetaData((prevItems: any) => {
919
926
  const newFieldData = { ...values, isSystem: values.isSystem == true ? true : '' }
920
927
  const formtatedFieldPayload = fieldBasedPayloadFormating(newFieldData, currentFields, fieldMetaData);
@@ -931,6 +938,13 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
931
938
  return [...prevItems, formtatedFieldPayload]
932
939
  }
933
940
  });
941
+ if (values.userKey) {
942
+ const data = {
943
+ modelName: values.relationModelSingularName,
944
+ fieldName: values.userKey
945
+ }
946
+ updateUserKey(data);
947
+ }
934
948
  // nextTab()
935
949
  setVisiblePopup(false);
936
950
 
@@ -972,7 +986,13 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
972
986
  }
973
987
  };
974
988
 
975
-
989
+ useEffect(() => {
990
+ if (isUpdateUserKeySuccess) {
991
+ showToaster([newModel?.data?.message], "success");
992
+ } if (isUpdateUserKeyError) {
993
+ showToaster(UpdateUserKeyError, 'error')
994
+ }
995
+ }, [isUpdateUserKeySuccess, isUpdateUserKeyError])
976
996
 
977
997
  const handleTypeSelect = (e: any, label: string) => {
978
998
 
@@ -1012,6 +1032,40 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
1012
1032
  }
1013
1033
  }, [fieldMetaData])
1014
1034
 
1035
+ useEffect(() => {
1036
+ const fetchFields = async () => {
1037
+ const queryData: any = {
1038
+ limit: 10,
1039
+ offset: 0,
1040
+ filters: {
1041
+ singularName: {
1042
+ $eq: formik.values.relationModelSingularName
1043
+ }
1044
+ },
1045
+ populate: ['fields']
1046
+ };
1047
+ const queryString = qs.stringify(queryData, {
1048
+ encodeValuesOnly: true,
1049
+ });
1050
+
1051
+ const result = await triggerGetModels(queryString).unwrap();
1052
+
1053
+ if (result && result.records) {
1054
+ if (!result?.records[0]?.userKeyField) {
1055
+ setUserKeyFields(true);
1056
+ const fieldsWithUnique = result?.records[0]?.fields?.filter((field: any) => field?.unique === true);
1057
+ setUserKeyData(fieldsWithUnique)
1058
+ } else {
1059
+ setUserKeyFields(false);
1060
+ setUserKeyData([]);
1061
+ }
1062
+ }
1063
+ }
1064
+ if (formik.values.relationModelSingularName) {
1065
+ fetchFields();
1066
+ }
1067
+ }, [formik.values.relationModelSingularName])
1068
+
1015
1069
  const updateEnumValues = (index: number, updatedString: string) => {
1016
1070
  const updatedValues = formik.values.selectionStaticValues.map((enumValue: string, i: number) =>
1017
1071
  i === index ? updatedString : enumValue
@@ -1826,6 +1880,39 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
1826
1880
  </div>
1827
1881
  )}
1828
1882
 
1883
+ {isUserKeyFields && (
1884
+ <div className="field col-6 flex-flex-column gap-2">
1885
+ <label
1886
+ htmlFor="userKey"
1887
+ className="form-field-label"
1888
+ >
1889
+ Set User Key
1890
+ </label>
1891
+
1892
+
1893
+ <SingleSelectAutoCompleteField
1894
+ key="userKey"
1895
+ formik={formik}
1896
+ isFormFieldValid={isFormFieldValid}
1897
+ fieldName="userKey"
1898
+ fieldNameId="userKey"
1899
+ labelKey="displayName"
1900
+ valueKey="name"
1901
+ searchData={searchUserKeyField}
1902
+ existingData={formik.values.userKey}
1903
+ />
1904
+ {isFormFieldValid(
1905
+ formik,
1906
+ "userKey"
1907
+ ) && (
1908
+ <Message
1909
+ severity="error"
1910
+ text={formik?.errors?.userKey?.toString()}
1911
+ />
1912
+ )}
1913
+ </div>
1914
+ )}
1915
+
1829
1916
  {currentFields.includes("relationCreateInverse") && formik.values.relationType === "many-to-many" && (
1830
1917
  <div className="field col-6 flex flex-column gap-2 mt-3">
1831
1918
  <label htmlFor="relationCreateInverse" className="form-field-label">
@@ -1838,7 +1925,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
1838
1925
  checked={Boolean(formik.values.relationCreateInverse)}
1839
1926
  onChange={(e) => formik.setFieldValue("relationCreateInverse", e.checked)}
1840
1927
  />
1841
- <label htmlFor="relationCreateInverse" className="ml-2">Enable</label>
1928
+ <label htmlFor="relationCreateInverse" className="ml-2">Create Inverse</label>
1842
1929
  </div>
1843
1930
  {isFormFieldValid(formik, "relationCreateInverse") && (
1844
1931
  <Message severity="error" text={formik?.errors?.relationCreateInverse?.toString()} />
@@ -2045,7 +2132,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2045
2132
  e.value
2046
2133
  )
2047
2134
  }
2048
- placeholder="Select a Data Source"
2135
+ placeholder="Select Value Type"
2049
2136
  className={classNames("", {
2050
2137
  "p-invalid": isFormFieldValid(
2051
2138
  formik,
@@ -2346,7 +2433,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2346
2433
 
2347
2434
  </div>
2348
2435
  )}
2349
- {(currentFields.includes("regexPattern") || currentFields.includes("min") || currentFields.includes("max") || currentFields.includes("ormType")) && ormTypeOptions && formik.values.relationType !== "many-to-many" &&
2436
+ {(currentFields.includes("regexPattern") || currentFields.includes("min") || currentFields.includes("max") || currentFields.includes("ormType")) && ormTypeOptions && selectedType.value !== 'relation' &&
2350
2437
  <>
2351
2438
  <p className="form-wrapper-heading text-base">Validations</p>
2352
2439
  <div className="formgrid grid">
@@ -2439,7 +2526,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2439
2526
  {currentFields.includes("min") && (
2440
2527
  <div className="field col-6 flex-flex-column gap-2 mt-3">
2441
2528
  <label htmlFor="min" className="form-field-label">
2442
- Min (Characters Allowed)
2529
+ Min {(selectedType.value !== "int" && selectedType.value !== "decimal") && `(Characters Allowed)`}
2443
2530
 
2444
2531
  </label>
2445
2532
  {/* <InputText
@@ -2472,6 +2559,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2472
2559
  "min"
2473
2560
  ),
2474
2561
  })}
2562
+ disabled={fieldMetaData?.id}
2475
2563
  />
2476
2564
  }
2477
2565
 
@@ -2486,7 +2574,8 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2486
2574
  {currentFields.includes("max") && (
2487
2575
  <div className="field col-6 flex-flex-column gap-2 mt-3">
2488
2576
  <label htmlFor="max" className="form-field-label">
2489
- Max (Character allowed)
2577
+ Max {(selectedType.value !== "int" &&
2578
+ selectedType.value !== "decimal") && `(Characters allowed)`}
2490
2579
  </label>
2491
2580
  {/* <InputText
2492
2581
  type="text"
@@ -2517,6 +2606,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2517
2606
  "max"
2518
2607
  ),
2519
2608
  })}
2609
+ disabled={fieldMetaData?.id}
2520
2610
  />
2521
2611
  }
2522
2612
 
@@ -2586,7 +2676,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2586
2676
 
2587
2677
  <p className="form-wrapper-heading text-base">Settings</p>
2588
2678
  <div className="formgrid grid">
2589
- {currentFields.includes("required") && (
2679
+ {currentFields.includes("required") && selectedType.value !== 'relation' && (
2590
2680
  <div className="field col-6 flex-flex-column gap-2 mt-3">
2591
2681
  <div className="flex align-items-center">
2592
2682
  <Checkbox
@@ -2610,7 +2700,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2610
2700
  )}
2611
2701
  </div>
2612
2702
  )}
2613
- {currentFields.includes("unique") && (
2703
+ {currentFields.includes("unique") && selectedType.value !== 'relation' && (
2614
2704
  <div className="field col-6 flex-flex-column gap-2">
2615
2705
  <div className="flex align-items-center">
2616
2706
  <Checkbox
@@ -2634,7 +2724,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2634
2724
  )}
2635
2725
  </div>
2636
2726
  )}
2637
- {currentFields.includes("index") && (
2727
+ {currentFields.includes("index") && selectedType.value !== 'relation' && (
2638
2728
  <div className="field col-6 flex-flex-column gap-2 mt-3">
2639
2729
  <div className="flex align-items-center">
2640
2730
  <Checkbox
@@ -2656,7 +2746,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2656
2746
  )}
2657
2747
  </div>
2658
2748
  )}
2659
- {currentFields.includes("private") && (
2749
+ {currentFields.includes("private") && selectedType.value !== 'relation' && (
2660
2750
  <div className="field col-6 flex-flex-column gap-2 mt-3">
2661
2751
  <div className="flex align-items-center">
2662
2752
  <Checkbox
@@ -2681,7 +2771,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2681
2771
  )}
2682
2772
  </div>
2683
2773
  )}
2684
- {currentFields.includes("encrypt") && (
2774
+ {currentFields.includes("encrypt") && selectedType.value !== 'relation' && (
2685
2775
  <div className="field col-6 flex-flex-column gap-2 mt-3">
2686
2776
  <div className="flex align-items-center gap-2">
2687
2777
  <Checkbox
@@ -2742,7 +2832,7 @@ const FieldMetaDataForm = ({ modelMetaData, fieldMetaData, setFieldMetaData, all
2742
2832
  Is Userkey
2743
2833
  </label>
2744
2834
  </div>
2745
- <p className="fieldSubTitle">If userkey already then it will be replaced with this key</p>
2835
+ <p className="fieldSubTitle">By selecting this option, you are setting this field as the model's user key. Any existing user key configuration will be overwritten</p>
2746
2836
 
2747
2837
  {isFormFieldValid(formik, "isUserKey") && (
2748
2838
  <Message
@@ -208,7 +208,7 @@ const CreateModule = ({ data }: any) => {
208
208
  if (data) {
209
209
  setmenuIconPreview(`${process.env.API_URL}/${data.menuIconUrl}`);
210
210
 
211
- const fileName = data.menuIconUrl.split("/").pop(); // Extract filename from URL
211
+ const fileName = data?.menuIconUrl?.split("/").pop(); // Extract filename from URL
212
212
  setFileDetails({ name: fileName || "Unknown File", type: "Uploaded File" });
213
213
 
214
214
  // Set the upload progress to 100% since the file is already uploaded
@@ -7,7 +7,7 @@ export const modelsApi = createApi({
7
7
  endpoints: (builder) => ({
8
8
  getModels: builder.query({
9
9
  query: (qs) => {
10
- return `/model-metadata?populate[0]=module&${qs}`
10
+ return `/model-metadata?&populate[1]=userKeyField&${qs}`
11
11
  },
12
12
  transformResponse: (response: any) => {
13
13
  if (response.error) {
@@ -64,7 +64,14 @@ export const modelsApi = createApi({
64
64
  method: 'DELETE',
65
65
  }),
66
66
  }),
67
+ updateUserKey: builder.mutation({
68
+ query: (data) => ({
69
+ url: `/model-metadata/update-user-key`,
70
+ method: 'POST',
71
+ body: data,
72
+ }),
73
+ }),
67
74
  })
68
75
  })
69
76
 
70
- export const { useGetModelsQuery,useLazyGetModelsQuery, useLazyGetmodelByIdQuery, useGetmodelByIdQuery, useCreatemodelMutation,useGenerateCodeForModelMutation,useUpdatemodelMutation, useDeleteMultipleModelsMutation ,useDeletemodelMutation } = modelsApi
77
+ export const { useGetModelsQuery,useLazyGetModelsQuery, useLazyGetmodelByIdQuery, useGetmodelByIdQuery, useCreatemodelMutation,useGenerateCodeForModelMutation,useUpdatemodelMutation, useDeleteMultipleModelsMutation ,useDeletemodelMutation, useUpdateUserKeyMutation } = modelsApi