Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | import { useAppSelector } from '@redux/hooks';
import { selectUser } from '@redux/slices/auth/auth';
import { customInstance } from '@services/api';
import { useMutation, UseMutationResult } from 'react-query';
interface UseImportCustomersProps {
merchantId: number;
file: File;
}
interface Customer {
id: number;
name: string;
email: string;
}
interface ImportCustomersResponse {
id : number;
accID : number;
statusID : number;
statusname : string;
name : string;
result : Customer[];
created_at : string;
updated_at : string;
error : string;
}
const useImportCustomers = ({
merchantId,
file,
}: UseImportCustomersProps): {
importCustomers: UseMutationResult<ImportCustomersResponse, unknown, FormData>;
handleImportSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
} => {
const { id } = useAppSelector(selectUser);
const importCustomers = useMutation<ImportCustomersResponse, unknown, FormData>(
(formData) => {
return customInstance({
url: `/merchants/${merchantId}/customers`,
method: 'POST',
data: formData,
headers: {
'Content-Type': 'multipart/form-data',
},
});
}
);
const handleImportSubmit = (e: React.FormEvent<HTMLFormElement>): void => {
e.preventDefault();
const formData = new FormData();
formData.append('file', file);
formData.append('userId', String(id));
importCustomers.mutate(formData);
};
return { importCustomers, handleImportSubmit };
};
export default useImportCustomers;
|