Skip to content

Commit

Permalink
[DOP-21928] add success notifications (#52)
Browse files Browse the repository at this point in the history
Co-authored-by: Zabilsya <kvcherniko@mts.ru>
  • Loading branch information
Zabilsya and Zabilsya authored Dec 13, 2024
1 parent 7b41e07 commit 67e6fda
Show file tree
Hide file tree
Showing 18 changed files with 36 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ export const useDeleteConnection = (data: DeleteConnectionRequest): UseMutationR
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: [ConnectionQueryKey.GET_CONNECTIONS] });
queryClient.removeQueries({ queryKey: [ConnectionQueryKey.GET_CONNECTION, data.id] });
notification.success({
message: 'Connection was deleted successfully',
});
},
onError: (error) => {
notification.error({
Expand Down
2 changes: 1 addition & 1 deletion src/entities/connection/ui/ConnectionTypeForm/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export const ConnectionTypeForm = ({ initialType, isRequiredSensitiveFields = tr

return (
<>
<Form.Item label="type" name="type" rules={[{ required: true }]}>
<Form.Item label="Type" name="type" rules={[{ required: true }]}>
<Select
size="large"
options={CONNECTION_TYPE_SELECT_OPTIONS}
Expand Down
3 changes: 3 additions & 0 deletions src/entities/group/api/hooks/useDeleteGroupUser/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ export const useDeleteGroupUser = (data: DeleteGroupUserRequest): UseMutationRes
mutationFn: () => groupService.deleteGroupUser(data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: [GroupQueryKey.GET_GROUP_USERS, data.groupId] });
notification.success({
message: 'Group was deleted successfully',
});
},
onError: (error) => {
notification.error({
Expand Down
3 changes: 3 additions & 0 deletions src/entities/queue/api/hooks/useDeleteQueue/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ export const useDeleteQueue = (data: DeleteQueueRequest): UseMutationResult => {
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: [QueueQueryKey.GET_QUEUES] });
queryClient.removeQueries({ queryKey: [QueueQueryKey.GET_QUEUE, data.id] });
notification.success({
message: 'Queue was deleted successfully',
});
},
onError: (error) => {
notification.error({
Expand Down
3 changes: 3 additions & 0 deletions src/entities/run/api/hooks/useCreateRun/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ export const useCreateRun = (data: CreateRunRequest): UseMutationResult => {
mutationFn: () => runService.createRun(data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: [RunQueryKey.GET_RUNS, data.transfer_id] });
notification.success({
message: 'Transfer run was created successfully',
});
},
onError: (error) => {
notification.error({
Expand Down
3 changes: 3 additions & 0 deletions src/entities/transfer/api/hooks/useDeleteTransfer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ export const useDeleteTransfer = (data: DeleteTransferRequest): UseMutationResul
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: [TransferQueryKey.GET_TRANSFERS] });
queryClient.removeQueries({ queryKey: [TransferQueryKey.GET_TRANSFER, data.id] });
notification.success({
message: 'Transfer was deleted successfully',
});
},
onError: (error) => {
notification.error({
Expand Down
1 change: 1 addition & 0 deletions src/features/connection/CreateConnection/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export const CreateConnection = ({ group }: CreateConnectionProps) => {
<ManagedForm<CreateConnectionForm, Connection>
mutationFunction={handleCreateConnection}
onSuccess={onSuccess}
successMessage="Connection was created successfully"
keysInvalidateQueries={[[{ queryKey: [ConnectionQueryKey.GET_CONNECTIONS, group.id] }]]}
>
<FormCurrentGroupDescription groupName={group.name} />
Expand Down
1 change: 1 addition & 0 deletions src/features/connection/UpdateConnection/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ export const UpdateConnection = ({ connection, group }: UpdateConnectionProps) =
mutationFunction={handleUpdateConnection}
initialValues={getUpdateConnectionInitialValues(connection)}
onSuccess={onSuccess}
successMessage="Connection was updated successfully"
keysInvalidateQueries={[
[{ queryKey: [ConnectionQueryKey.GET_CONNECTIONS, group.id] }],
[{ queryKey: [ConnectionQueryKey.GET_CONNECTION, connection.id] }],
Expand Down
1 change: 1 addition & 0 deletions src/features/group/AddGroupUser/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export const AddGroupUser = ({ groupId, onSuccess, onCancel }: AddGroupUserProps
<ManagedForm<AddGroupUserForm, null>
mutationFunction={handleAddGroupUser}
onSuccess={onSuccess}
successMessage="User was added to group successfully"
keysInvalidateQueries={[[{ queryKey: [GroupQueryKey.GET_GROUP_USERS, groupId] }]]}
>
<Form.Item label="User" name="userId" rules={[{ required: true }]}>
Expand Down
3 changes: 2 additions & 1 deletion src/features/group/CreateGroup/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@ export const CreateGroup = () => {
<ManagedForm
mutationFunction={groupService.createGroup}
onSuccess={onSuccess}
successMessage="Group was created successfully"
keysInvalidateQueries={[[{ queryKey: [GroupQueryKey.GET_GROUPS] }]]}
>
<Form.Item label="Name" name="name" rules={[{ required: true }]}>
<Input size="large" />
</Form.Item>

<Form.Item label="Description" name="description">
<Form.Item label="Description" name="description" rules={[{ required: true }]}>
<Input size="large" />
</Form.Item>

Expand Down
3 changes: 2 additions & 1 deletion src/features/group/UpdateGroup/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export const UpdateGroup = ({ group }: UpdateGroupProps) => {
mutationFunction={handleUpdateGroup}
initialValues={getUpdateGroupInitialValues(group)}
onSuccess={onSuccess}
successMessage="Group was updated successfully"
keysInvalidateQueries={[
[{ queryKey: [GroupQueryKey.GET_GROUPS] }],
[{ queryKey: [GroupQueryKey.GET_GROUP, group.id] }],
Expand All @@ -37,7 +38,7 @@ export const UpdateGroup = ({ group }: UpdateGroupProps) => {
<Input size="large" />
</Form.Item>

<Form.Item label="Description" name="description">
<Form.Item label="Description" name="description" rules={[{ required: true }]}>
<Input size="large" />
</Form.Item>

Expand Down
1 change: 1 addition & 0 deletions src/features/group/UpdateGroupUser/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export const UpdateGroupUser = ({ groupId, user, onSuccess, onCancel }: UpdateGr
initialValues={getUpdateGroupUserInitialValues(user)}
mutationFunction={handleUpdateGroupUser}
onSuccess={onSuccess}
successMessage="User role was updated successfully"
keysInvalidateQueries={[[{ queryKey: [GroupQueryKey.GET_GROUP_USERS, groupId] }]]}
>
<div className={classes.formMain}>
Expand Down
1 change: 1 addition & 0 deletions src/features/queue/CreateQueue/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export const CreateQueue = ({ group }: CreateQueueProps) => {
<ManagedForm<CreateQueueForm, Queue>
mutationFunction={handleCreateQueue}
onSuccess={onSuccess}
successMessage="Queue was created successfully"
keysInvalidateQueries={[[{ queryKey: [QueueQueryKey.GET_QUEUES, group.id] }]]}
>
<FormCurrentGroupDescription groupName={group.name} />
Expand Down
1 change: 1 addition & 0 deletions src/features/queue/UpdateQueue/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export const UpdateQueue = ({ queue, group }: UpdateQueueProps) => {
mutationFunction={handleUpdateQueue}
initialValues={getUpdateQueueInitialValues(queue)}
onSuccess={onSuccess}
successMessage="Queue was updated successfully"
keysInvalidateQueries={[
[{ queryKey: [QueueQueryKey.GET_QUEUES, group.id] }],
[{ queryKey: [QueueQueryKey.GET_QUEUE, queue.id] }],
Expand Down
6 changes: 6 additions & 0 deletions src/shared/ui/ManagedForm/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export const ManagedForm = <T extends object, R>({
children,
mutationFunction,
onSuccess,
successMessage,
keysInvalidateQueries = [],
isHiddenLoadingOnSuccess = false,
onError = () => undefined,
Expand All @@ -35,6 +36,11 @@ export const ManagedForm = <T extends object, R>({
if (isHiddenLoadingOnSuccess) {
setLoading(false);
}
if (successMessage) {
notification.success({
message: successMessage,
});
}
},
onError: (error) => {
onError(error);
Expand Down
2 changes: 2 additions & 0 deletions src/shared/ui/ManagedForm/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ export interface ManagedFormProps<T, R> extends Omit<FormProps<T>, 'form' | 'onF
mutationFunction: (params: T) => Promise<R>;
/** Callback on success response from request */
onSuccess: (response: R) => void;
/** Notification message text on success response from request */
successMessage?: string;
/** Callback on error response from request */
onError?: (error: unknown) => void;
/** Keys for invalidate cache of other requests */
Expand Down
1 change: 1 addition & 0 deletions src/widgets/transfer/CreateTransfer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export const CreateTransfer = ({ group }: CreateTransferProps) => {
initialValues={CREATE_TRANSFER_INITIAL_VALUES}
mutationFunction={handleCreateTransfer}
onSuccess={onSuccess}
successMessage="Transfer was created successfully"
keysInvalidateQueries={[[{ queryKey: [TransferQueryKey.GET_TRANSFERS, group.id] }]]}
>
<MutateTransferForm group={group} onCancel={onCancel} />
Expand Down
1 change: 1 addition & 0 deletions src/widgets/transfer/UpdateTransfer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export const UpdateTransfer = ({ transfer, group }: UpdateTransferProps) => {
initialValues={transferInitialValues}
mutationFunction={handleUpdateTransfer}
onSuccess={onSuccess}
successMessage="Transfer was updated successfully"
keysInvalidateQueries={[
[{ queryKey: [TransferQueryKey.GET_TRANSFERS, group.id] }],
[{ queryKey: [TransferQueryKey.GET_TRANSFER, transfer.id] }],
Expand Down

0 comments on commit 67e6fda

Please sign in to comment.