R: Use monadic conditional call

This commit is contained in:
Ivan 2024-12-04 22:52:45 +03:00
parent 0725c8220d
commit 968c97b374
18 changed files with 63 additions and 67 deletions

View File

@ -32,9 +32,7 @@ function TableBody<TData>({
onRowDoubleClicked
}: TableBodyProps<TData>) {
function handleRowClicked(target: Row<TData>, event: CProps.EventMouse) {
if (onRowClicked) {
onRowClicked(target.original, event);
}
onRowClicked?.(target.original, event);
if (enableRowSelection && target.getCanSelect()) {
if (event.shiftKey && !!lastSelected && lastSelected !== target.id) {
const { rows, rowsById } = table.getRowModel();

View File

@ -36,9 +36,7 @@ function FileInput({ id, label, acceptType, title, className, style, onChange, .
} else {
setFileName('');
}
if (onChange) {
onChange(event);
}
onChange?.(event);
};
return (

View File

@ -84,14 +84,14 @@ function Modal({
const handleCancel = () => {
hideWindow();
if (onCancel) onCancel();
onCancel?.();
};
const handleSubmit = () => {
if (beforeSubmit && !beforeSubmit()) {
return;
}
if (onSubmit) onSubmit();
onSubmit?.();
hideWindow();
};

View File

@ -69,7 +69,7 @@ export const AuthState = ({ children }: React.PropsWithChildren) => {
} else {
setUser(undefined);
}
if (callback) callback();
callback?.();
}
});
},
@ -85,7 +85,7 @@ export const AuthState = ({ children }: React.PropsWithChildren) => {
onError: setError,
onSuccess: newData =>
reload(() => {
if (callback) callback(newData);
callback?.(newData);
})
});
}
@ -96,7 +96,7 @@ export const AuthState = ({ children }: React.PropsWithChildren) => {
showError: true,
onSuccess: newData =>
reload(() => {
if (callback) callback(newData);
callback?.(newData);
})
});
}
@ -111,7 +111,7 @@ export const AuthState = ({ children }: React.PropsWithChildren) => {
onSuccess: newData =>
reload(() => {
users.push(newData as IUserInfo);
if (callback) callback(newData);
callback?.(newData);
})
});
}
@ -126,7 +126,7 @@ export const AuthState = ({ children }: React.PropsWithChildren) => {
onError: setError,
onSuccess: () =>
reload(() => {
if (callback) callback();
callback?.();
})
});
},
@ -143,7 +143,7 @@ export const AuthState = ({ children }: React.PropsWithChildren) => {
onError: setError,
onSuccess: () =>
reload(() => {
if (callback) callback();
callback?.();
})
});
},
@ -160,7 +160,7 @@ export const AuthState = ({ children }: React.PropsWithChildren) => {
onError: setError,
onSuccess: () =>
reload(() => {
if (callback) callback();
callback?.();
})
});
},
@ -177,7 +177,7 @@ export const AuthState = ({ children }: React.PropsWithChildren) => {
onError: setError,
onSuccess: () =>
reload(() => {
if (callback) callback();
callback?.();
})
});
},

View File

@ -48,7 +48,7 @@ export const GlobalOssState = ({ children }: React.PropsWithChildren) => {
(callback?: () => void) => {
reloadInternal(undefined, () => {
setIsValid(true);
if (callback) callback();
callback?.();
});
},
[reloadInternal]

View File

@ -157,7 +157,7 @@ export const LibraryState = ({ children }: React.PropsWithChildren) => {
onError: setLoadingError,
onSuccess: newData => {
setItems(newData);
if (callback) callback();
callback?.();
}
});
} else {
@ -167,7 +167,7 @@ export const LibraryState = ({ children }: React.PropsWithChildren) => {
onError: setLoadingError,
onSuccess: newData => {
setItems(newData);
if (callback) callback();
callback?.();
}
});
}
@ -217,7 +217,7 @@ export const LibraryState = ({ children }: React.PropsWithChildren) => {
(data: ILibraryCreateData, callback?: DataCallback<ILibraryItem>) => {
const onSuccess = (newSchema: ILibraryItem) =>
reloadItems(() => {
if (callback) callback(newSchema);
callback?.(newSchema);
});
setProcessingError(undefined);
if (data.file) {
@ -250,7 +250,7 @@ export const LibraryState = ({ children }: React.PropsWithChildren) => {
onError: setProcessingError,
onSuccess: () =>
reloadItems(() => {
if (callback) callback();
callback?.();
})
});
},
@ -270,7 +270,7 @@ export const LibraryState = ({ children }: React.PropsWithChildren) => {
onError: setProcessingError,
onSuccess: newSchema =>
reloadItems(() => {
if (callback) callback(newSchema);
callback?.(newSchema);
})
});
},
@ -287,7 +287,7 @@ export const LibraryState = ({ children }: React.PropsWithChildren) => {
onError: setProcessingError,
onSuccess: () =>
reloadItems(() => {
if (callback) callback();
callback?.();
})
});
},

