Skip to content

Commit 2b25841

Browse files
refactor: Makes some touch up
1 parent 6411aca commit 2b25841

File tree

4 files changed

+62
-54
lines changed

4 files changed

+62
-54
lines changed

src/components/CustomerList.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { List, Filter, Datagrid, TextField, SearchInput, } from 'react-admin';
33

44
const CustomerFilter = (props) => (
55
<Filter {...props}>
6-
<SearchInput placeholder='Email' source='email' resettable alwaysOn />
6+
<SearchInput placeholder='Customer Email' source='email' resettable alwaysOn />
77
</Filter>
88
);
99

src/components/RentalCreate.js

Lines changed: 26 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useEffect, useState } from 'react';
1+
import React from 'react';
22
import {
33
Create,
44
SimpleForm,
@@ -7,65 +7,50 @@ import {
77
useNotify,
88
useRefresh,
99
useRedirect,
10-
useQuery,
10+
ReferenceInput,
1111
} from 'react-admin';
1212

1313
const RentalCreate = (props) => {
1414
const notify = useNotify();
1515
const refresh = useRefresh();
1616
const redirect = useRedirect();
1717

18-
const onSuccess = ({data}) => {
18+
const onSuccess = ({ data }) => {
1919
notify(`New Rental created `);
2020
redirect(`/rentals?filter=%7B"id"%3A"${data.id}"%7D`);
2121
refresh();
2222
};
2323

24-
const [customers, setCustomers] = useState([]);
25-
const { data: customer } = useQuery({
26-
type: 'getList',
27-
resource: 'customers',
28-
payload: {
29-
pagination: { page: 1, perPage: 600 },
30-
sort: { field: 'email', order: 'ASC' },
31-
filter: {},
32-
},
33-
});
34-
useEffect(() => {
35-
if (customer)
36-
setCustomers(customer.map((d) => ({ id: d.id, name: d.email })));
37-
}, [customer]);
38-
39-
const [films, setFilms] = useState([]);
40-
const { data: film } = useQuery({
41-
type: 'getList',
42-
resource: 'films',
43-
payload: {
44-
pagination: { page: 1, perPage: 1000 },
45-
sort: { field: 'title', order: 'ASC' },
46-
filter: {},
47-
},
48-
});
49-
useEffect(() => {
50-
if (film) setFilms(film.map((d) => ({ id: d.id, name: d.title })));
51-
}, [film]);
52-
5324
return (
5425
<Create {...props} title='Create new Rental' onSuccess={onSuccess}>
5526
<SimpleForm>
56-
<SelectInput source='customer_id' choices={customers} />
57-
58-
<SelectInput source='film_id' choices={films} />
27+
<ReferenceInput
28+
label='Customer'
29+
source='customer_id'
30+
reference='customers'
31+
perPage={600}
32+
sort={{ field: 'email', order: 'ASC' }}
33+
>
34+
<SelectInput optionText='email' />
35+
</ReferenceInput>
36+
<ReferenceInput
37+
label='Film'
38+
source='film_id'
39+
reference='films'
40+
perPage={1000}
41+
sort={{ field: 'title', order: 'ASC' }}
42+
>
43+
<SelectInput optionText='title' />
44+
</ReferenceInput>
5945
<SelectInput
6046
source='status'
61-
defaultValue='new'
47+
defaultValue='borrowed'
48+
disabled
6249
choices={[
63-
{ id: 'new', name: 'new' },
64-
{ id: 'paid', name: 'paid' },
65-
{ id: 'outbound', name: 'outbound' },
66-
{ id: 'returned', name: 'returned' },
67-
{ id: 'canceled', name: 'canceled' },
50+
{ id: 'borrowed', name: 'borrowed' },
51+
{ id: 'delayed', name: 'delayed' },
6852
{ id: 'lost', name: 'lost' },
53+
{ id: 'returned', name: 'returned' },
6954
]}
7055
/>
7156

src/components/RentalEdit.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,31 @@ import {
55
TextInput,
66
DateTimeInput,
77
SelectInput,
8+
ReferenceInput,
89
} from 'react-admin';
910

1011
const RentalEdit = (props) => (
1112
<Edit {...props} title='Edit of Rentals'>
1213
<SimpleForm>
1314
<TextInput disabled source='id' />
15+
<ReferenceInput source='film_id' reference='films'>
16+
<SelectInput disabled optionText='title' />
17+
</ReferenceInput>
18+
<ReferenceInput
19+
source='customer_id'
20+
reference='customers'
21+
>
22+
<SelectInput disabled optionText='email' />
23+
</ReferenceInput>
1424
<DateTimeInput disabled source='rental_date' />
1525

1626
<SelectInput
1727
source='status'
1828
choices={[
19-
{ id: 'new', name: 'new' },
20-
{ id: 'paid', name: 'paid' },
21-
{ id: 'outbound', name: 'outbound' },
22-
{ id: 'returned', name: 'returned' },
23-
{ id: 'canceled', name: 'canceled' },
29+
{ id: 'borrowed', name: 'borrowed' },
30+
{ id: 'delayed', name: 'delayed' },
2431
{ id: 'lost', name: 'lost' },
32+
{ id: 'returned', name: 'returned' },
2533
]}
2634
/>
2735
<DateTimeInput source='return_date' />

src/components/RentalList.js

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,38 @@ import {
44
Datagrid,
55
TextField,
66
DateField,
7+
Filter,
8+
SearchInput,
79
ReferenceField,
810
} from 'react-admin';
911

12+
const RentalFilter = (props) => (
13+
<Filter {...props}>
14+
<SearchInput placeholder='Rental ID' source='id' resettable alwaysOn />
15+
</Filter>
16+
);
17+
1018
const RentalList = (props) => (
11-
<List {...props} title='List of Rentals'>
19+
<List {...props} filters={<RentalFilter />} title='List of Rentals'>
1220
<Datagrid rowClick='edit'>
1321
<TextField source='id' />
14-
<TextField source='status' />
15-
<ReferenceField label='Movie Name' source='film_id' reference='films' link={false}>
22+
<ReferenceField
23+
source='film_id'
24+
reference='films'
25+
link={false}
26+
>
1627
<TextField source='title' />
1728
</ReferenceField>
18-
<TextField source='inventory_id' />
19-
<TextField source='customer_id' />
20-
<TextField source='staff_id' />
29+
<TextField source='status' />
30+
<ReferenceField
31+
source='customer_id'
32+
reference='customers'
33+
link={false}
34+
>
35+
<TextField source='email' />
36+
</ReferenceField>
2137
<DateField source='rental_date' />
2238
<DateField source='return_date' />
23-
<DateField source='last_update' />
2439
</Datagrid>
2540
</List>
2641
);

0 commit comments

Comments
 (0)