mirror of
https://github.com/rjNemo/melon_frontend
synced 2026-06-12 13:26:43 +00:00
refactor : move edit form
This commit is contained in:
parent
7731b1102e
commit
ec373a5718
2 changed files with 44 additions and 4 deletions
|
|
@ -19,10 +19,26 @@ type Response<T> = {
|
||||||
error?: any;
|
error?: any;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const billFrom = (bill: any): Bill =>
|
||||||
|
({
|
||||||
|
id: bill.id,
|
||||||
|
customers: bill.customers_qty,
|
||||||
|
end: bill.end_date,
|
||||||
|
name: bill.name,
|
||||||
|
paymentMethod: bill.payment_method,
|
||||||
|
paymentStatus: bill.payment_status,
|
||||||
|
phoneNumber: bill.phone_number,
|
||||||
|
platform: bill.platform,
|
||||||
|
price: bill.price,
|
||||||
|
room: bill.room,
|
||||||
|
start: bill.start_date,
|
||||||
|
taxes: bill.with_tax
|
||||||
|
} as Bill);
|
||||||
|
|
||||||
export const fetchOneBill = async (id: number): Promise<Response<Bill>> => {
|
export const fetchOneBill = async (id: number): Promise<Response<Bill>> => {
|
||||||
try {
|
try {
|
||||||
const { data } = await client.get<Bill>(`/${id}`);
|
const { data } = await client.get<Bill>(`/${id}`);
|
||||||
return { data };
|
return { data: billFrom(data) };
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
return { error };
|
return { error };
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
import { Button, Col, Divider, message, PageHeader, Space, Typography } from 'antd';
|
import { Button, Col, Divider, message, PageHeader, Space, Typography } from 'antd';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
|
import { useForm } from 'react-hook-form';
|
||||||
import { useHistory, useParams } from 'react-router-dom';
|
import { useHistory, useParams } from 'react-router-dom';
|
||||||
import { fetchOneBill, sendBillAsPDF } from '../../api';
|
import { createBill, fetchOneBill, sendBillAsPDF } from '../../api';
|
||||||
|
import { BillForm } from '../../components/billForm';
|
||||||
import { withLayout } from '../../layouts/main';
|
import { withLayout } from '../../layouts/main';
|
||||||
import { Bill } from '../../types/bill';
|
import { Bill } from '../../types/bill';
|
||||||
import NotFoundPage from '../notFound';
|
import NotFoundPage from '../notFound';
|
||||||
import { BillSent } from './billSent';
|
import { BillSent } from './billSent';
|
||||||
import { EditBillForm } from './editBillForm';
|
|
||||||
|
|
||||||
export type QueryParams = { id: string };
|
export type QueryParams = { id: string };
|
||||||
|
|
||||||
|
|
@ -15,6 +16,24 @@ const BillPage = () => {
|
||||||
const { id } = useParams<QueryParams>();
|
const { id } = useParams<QueryParams>();
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
|
|
||||||
|
const defaultValues = {
|
||||||
|
customers: 0,
|
||||||
|
start: '',
|
||||||
|
end: '',
|
||||||
|
name: '',
|
||||||
|
paymentMethod: 0,
|
||||||
|
paymentStatus: 0,
|
||||||
|
phoneNumber: '',
|
||||||
|
platform: 0,
|
||||||
|
price: 0,
|
||||||
|
room: 0,
|
||||||
|
taxes: false
|
||||||
|
};
|
||||||
|
|
||||||
|
const { register, handleSubmit, control, reset } = useForm<BillFormType>({
|
||||||
|
defaultValues
|
||||||
|
});
|
||||||
|
|
||||||
// Local State
|
// Local State
|
||||||
const [sent, setSent] = useState(false);
|
const [sent, setSent] = useState(false);
|
||||||
const [edit, setEdit] = useState(false);
|
const [edit, setEdit] = useState(false);
|
||||||
|
|
@ -42,8 +61,12 @@ const BillPage = () => {
|
||||||
setSent(() => true);
|
setSent(() => true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onSubmit = handleSubmit(async (data) => {
|
||||||
|
await createBill(data);
|
||||||
|
});
|
||||||
|
|
||||||
const content = edit ? (
|
const content = edit ? (
|
||||||
<EditBillForm bill={bill} />
|
<BillForm onFinish={onSubmit} control={control} register={register} />
|
||||||
) : sent ? (
|
) : sent ? (
|
||||||
<BillSent />
|
<BillSent />
|
||||||
) : (
|
) : (
|
||||||
|
|
@ -78,6 +101,7 @@ const BillPage = () => {
|
||||||
setSent(() => false);
|
setSent(() => false);
|
||||||
setEdit(() => true);
|
setEdit(() => true);
|
||||||
}}
|
}}
|
||||||
|
disabled={edit}
|
||||||
>
|
>
|
||||||
Edit
|
Edit
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue