source: sources/client/src/components/admin/ParkingZones/index.js@ e8b1076

Last change on this file since e8b1076 was 3a58bd6, checked in by Viktor <39170279+Tasevski2@…>, 3 years ago

Added Frontend

  • Property mode set to 100644
File size: 2.8 KB
Line 
1import { useState } from 'react';
2import {
3 FiltersWrapper,
4 SortingArrowsWrapper,
5 SortByTitle,
6 ArrowDown,
7 ArrowUp,
8 ClearSortIcon,
9 ParkingZonesWrapper,
10 AddParkingZoneCard,
11 AddIcon,
12 AddItem,
13 ParkingName,
14 DividerUnderFilters,
15} from './styles';
16
17import ParkingZoneCard from './ParkingZoneCard';
18
19import { roles } from '../../../config/enums';
20
21import { parkingZones } from './mockData';
22
23const sortDownUp = (a, b) => {
24 const aPercent = a.takenParkingSpaces / a.parkingSpaces;
25 const bPercent = b.takenParkingSpaces / b.parkingSpaces;
26 if (aPercent > bPercent) {
27 return 1;
28 } else {
29 if (aPercent < bPercent) {
30 return -1;
31 }
32 return a.zoneName - b.zoneName;
33 }
34};
35
36const sortUpDown = (a, b) => {
37 const aPercent = a.takenParkingSpaces / a.parkingSpaces;
38 const bPercent = b.takenParkingSpaces / b.parkingSpaces;
39 if (aPercent > bPercent) {
40 return -1;
41 } else {
42 if (aPercent < bPercent) {
43 return 1;
44 }
45 return a.zoneName - b.zoneName;
46 }
47};
48
49const sortByName = (a, b) => {
50 if (a.zoneName >= b.zoneName) {
51 return 1;
52 }
53 return -1;
54};
55
56const ParkingZones = () => {
57 const [isArrowUpUp, setIsArrowUpUp] = useState(false);
58 const [isArrowDownUp, setIsArrowDownUp] = useState(false);
59
60 const user = {
61 role: 'ROLE_ADMIN',
62 };
63 const sortFunc = isArrowUpUp
64 ? sortDownUp
65 : isArrowDownUp
66 ? sortUpDown
67 : sortByName;
68
69 return (
70 <>
71 <FiltersWrapper>
72 <ParkingName>Паркинг - Дебар Маало</ParkingName>
73 <SortingArrowsWrapper>
74 <SortByTitle>Сортирај:</SortByTitle>
75 <ArrowUp
76 onClick={() => {
77 if (!isArrowUpUp) {
78 setIsArrowUpUp(true);
79 setIsArrowDownUp(false);
80 }
81 }}
82 selected={isArrowUpUp}
83 />
84 <ArrowDown
85 onClick={() => {
86 if (!isArrowDownUp) {
87 setIsArrowDownUp(true);
88 setIsArrowUpUp(false);
89 }
90 }}
91 selected={isArrowDownUp}
92 />
93 {isArrowUpUp || isArrowDownUp ? (
94 <ClearSortIcon
95 onClick={() => {
96 setIsArrowUpUp(false);
97 setIsArrowDownUp(false);
98 }}
99 />
100 ) : null}
101 </SortingArrowsWrapper>
102 </FiltersWrapper>
103
104 <DividerUnderFilters />
105
106 <ParkingZonesWrapper container spacing={{ xs: 3, md: 5 }}>
107 {user.role === roles.admin ? (
108 <AddParkingZoneCard item xs={11} sm={6} md={3}>
109 <AddItem>
110 <AddIcon />
111 </AddItem>
112 </AddParkingZoneCard>
113 ) : null}
114
115 {parkingZones.sort(sortFunc).map((parkingZone) => (
116 <ParkingZoneCard key={parkingZone.id} info={parkingZone} />
117 ))}
118 </ParkingZonesWrapper>
119 </>
120 );
121};
122
123export default ParkingZones;
Note: See TracBrowser for help on using the repository browser.