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 ( <> {/*

Kategorija

{selectionLevelFilter.map((process) => ( } label={process.name} /> ))}

Datum kreiranja

setFromDate(e.target.value)} value={fromDate} /> setToDate(e.target.value)} value={toDate} />
*/}
plus

Dodavanje

| Šablon
close
setAddPatternTitle(e.target.value)} value={addPatternTitle} />
plus

Uređivanje

| Šablon
close
setEditPattern((oldState) => ({ ...oldState, title: e.target.value, })) } value={editPattern ? editPattern.title : ""} />

Napravljeni Šabloni

setIsShownEdit((oldState) => !oldState)} className={`c-btn--primary-outlined editEnableBtn c-btn userPageBtn ${ isShownEdit && "pattern-header-active-button" }`} > {!matches && "Režim uređivanja"} setOpenFilterDrawer(true)} />
{!patterns && (

Loading...

)} {patterns && patterns.length === 0 && (

Trenutno nema dodatih sablona

)} {patterns && patterns.length > 0 && patterns.map((pattern) => (
history.push( PATTERN_DETAILS_PAGE.replace(":id", pattern.id) ) } />
))}
setOpenAddPatternModal(true)} > Dodaj Šablon
); }; PatternsPage.propTypes = { history: PropTypes.any, }; export default PatternsPage;