View File

@ -114,7 +114,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
const fullData: IOperationSchemaData = Object.assign(model, newData);
oss.setData(fullData);
library.localUpdateItem(newData);
if (callback) callback(newData);
callback?.(newData);
}
});
},
@ -137,7 +137,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: () => {
model.owner = newOwner;
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});
@ -161,7 +161,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: () => {
model.access_policy = newPolicy;
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});
@ -185,7 +185,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: () => {
model.location = newLocation;
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});
@ -209,7 +209,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: () => {
model.editors = newEditors;
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});
@ -227,7 +227,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onError: setProcessingError,
onSuccess: () => {
library.localUpdateTimestamp(Number(itemID));
if (callback) callback();
callback?.();
}
});
},
@ -245,7 +245,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: newData => {
oss.setData(newData.oss);
library.localUpdateTimestamp(newData.oss.id);
if (callback) callback(newData.new_operation);
callback?.(newData.new_operation);
}
});
},
@ -263,7 +263,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: newData => {
oss.setData(newData);
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});
@ -282,7 +282,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: newData => {
oss.setData(newData.oss);
library.reloadItems(() => {
if (callback) callback(newData.new_schema);
callback?.(newData.new_schema);
});
}
});
@ -304,7 +304,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: newData => {
oss.setData(newData);
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});
@ -326,7 +326,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: newData => {
oss.setData(newData);
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});
@ -348,7 +348,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: newData => {
oss.setData(newData);
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});
@ -370,7 +370,7 @@ export const OssState = ({ itemID, children }: React.PropsWithChildren<OssStateP
onSuccess: () => {
oss.reload();
library.reloadItems(() => {
if (callback) callback();
callback?.();
});
}
});

View File

@ -147,7 +147,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
setSchema(Object.assign(schema, newData));
library.localUpdateItem(newData);
oss.invalidateItem(newData.id);
if (callback) callback(newData);
callback?.(newData);
}
});
},
@ -168,7 +168,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onSuccess: newData => {
setSchema(newData);
library.localUpdateItem(newData);
if (callback) callback();
callback?.();
}
});
},
@ -191,7 +191,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onSuccess: () => {
schema.owner = newOwner;
library.localUpdateItem(schema);
if (callback) callback();
callback?.();
}
});
},
@ -214,7 +214,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onSuccess: () => {
schema.access_policy = newPolicy;
library.localUpdateItem(schema);
if (callback) callback();
callback?.();
}
});
},
@ -258,7 +258,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onError: setProcessingError,
onSuccess: () => {
schema.editors = newEditors;
if (callback) callback();
callback?.();
}
});
},
@ -279,7 +279,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
setSchema(newData);
library.localUpdateTimestamp(newData.id);
oss.invalidateItem(newData.id);
if (callback) callback();
callback?.();
}
});
},
@ -299,7 +299,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onSuccess: newData => {
setSchema(newData);
library.localUpdateTimestamp(newData.id);
if (callback) callback();
callback?.();
}
});
},
@ -318,7 +318,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
setSchema(newData.schema);
library.localUpdateTimestamp(newData.schema.id);
oss.invalidateItem(newData.schema.id);
if (callback) callback(newData.cst_list);
callback?.(newData.cst_list);
}
});
},
@ -350,7 +350,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
setSchema(newData.schema);
library.localUpdateTimestamp(newData.schema.id);
oss.invalidateItem(newData.schema.id);
if (callback) callback(newData.new_cst);
callback?.(newData.new_cst);
}
});
},
@ -369,7 +369,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
setSchema(newData);
library.localUpdateTimestamp(newData.id);
oss.invalidateItem(newData.id);
if (callback) callback();
callback?.();
}
});
},
@ -388,7 +388,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
reload(setProcessing, () => {
library.localUpdateTimestamp(Number(itemID));
oss.invalidateItem(Number(itemID));
if (callback) callback(newData);
callback?.(newData);
})
});
},
@ -407,7 +407,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
setSchema(newData.schema);
library.localUpdateTimestamp(newData.schema.id);
oss.invalidateItem(newData.schema.id);
if (callback) callback(newData.new_cst);
callback?.(newData.new_cst);
}
});
},
@ -426,7 +426,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
setSchema(newData);
library.localUpdateTimestamp(newData.id);
oss.invalidateItem(newData.id);
if (callback) callback();
callback?.();
}
});
},
@ -444,7 +444,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onSuccess: newData => {
setSchema(newData);
library.localUpdateTimestamp(Number(itemID));
if (callback) callback();
callback?.();
}
});
},
@ -462,7 +462,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onSuccess: newData => {
setSchema(newData.schema);
library.localUpdateTimestamp(Number(itemID));
if (callback) callback(newData.version);
callback?.(newData.version);
}
});
},
@ -499,7 +499,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
}
});
setSchema(schema);
if (callback) callback();
callback?.();
}
});
},
@ -516,7 +516,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onSuccess: () => {
schema!.versions = schema!.versions.filter(prev => prev.id !== target);
setSchema(schema);
if (callback) callback();
callback?.();
}
});
},
@ -533,7 +533,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
onSuccess: newData => {
setSchema(newData);
library.localUpdateItem(newData);
if (callback) callback();
callback?.();
}
});
},
@ -552,7 +552,7 @@ export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChil
setSchema(newData);
library.localUpdateTimestamp(newData.id);
oss.invalidateItem(newData.id);
if (callback) callback(newData);
callback?.(newData);
}
});
},

