Skip to content

Commit 69c1c17

Browse files
author
Nika Kolesnikova
committed
Merge branch 'nk-add-items-from-list-page'
2 parents 6e10f2b + 73eedc4 commit 69c1c17

File tree

2 files changed

+39
-11
lines changed

2 files changed

+39
-11
lines changed

src/views/List.jsx

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { useState } from 'react';
22
import { useEnsureListPath, useUrgency } from '../hooks';
33
import { getUrgency } from '../utils/urgencyUtils';
4-
import { List as UnorderedList } from '@mui/material';
4+
import { List as UnorderedList, Box, Grid } from '@mui/material';
55
import { ListItem, AddItems, TextInputElement } from '../components';
66

77
// React.memo is needed to prevent unnecessary re-renders of the List component
@@ -40,17 +40,31 @@ export const List = React.memo(function List({ data, listPath }) {
4040
) : (
4141
<>
4242
<p>{listName}</p>
43+
<Box sx={{ flexGrow: 1 }}>
44+
<Grid
45+
container
46+
spacing={8}
47+
columns={16}
48+
justifyContent="space-between"
49+
>
50+
<Grid item size={{ xs: 2, sm: 4, md: 4 }}>
51+
<AddItems items={data} />
52+
</Grid>
53+
<Grid item size={{ xs: 2, sm: 4, md: 4 }}>
54+
<form onSubmit={(event) => event.preventDefault()}>
55+
<TextInputElement
56+
id="search-item"
57+
type="search"
58+
placeholder="Search Item..."
59+
required={true}
60+
onChange={handleTextChange}
61+
label="Search Item:"
62+
/>
63+
</form>
64+
</Grid>
65+
</Grid>
66+
</Box>
4367

44-
<form onSubmit={(event) => event.preventDefault()}>
45-
<TextInputElement
46-
id="search-item"
47-
type="search"
48-
placeholder="Search Item..."
49-
required={true}
50-
onChange={handleTextChange}
51-
label="Search Item:"
52-
/>
53-
</form>
5468
<UnorderedList>
5569
{filteredItems.map((item) => {
5670
const itemUrgencyStatus = getUrgency(item.name, urgencyObject);

tests/List.test.jsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,4 +108,18 @@ describe('List Component', () => {
108108
'It seems like you landed here without first creating a list or selecting an existing one. Please select or create a new list first. Redirecting to Home.',
109109
);
110110
});
111+
112+
test('shows AddItems component with existing items', () => {
113+
render(
114+
<MemoryRouter>
115+
<List data={mockShoppingListData} listPath={'/groceries'} />
116+
</MemoryRouter>,
117+
);
118+
119+
expect(screen.getByLabelText('Item Name:')).toBeInTheDocument();
120+
expect(screen.getByLabelText('Soon')).toBeInTheDocument();
121+
expect(screen.getByLabelText('Kind of soon')).toBeInTheDocument();
122+
expect(screen.getByLabelText('Not soon')).toBeInTheDocument();
123+
expect(screen.getByText('Submit')).toBeInTheDocument();
124+
});
111125
});

0 commit comments

Comments
 (0)