import React, { useState, useEffect } from "react";
import PropTypes from "prop-types";
import FilterButton from "../../components/Button/FilterButton";
import { useTheme } from "@mui/system";
import { IconButton, useMediaQuery } from "@mui/material";
import userPageBtnIcon from "../../assets/images/userPageBtnIcon.png";
import PatternCard from "../../components/Patterns/PatternCard";
import { useDispatch, useSelector } from "react-redux";
import { setPatternsReq } from "../../store/actions/patterns/patternsActions";
import { selectPatterns } from "../../store/selectors/patternsSelectors";
import { selectProcesses } from "../../store/selectors/processesSelectors";
import { PATTERN_DETAILS_PAGE } from "../../constants/pages";
import CustomModal from "../../components/UI/CustomModal";
import plusIcon from "../../assets/images/plus.png";
import xIcon from "../../assets/images/x.png";
import { setProcessesReq } from "../../store/actions/processes/processesAction";
import { createPatternReq } from "../../store/actions/createPattern/createPatternActions";
import { updatePatternReq } from "../../store/actions/updatePattern/updatePatternActions";
import PatternFilters from "../../components/Patterns/PatternFilters";
const PatternsPage = ({ history }) => {
const theme = useTheme();
const matches = useMediaQuery(theme.breakpoints.down("sm"));
const [isShownEdit, setIsShownEdit] = useState(false);
const [openFilterDrawer, setOpenFilterDrawer] = useState(false);
const [openAddPatternModal, setOpenAddPatternModal] = useState(false);
const [openEditPatternModal, setOpenEditPatternModal] = useState(false);
const [editPattern, setEditPattern] = useState(null);
const [addPatternTitle, setAddPatternTitle] = useState("");
const [addPatternCategory, setAddPatternCategory] = useState(1);
const [addPatternMessage, setAddPatternMessage] = useState("");
const [selectionLevelFilter, setSelectionLevelFilter] = useState([]);
const patterns = useSelector(selectPatterns);
const processes = useSelector(selectProcesses);
const dispatch = useDispatch();
useEffect(() => {
dispatch(setPatternsReq());
dispatch(setProcessesReq());
}, []);
useEffect(() => {
if (processes.length > 0) {
setAddPatternCategory(processes[0].id);
const tmpSelectionLevelFilter = processes.map((level) => ({
...level,
isChecked: false,
}));
setSelectionLevelFilter([...tmpSelectionLevelFilter]);
}
}, [processes]);
const closeAddPatternModalHandler = () => {
setOpenAddPatternModal(false);
};
const openEditModalHandler = (pattern) => {
setEditPattern({
id: pattern.id,
title: pattern.title,
createdAt: pattern.createdAt,
selectionLevelId: pattern.selectionLevel.id,
message: pattern.message,
});
setOpenEditPatternModal(true);
};
const closeEditPatternModalHandler = () => {
setEditPattern(null);
setOpenEditPatternModal(false);
};
const closeFilterDrawerHandler = () => {
setOpenFilterDrawer(false);
};
const submitAddPatternHandler = (e) => {
e.preventDefault();
if (addPatternTitle.length === 0 || addPatternMessage.length === 0) {
return;
}
dispatch(
createPatternReq({
title: addPatternTitle,
selectionLevelId: addPatternCategory,
message: addPatternMessage,
})
);
setOpenAddPatternModal(false);
setAddPatternTitle("");
setAddPatternCategory(processes[0].id);
setAddPatternMessage("");
};
const submitEditPatternHandler = (e) => {
e.preventDefault();
if (editPattern.title.length === 0 || editPattern.message.length === 0) {
return;
}
dispatch(updatePatternReq(editPattern));
setOpenEditPatternModal(false);
};
const handleFilterCheckboxes = (id) => {
const tmpSelectionLevelFilter = selectionLevelFilter.map((level) =>
level.id === id ? { ...level, isChecked: !level.isChecked } : level
);
setSelectionLevelFilter(tmpSelectionLevelFilter);
};
return (
<>
Dodavanje Uređivanje
Loading...
Trenutno nema dodatih sablona