View File

@ -64,7 +64,7 @@ export const UserProfileState = ({ children }: React.PropsWithChildren) => {
libraryUser.first_name = newData.first_name;
libraryUser.last_name = newData.last_name;
}
if (callback) callback(newData);
callback?.(newData);
}
});
},

View File

@ -69,7 +69,7 @@ export const UsersState = ({ children }: React.PropsWithChildren) => {
}
});
setUsers(newData);
if (callback) callback();
callback?.();
}
});
},

View File

@ -29,7 +29,7 @@ function useCheckConstituenta({ schema }: { schema?: IRSForm }) {
onError: setError,
onSuccess: parse => {
setParseData(parse);
if (onSuccess) onSuccess(parse);
onSuccess?.(parse);
}
});
}

View File

@ -13,7 +13,7 @@ function useClickedOutside(enabled: boolean, ref: React.RefObject<HTMLElement>,
function handleClickOutside(event: MouseEvent) {
assertIsNode(event.target);
if (ref.current && !ref.current.contains(event.target)) {
if (callback) callback();
callback?.();
}
}
document.addEventListener('mouseup', handleClickOutside);

View File

@ -19,7 +19,7 @@ function useConceptText() {
setLoading: setProcessing,
onError: setError,
onSuccess: data => {
if (onSuccess) onSuccess(data);
onSuccess?.(data);
}
});
}, []);
@ -32,7 +32,7 @@ function useConceptText() {
setLoading: setProcessing,
onError: setError,
onSuccess: data => {
if (onSuccess) onSuccess(data);
onSuccess?.(data);
}
});
}, []);
@ -45,7 +45,7 @@ function useConceptText() {
setLoading: setProcessing,
onError: setError,
onSuccess: data => {
if (onSuccess) onSuccess(data);
onSuccess?.(data);
}
});
}, []);

View File

@ -42,7 +42,7 @@ function useOssDetails({ target, items }: { target?: string; items: ILibraryItem
},
onSuccess: schema => {
setSchema(schema);
if (callback) callback();
callback?.();
}
});
},

View File

@ -38,7 +38,7 @@ function useRSFormDetails({ target, version }: { target?: string; version?: stri
},
onSuccess: schema => {
setSchema(schema);
if (callback) callback();
callback?.();
}
});
},

View File

@ -218,7 +218,7 @@ export const OssEditState = ({ selected, setSelected, children }: React.PropsWit
}
});
toast.success(information.changesSaved);
if (callback) callback();
callback?.();
});
},
[model]

View File

@ -96,7 +96,7 @@ function EditorRSExpression({
args: parse.args
})
);
if (callback) callback(parse);
callback?.(parse);
});
}

View File

@ -326,7 +326,7 @@ export const RSEditState = ({
model.cstDelete(data, () => {
toast.success(information.constituentsDestroyed(deletedNames));
setSelected(nextActive ? [nextActive] : []);
if (onDeleteCst) onDeleteCst(nextActive);
onDeleteCst?.(nextActive);
});
},
[model, activeCst, onDeleteCst, setSelected]