fear: change requests to RTK query
All checks were successful
it-academy/dry-wash-pl/pipeline/pr-main This commit looks good

This commit is contained in:
2025-02-02 11:59:27 +03:00
parent ad1f948641
commit a00aaff29d
12 changed files with 145 additions and 238 deletions

View File

@@ -1,4 +1,4 @@
import React, { useState } from 'react';
import React, { useEffect, useState } from 'react';
import {
Editable,
EditableInput,
@@ -14,22 +14,18 @@ import {
import { CheckIcon, CloseIcon, EditIcon } from '@chakra-ui/icons';
import { useTranslation } from 'react-i18next';
import { useUpdateMasterMutation } from '../../__data__/service/api';
interface EditableWrapperProps {
value: string;
onSubmit: ({
id,
name,
phone,
}: {
id: string;
name?: string;
phone?: string;
}) => Promise<unknown>;
as: 'phone' | 'name';
id: string;
}
const EditableWrapper = ({ value, onSubmit, as, id }: EditableWrapperProps) => {
const EditableWrapper = ({ value, as, id }: EditableWrapperProps) => {
const [updateMaster, { isError, isSuccess, error }] =
useUpdateMasterMutation();
const { t } = useTranslation('~', {
keyPrefix: 'dry-wash.arm.master.editable',
});
@@ -40,11 +36,13 @@ const EditableWrapper = ({ value, onSubmit, as, id }: EditableWrapperProps) => {
const handleSubmit = async (newValue: string) => {
if (currentValue === newValue) return;
try {
await onSubmit({ id, [as]: newValue });
await updateMaster({ id, [as]: newValue });
setCurrentValue(newValue);
setCurrentValue(newValue);
};
useEffect(() => {
if (isSuccess) {
toast({
title: 'Успешно!',
description: 'Данные обновлены.',
@@ -53,7 +51,11 @@ const EditableWrapper = ({ value, onSubmit, as, id }: EditableWrapperProps) => {
isClosable: true,
position: 'top-right',
});
} catch (error) {
}
}, [isSuccess]);
useEffect(() => {
if (isError) {
toast({
title: 'Ошибка!',
description: 'Не удалось обновить данные.',
@@ -64,7 +66,7 @@ const EditableWrapper = ({ value, onSubmit, as, id }: EditableWrapperProps) => {
});
console.error('Ошибка при обновлении данных:', error);
}
};
}, [isError, error]);
function EditableControls() {
const {