source: frontend/src/Components/Resources/ResourcesTab.js@ ac19a0c

Last change on this file since ac19a0c was ac19a0c, checked in by darsov2 <62809499+darsov2@…>, 9 months ago

authContext impl, admin panel impl, search bar fixes, reservations listings impl

  • Property mode set to 100644
File size: 4.2 KB
Line 
1import React, { useTransition } from "react";
2import { Container, Col, Row, Image, Nav, Tab } from "react-bootstrap";
3import { useState } from "react";
4import { FaTaxi, FaHotel } from "react-icons/fa";
5import { MdRestaurant } from "react-icons/md";
6import AddNew from "./AddNew";
7import ResourceListing from "./ResourceListing";
8import { Link } from "react-router-dom";
9import useGet from "../Hooks/useGet";
10
11function ResourcesTab(props) {
12 const [activeTab, setActiveTab] = useState(props.tab);
13 const userId = JSON.parse(localStorage.getItem("user")).userId;
14 const { data, setData, isLoading, getData, setChanged } = useGet(`${props.tab}/user/${userId}`);
15
16 const handleSelect = (eventKey) => {
17 setActiveTab(eventKey);
18 props.refresh(eventKey);
19 };
20
21 return (
22 <Container className="rounded-5">
23 <Tab.Container
24 activeKey={activeTab}
25 onSelect={handleSelect}
26 className="bg-dark rounded-5"
27 >
28 <Nav
29 fill
30 variant="tabs"
31 className="bg-body rounded-top-5"
32 activeKey="/hotel"
33 id="tab_item"
34 >
35 <Nav.Item className="tab_item rounded-5">
36 <Nav.Link href="/resources/hotel" className="text-left rounded-5">
37 <span className="ikona">
38 <FaHotel
39 color="#159895"
40 style={{ lineHeight: "100em" }}
41 size={"1.5em"}
42 className="mx-3"
43 />
44 </span>
45 <span className="ikona">Сместувања</span>
46 </Nav.Link>
47 </Nav.Item>
48 <Nav.Item className="tab_item">
49 <Nav.Link href="/resources/restaurant">
50 <span className="ikona">
51 <MdRestaurant color="#159895" size={"1.5em"} className="mx-3" />
52 </span>
53 <span className="ikona">Ресторани</span>
54 </Nav.Link>
55 </Nav.Item>
56 <Nav.Item className="tab_item rounded-5">
57 <Nav.Link
58 href="/resources/transport"
59 className="text-left rounded-5"
60 >
61 <span className="ikona">
62 <FaTaxi color="#159895" size={"1.5em"} className="mx-3" />
63 </span>
64 <span className="ikona">Превоз</span>
65 </Nav.Link>
66 </Nav.Item>
67 </Nav>
68
69 <Tab.Content className="py-5 px-3 border rounded-bottom-5 bg-light">
70 <Tab.Pane eventKey="/hotel" key="hotelPane">
71 {props.tab == "/hotel" && !isLoading && data != null &&
72 data.map((hotel) => {
73 return (
74 <Link style={{textDecoration: "none"}} key={hotel.hotelId} to={"/resources/hotel/" + hotel.hotelId}>
75 <ResourceListing
76 key={hotel.hotelId}
77 id={hotel.hotelId}
78 type="hotel"
79 data={hotel}
80 />
81 </Link>
82 );
83 })}
84 <AddNew type="hotel" refresh={setChanged} />
85 </Tab.Pane>
86 <Tab.Pane eventKey="/restaurant" key="restaurantPane">
87 {props.tab == "/restaurant" && !isLoading && data != null &&
88 data.map((restaurant) => {
89 return (
90 <ResourceListing
91 key={restaurant.restaurantID}
92 type="restaurant"
93 data={restaurant}
94 />);
95 })}
96 <AddNew type="restaurant" refresh={setChanged}/>
97 </Tab.Pane>
98 <Tab.Pane eventKey="/transport" key="transportPane">
99 {props.tab == "/transport" && !isLoading && data.length > 0 &&
100 data.map((transport) => {
101 return (
102 <ResourceListing
103 key={transport.transportId}
104 id={transport.transportId}
105 type="transport"
106 data={transport}
107 />
108 );
109 })}
110 <AddNew type="transport" refresh={setChanged}/>
111 </Tab.Pane>
112 </Tab.Content>
113 </Tab.Container>
114 </Container>
115 );
116}
117
118export default ResourcesTab;
Note: See TracBrowser for help on using the repository browser.