fixed modals

This commit is contained in:
Sergey Yarkov 2020-06-13 14:19:17 +03:00
parent 5357e3c0ca
commit 8c3dbfd0d8
7 changed files with 28 additions and 29 deletions

View File

@ -13,7 +13,7 @@ const App = ({ history }) => {
<CssBaseLine /> <CssBaseLine />
<Layout history={history}> <Layout history={history}>
<Switch> <Switch>
<Route history={history} exact path='/category/:slug' component={CategoryContainer} /> <Route history={history} exact path='/category/:id' component={CategoryContainer} />
<Route history={history} exact path='/trash' component={TrashContainer} /> <Route history={history} exact path='/trash' component={TrashContainer} />
<Route history={history} exact path='/' component={TodosContainer} /> <Route history={history} exact path='/' component={TodosContainer} />
<Route path='/404' component={NotFoundContainer} /> <Route path='/404' component={NotFoundContainer} />

View File

@ -10,19 +10,19 @@ const UpdateCategoryModal = ({ isModalOpen, handleCloseModal, selectedCategory,
e.preventDefault() e.preventDefault()
const elements = e.target.elements const elements = e.target.elements
const data = { const data = {
id: elements.title.value, id: selectedCategory.id,
title: elements.title.value
} }
handleCloseModal() handleCloseModal()
console.log('Request on update category:', data) console.log('Request on update category:', data)
} }
console.log(selectedCategory)
const handleFieldChange = e => { const handleFieldChange = e => {
const target = e.target const target = e.target
// setSelectedCategory({ setSelectedCategory({
// id: target.name === 'title' ? target.value : selectedTodo.title, id: selectedCategory.id,
// }) title: target.name === 'title' ? target.value : selectedCategory.title
})
} }
return ( return (
@ -41,7 +41,7 @@ const UpdateCategoryModal = ({ isModalOpen, handleCloseModal, selectedCategory,
placeholder='Название вашей категории' placeholder='Название вашей категории'
variant="outlined" variant="outlined"
className={classes.textField} className={classes.textField}
value={selectedCategory.id} value={selectedCategory.title}
onChange={handleFieldChange} onChange={handleFieldChange}
InputLabelProps={{ InputLabelProps={{
shrink: true, shrink: true,

View File

@ -11,6 +11,7 @@ const UpdateTodoModal = ({ isModalOpen, handleCloseModal, selectedTodo, setSelec
e.preventDefault() e.preventDefault()
const elements = e.target.elements const elements = e.target.elements
const data = { const data = {
id: selectedTodo.id,
title: elements.title.value, title: elements.title.value,
description: elements.description.value, description: elements.description.value,
categoryId: elements.category.value, categoryId: elements.category.value,
@ -23,6 +24,7 @@ const UpdateTodoModal = ({ isModalOpen, handleCloseModal, selectedTodo, setSelec
const handleFieldChange = e => { const handleFieldChange = e => {
const target = e.target const target = e.target
setSelectedTodo({ setSelectedTodo({
id: selectedTodo.id,
title: target.name === 'title' ? target.value : selectedTodo.title, title: target.name === 'title' ? target.value : selectedTodo.title,
description: target.name === 'description' ? target.value : selectedTodo.description, description: target.name === 'description' ? target.value : selectedTodo.description,
category: target.name === 'category' ? target.value : selectedTodo.category, category: target.name === 'category' ? target.value : selectedTodo.category,

View File

@ -91,7 +91,7 @@ const NavContent = ({ history, handleOpenModal }) => {
<List component="div" disablePadding> <List component="div" disablePadding>
<Categories data={categories} history={history} classes={classes} /> <Categories data={categories} history={history} classes={classes} />
<ListItem className={classes.addCategoryItem}> <ListItem className={classes.addCategoryItem}>
<IconButton onClick={() => handleOpenModal()} aria-label="add"> <IconButton onClick={handleOpenModal} aria-label="add">
<AddIcon /> <AddIcon />
</IconButton> </IconButton>
</ListItem> </ListItem>

View File

@ -48,6 +48,7 @@ const Todos = ({ data, fromTrashContainer }) => {
const [isModalOpen, setIsModalOpen] = React.useState(false) const [isModalOpen, setIsModalOpen] = React.useState(false)
const handleOpenModal = todo => { const handleOpenModal = todo => {
setSelectedTodo({ setSelectedTodo({
id: todo._id.$oid,
title: todo.title, title: todo.title,
description: todo.description, description: todo.description,
category: todo.categoryId, category: todo.categoryId,

View File

@ -5,28 +5,24 @@ import Fab from '../../components/Fab/Fab'
import { Grid, Typography } from '@material-ui/core' import { Grid, Typography } from '@material-ui/core'
import todos from '../../db/todos.json' import todos from '../../db/todos.json'
import categories from '../../db/categories.json'
import { useParams } from 'react-router-dom' import { useParams } from 'react-router-dom'
const Category = () => { const Category = () => {
const { slug } = useParams() const findCategoryById = id => categories.find(category => category._id.$oid === id)
const [isModalOpen, setIsModalOpen] = React.useState(false)
const [selectedCategory, setSelectedCategory] = React.useState({ const { id } = useParams()
id: '' const [isModalOpen, setIsModalOpen] = React.useState(false)
}) const [selectedCategory, setSelectedCategory] = React.useState({ id: '', title: '' })
React.useEffect(() => {
setSelectedCategory({ id, title: findCategoryById(id).title })
}, [id]);
const handleOpenModal = () => setIsModalOpen(true)
const handleCloseModal = () => setIsModalOpen(false)
const handleOpenModal = () => {
setSelectedCategory({
id: slug
})
setIsModalOpen(true)
}
const handleCloseModal = () => {
setSelectedCategory({
id: ''
})
setIsModalOpen(false)
}
return ( return (
<> <>
<UpdateCategoryModal isModalOpen={isModalOpen} handleCloseModal={handleCloseModal} selectedCategory={selectedCategory} setSelectedCategory={setSelectedCategory} /> <UpdateCategoryModal isModalOpen={isModalOpen} handleCloseModal={handleCloseModal} selectedCategory={selectedCategory} setSelectedCategory={setSelectedCategory} />

View File

@ -4,7 +4,7 @@ import Todos from '../../components/Todos/Todos'
import CreateTodoModal from '../../components/Modals/Todo/CreateTodoModal' import CreateTodoModal from '../../components/Modals/Todo/CreateTodoModal'
import { Typography, Grid } from '@material-ui/core' import { Typography, Grid } from '@material-ui/core'
import todosData from '../../db/todos.json' import todos from '../../db/todos.json'
const TodosContainer = () => { const TodosContainer = () => {
const [isModalOpen, setIsModalOpen] = React.useState(false) const [isModalOpen, setIsModalOpen] = React.useState(false)
@ -20,7 +20,7 @@ const TodosContainer = () => {
Создавайте, редактируйте или удаляйте ваши повседневные дела. Создавайте, редактируйте или удаляйте ваши повседневные дела.
</Typography> </Typography>
</Grid> </Grid>
<Todos data={todosData} /> <Todos data={todos} />
</Grid> </Grid>
</> </>
) )