mirror of
https://github.com/sergeyyarkov/todo-app.git
synced 2026-10-11 10:29:14 +03:00
fixed modals
This commit is contained in:
parent
5357e3c0ca
commit
8c3dbfd0d8
@ -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} />
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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 { id } = useParams()
|
||||||
const [isModalOpen, setIsModalOpen] = React.useState(false)
|
const [isModalOpen, setIsModalOpen] = React.useState(false)
|
||||||
const [selectedCategory, setSelectedCategory] = React.useState({
|
const [selectedCategory, setSelectedCategory] = React.useState({ id: '', title: '' })
|
||||||
id: ''
|
|
||||||
})
|
React.useEffect(() => {
|
||||||
|
setSelectedCategory({ id, title: findCategoryById(id).title })
|
||||||
const handleOpenModal = () => {
|
}, [id]);
|
||||||
setSelectedCategory({
|
|
||||||
id: slug
|
const handleOpenModal = () => setIsModalOpen(true)
|
||||||
})
|
const handleCloseModal = () => setIsModalOpen(false)
|
||||||
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} />
|
||||||
@ -35,7 +31,7 @@ const Category = () => {
|
|||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
<Typography>
|
<Typography>
|
||||||
Сортируйте свои повседневные дела используя категории.
|
Сортируйте свои повседневные дела используя категории.
|
||||||
</Typography>
|
</Typography>
|
||||||
</Grid>
|
</Grid>
|
||||||
{/* Здесь берем значение slug из query и передаем полученные данные в prop data !!!! */}
|
{/* Здесь берем значение slug из query и передаем полученные данные в prop data !!!! */}
|
||||||
<Todos data={todos} />
|
<Todos data={todos} />
|
||||||
|
|||||||
@ -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>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user