@topconsultnpm/sdkui-react-beta 6.11.16 → 6.11.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.
@@ -5,7 +5,7 @@ export declare class SaveFormOptions {
5
5
  objType: JobTypes;
6
6
  loadDataAfterSave: boolean;
7
7
  }
8
- export declare function useSaveForm<T>(formMode: FormModes, id: number | undefined, sfo: SaveFormOptions, validator?: (d: T) => Promise<ValidationItem[] | undefined>, onSaved?: (newDescriptor: T) => void, onStatusChanged?: (isModified: boolean, isValid: boolean) => void, customizeFormData?: (d: T) => T): {
8
+ export declare function useSaveForm<T>(formMode: FormModes, id: number | undefined, sfo: SaveFormOptions, validator?: (d: T) => Promise<ValidationItem[] | undefined>, onSaved?: (newDescriptor: T) => void, onStatusChanged?: (isModified: boolean, isValid: boolean) => void, customizeFormData?: (d: T) => T, saveCustomAsync?: () => number): {
9
9
  formData: T | undefined;
10
10
  setFormData: import("react").Dispatch<import("react").SetStateAction<T | undefined>>;
11
11
  formDataOrig: T | undefined;
@@ -10,7 +10,7 @@ export class SaveFormOptions {
10
10
  this.loadDataAfterSave = true;
11
11
  }
12
12
  }
13
- export function useSaveForm(formMode, id, sfo, validator, onSaved, onStatusChanged, customizeFormData) {
13
+ export function useSaveForm(formMode, id, sfo, validator, onSaved, onStatusChanged, customizeFormData, saveCustomAsync) {
14
14
  const [formData, setFormData] = useState();
15
15
  const [formDataOrig, setFormDataOrig] = useState();
16
16
  const [exception, setException] = useState();
@@ -108,7 +108,7 @@ export function useSaveForm(formMode, id, sfo, validator, onSaved, onStatusChang
108
108
  default: return await PlatformObjectService.createAsync(sfo.objClass, sfo.objType, d);
109
109
  }
110
110
  };
111
- const saveDataAsync = async () => {
111
+ const saveDataAsyncOrig = async () => {
112
112
  if (!formData)
113
113
  return;
114
114
  let newId = await setDataAsync?.(formMode, formData);
@@ -123,6 +123,25 @@ export function useSaveForm(formMode, id, sfo, validator, onSaved, onStatusChang
123
123
  }
124
124
  onSaved?.(newData);
125
125
  };
126
+ const saveDataAsync = async () => {
127
+ if (!formData)
128
+ return;
129
+ let newId = -1;
130
+ if (saveCustomAsync)
131
+ newId = await saveCustomAsync();
132
+ else
133
+ newId = await setDataAsync?.(formMode, formData);
134
+ let newData;
135
+ if (sfo.loadDataAfterSave)
136
+ newData = await loadDataAsync(newId, FormModes.Update);
137
+ else {
138
+ newData = formData;
139
+ newData.id = newId;
140
+ setFormData(newData);
141
+ setFormDataOrig(newData);
142
+ }
143
+ onSaved?.(newData);
144
+ };
126
145
  useEffect(() => { id && loadDataAsync(id, formMode); }, [id, formMode]);
127
146
  useEffect(() => {
128
147
  if (!formData)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react-beta",
3
- "version": "6.11.16",
3
+ "version": "6.11.18",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -41,7 +41,7 @@
41
41
  "lib"
42
42
  ],
43
43
  "dependencies": {
44
- "@topconsultnpm/sdk-ts-beta": "^6.11.1",
44
+ "@topconsultnpm/sdk-ts-beta": "^6.11.2",
45
45
  "buffer": "^6.0.3",
46
46
  "devextreme": "24.2.3",
47
47
  "devextreme-react": "24.2.3",