plagiatcheck part complated base new request types
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
// ─── Domain Types ───────────────────────────────────────────────────────────
|
||||
|
||||
import { PriceCalculate } from '@/features/modals/paymentModal/lib/types';
|
||||
|
||||
export interface User {
|
||||
id: string;
|
||||
firstName: string;
|
||||
@@ -21,6 +23,11 @@ export interface PlagiarismSubmissionResponse {
|
||||
certificateUrl?: string;
|
||||
}
|
||||
|
||||
export interface CheckDocumentRequestResponse extends PriceCalculate {
|
||||
id: number;
|
||||
order_id: number;
|
||||
}
|
||||
|
||||
// ─── Form State Types ────────────────────────────────────────────────────────
|
||||
|
||||
export interface PlagiarismFormState {
|
||||
@@ -1,6 +1,7 @@
|
||||
'use client';
|
||||
import { useState, useCallback, useEffect } from 'react';
|
||||
import {
|
||||
CheckDocumentRequestResponse,
|
||||
PlagiarismFormErrors,
|
||||
PlagiarismFormState,
|
||||
SubmissionState,
|
||||
@@ -11,6 +12,7 @@ import { useUserPlagiatStore } from '@/shared/zustand/user';
|
||||
import { useMutation } from '@tanstack/react-query';
|
||||
import { links } from '@/shared/request/links';
|
||||
import { apiRequest } from '@/shared/request/apiRequest';
|
||||
import { PriceCalculate } from '@/features/modals/paymentModal/lib/types';
|
||||
|
||||
// ─── Initial States ──────────────────────────────────────────────────────────
|
||||
|
||||
@@ -23,6 +25,12 @@ const INITIAL_FORM: PlagiarismFormState = {
|
||||
document_type: 'boshqa',
|
||||
};
|
||||
|
||||
const PRICE: PriceCalculate = {
|
||||
service_fee: 0,
|
||||
discount: 0,
|
||||
total_price: 0,
|
||||
};
|
||||
|
||||
const INITIAL_SUBMISSION: SubmissionState = {
|
||||
status: 'idle',
|
||||
error: null,
|
||||
@@ -51,9 +59,8 @@ export function usePlagiarismForm() {
|
||||
const [isPaymentOpen, setIsPaymentOpen] = useState(false);
|
||||
const [submission, setSubmission] =
|
||||
useState<SubmissionState>(INITIAL_SUBMISSION);
|
||||
// const route = useRouter();
|
||||
// const [document_id, setDocument_id] = useState<number>(0);
|
||||
const [order_id, setOrder_id] = useState<number>(0);
|
||||
const [prices, setPrices] = useState<PriceCalculate>(PRICE);
|
||||
|
||||
const checkdocumentRequest = useMutation({
|
||||
mutationKey: ['plagiarismCheck'],
|
||||
@@ -61,9 +68,14 @@ export function usePlagiarismForm() {
|
||||
apiRequest('POST', links.plagiarismCheck, data),
|
||||
onSuccess: (res) => {
|
||||
console.log('uploda: ', res);
|
||||
const resdata = res.data as { id: number; order_id: number };
|
||||
const resdata = res.data as CheckDocumentRequestResponse;
|
||||
const priceInfo: PriceCalculate = {
|
||||
total_price: resdata?.total_price || 0,
|
||||
discount: resdata?.discount || 0,
|
||||
service_fee: resdata?.service_fee || 0,
|
||||
};
|
||||
setPrices(priceInfo);
|
||||
console.log('order_id:', resdata.id);
|
||||
// setDocument_id(resdata.id);
|
||||
setOrder_id(resdata.order_id);
|
||||
setSubmission({ status: 'success', error: null });
|
||||
setForm(INITIAL_FORM);
|
||||
@@ -83,7 +95,6 @@ export function usePlagiarismForm() {
|
||||
onSuccess: (res) => {
|
||||
console.log('payment res: ', res);
|
||||
window.open(res.data.payment_link, '_self');
|
||||
//route.push(`/${document_id}`);
|
||||
setIsPaymentOpen(false);
|
||||
},
|
||||
onError: (err) => {
|
||||
@@ -140,7 +151,7 @@ export function usePlagiarismForm() {
|
||||
fd.append('file', form.file!); // File object — multipart/form-data
|
||||
fd.append('certificate', String(form.certificate));
|
||||
fd.append('total_price', '41200');
|
||||
fd.append('document_type', form.document_type);
|
||||
fd.append('type', form.document_type);
|
||||
checkdocumentRequest.mutate(fd);
|
||||
},
|
||||
[form],
|
||||
@@ -177,5 +188,6 @@ export function usePlagiarismForm() {
|
||||
setIsPaymentOpen,
|
||||
isPaymentOpen,
|
||||
setOption,
|
||||
prices,
|
||||
};
|
||||
}
|
||||
@@ -63,6 +63,7 @@ export function PlagiarismCheckForm() {
|
||||
isPaymentOpen,
|
||||
setOption,
|
||||
setIsPaymentOpen,
|
||||
prices,
|
||||
} = usePlagiarismForm();
|
||||
|
||||
return (
|
||||
@@ -203,12 +204,7 @@ export function PlagiarismCheckForm() {
|
||||
<PaymentModal
|
||||
isOpen={isPaymentOpen}
|
||||
onClose={() => setIsPaymentOpen(false)}
|
||||
price={{
|
||||
service_fee: 41200,
|
||||
discount: 5200,
|
||||
total_price: 36000,
|
||||
currency: 'UZS',
|
||||
}}
|
||||
price={prices}
|
||||
onConfirmPayment={handleSubmit}
|
||||
isLoading={isLoading}
|
||||
/>
|
||||
Reference in New Issue
Block a user