Skip to content

Commit a947296

Browse files
refactor: Updates to new rental structure
1 parent 2b25841 commit a947296

File tree

4 files changed

+48
-49
lines changed

4 files changed

+48
-49
lines changed

src/components/RentalCreate.js

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { useState, useEffect } from 'react';
22
import {
33
Create,
44
SimpleForm,
@@ -7,7 +7,8 @@ import {
77
useNotify,
88
useRefresh,
99
useRedirect,
10-
ReferenceInput,
10+
useQuery,
11+
TextInput,
1112
} from 'react-admin';
1213

1314
const RentalCreate = (props) => {
@@ -21,27 +22,41 @@ const RentalCreate = (props) => {
2122
refresh();
2223
};
2324

25+
const [customers, setCustomers] = useState([]);
26+
const { data: customer } = useQuery({
27+
type: 'getList',
28+
resource: 'customers',
29+
payload: {
30+
pagination: { page: 1, perPage: 600 },
31+
sort: { field: 'email', order: 'ASC' },
32+
filter: {},
33+
},
34+
});
35+
36+
const [films, setFilms] = useState([]);
37+
const { data: film } = useQuery({
38+
type: 'getList',
39+
resource: 'films',
40+
payload: {
41+
pagination: { page: 1, perPage: 1000 },
42+
sort: { field: 'title', order: 'ASC' },
43+
filter: {},
44+
},
45+
});
46+
47+
48+
useEffect(() => {
49+
if (film) setFilms(film.map((d) => ({ id: d.title, name: d.title })));
50+
if (customer)
51+
setCustomers(customer.map((d) => ({ id: d.email, name: d.email })));
52+
}, [film, customer]);
53+
2454
return (
2555
<Create {...props} title='Create new Rental' onSuccess={onSuccess}>
2656
<SimpleForm>
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>
57+
<TextInput disabled source='staff_id' defaultValue='1' />
58+
<SelectInput source='customer_email' choices={customers} />
59+
<SelectInput source='film_title' choices={films} />
4560
<SelectInput
4661
source='status'
4762
defaultValue='borrowed'

src/components/RentalEdit.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,14 @@ import {
55
TextInput,
66
DateTimeInput,
77
SelectInput,
8-
ReferenceInput,
98
} from 'react-admin';
109

1110
const RentalEdit = (props) => (
1211
<Edit {...props} title='Edit of Rentals'>
1312
<SimpleForm>
1413
<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>
14+
<TextInput disabled source='film_title' />
15+
<TextInput disabled source='customer_email' />
2416
<DateTimeInput disabled source='rental_date' />
2517

2618
<SelectInput

src/components/RentalList.js

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
DateField,
77
Filter,
88
SearchInput,
9-
ReferenceField,
109
} from 'react-admin';
1110

1211
const RentalFilter = (props) => (
@@ -19,21 +18,9 @@ const RentalList = (props) => (
1918
<List {...props} filters={<RentalFilter />} title='List of Rentals'>
2019
<Datagrid rowClick='edit'>
2120
<TextField source='id' />
22-
<ReferenceField
23-
source='film_id'
24-
reference='films'
25-
link={false}
26-
>
27-
<TextField source='title' />
28-
</ReferenceField>
21+
<TextField source='film_title' />
2922
<TextField source='status' />
30-
<ReferenceField
31-
source='customer_id'
32-
reference='customers'
33-
link={false}
34-
>
35-
<TextField source='email' />
36-
</ReferenceField>
23+
<TextField source='customer_email' />
3724
<DateField source='rental_date' />
3825
<DateField source='return_date' />
3926
</Datagrid>

src/index.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@ import './index.css';
44
import App from './App';
55
import reportWebVitals from './reportWebVitals';
66

7+
// ReactDOM.render(
8+
// <React.StrictMode>
9+
// <App />
10+
// </React.StrictMode>,
11+
// document.getElementById('root')
12+
// );
13+
714
ReactDOM.render(
8-
<React.StrictMode>
9-
<App />
10-
</React.StrictMode>,
11-
document.getElementById('root')
15+
<App />,
16+
document.getElementById('root')
1217
);
1318

1419
// If you want to start measuring performance in your app, pass a function

0 commit comments

Comments
 (0)