diff --git a/kivi-cars/src/components/Button/StandardBtn.js b/kivi-cars/src/components/Button/StandardBtn.js index c9a664b..72f024e 100644 --- a/kivi-cars/src/components/Button/StandardBtn.js +++ b/kivi-cars/src/components/Button/StandardBtn.js @@ -8,9 +8,7 @@ const StandardBtn = (props) => { const clickHandler = ( e ) => { setData( prevState => ({ ...prevState, - "Category":{ - [e.target.name]: e.target.value - } + "Kategorija": e.target.value })) } diff --git a/kivi-cars/src/components/Button/TimeBtn.js b/kivi-cars/src/components/Button/TimeBtn.js new file mode 100644 index 0000000..ff9544f --- /dev/null +++ b/kivi-cars/src/components/Button/TimeBtn.js @@ -0,0 +1,23 @@ +import React from 'react' +import './button.css' + +const TimeBtn = (props) => { + + const {data, setData, filter} = props.data + + const clickHandler = ( e ) => { + setData( prevState => ({ + ...prevState, + [e.target.name]: e.target.value + + })) + } + + return ( +
+ +
+ ) +} + +export default TimeBtn \ No newline at end of file diff --git a/kivi-cars/src/components/Button/button.css b/kivi-cars/src/components/Button/button.css index 7a3a3da..2fbaccb 100644 --- a/kivi-cars/src/components/Button/button.css +++ b/kivi-cars/src/components/Button/button.css @@ -12,6 +12,15 @@ border: #02ADBA; } +.active { + width: 300px; + background-color: #fff; + font-size: 25px; + padding: 7px 20px 7px 20px; + color: #02ADBA; + border: #02ADBA; +} + .standardBtn:hover { background-color:#3eced8 ; color: white; diff --git a/kivi-cars/src/components/Filters/Advanced-filters.js b/kivi-cars/src/components/Filters/Advanced-filters.js index 324f955..58ef741 100644 --- a/kivi-cars/src/components/Filters/Advanced-filters.js +++ b/kivi-cars/src/components/Filters/Advanced-filters.js @@ -1,55 +1,34 @@ -import React from "react"; +import {useState} from "react"; import "./Filters.css"; import Filter from "./Filter/Filter"; import TitleBtn from "../Button/TitleBtn"; -import {Link} from 'react-router-dom'; -import Color from '../../data/color'; -import AirCondition from "../../data/air-condition"; -import Seats from "../../data/seats"; -import Sensors from "../../data/sensors"; -import Gearbox from "../../data/gearbox"; -import Lights from "../../data/lights"; +import { Link } from "react-router-dom"; import Checkbox from "./Filter/Checkbox"; import CheckBox from "../../data/checkbox"; - const AdvancedFilters = (props) => { + const { data, setData } = props.data.data; + const [gradovi, setGradovi] = useState(data.Lokacija.gradovi) + let index = 0; - const {filters, setFilters} = props.data - const data1 = [Color, AirCondition, Seats, Gearbox, Sensors, Lights] - let index = 0 + return ( +
+
+ {CheckBox.map((item) => { + index += 1; + return ( + + ); + })} +
+
+ + + +
+
+ ); +}; - return( -
-
- { - data1.map(item => { - index += 1; - return( - - ) - }) - } -
-
- { - CheckBox.map(item => { - index += 1; - return( - - ) - }) - } -
- -
- - - -
-
- ) -} - -export default AdvancedFilters \ No newline at end of file +export default AdvancedFilters; diff --git a/kivi-cars/src/components/Filters/Filter/Checkbox.js b/kivi-cars/src/components/Filters/Filter/Checkbox.js index ec91239..6d413e7 100644 --- a/kivi-cars/src/components/Filters/Filter/Checkbox.js +++ b/kivi-cars/src/components/Filters/Filter/Checkbox.js @@ -1,26 +1,38 @@ import React, { useState } from "react"; -import './css/Checkbox.css'; +import "./css/Checkbox.css"; -const Checkbox = (props) => { +const Checkbox = ({ objekat, item }) => { + const { data, setData } = objekat; + const [isChecked, setIsChecked] = useState(data.Filteri[`${item.value}`]); + const changeHandler = (event) => { + setData((prevData) => ({ + ...prevData, + Filteri: { + ...prevData.Filteri, + [event.target.name]: !isChecked, + }, + })); + }; - const {setFilters} = props.data - const [isChecked, setIsChecked] = useState(true) + return ( +
+ + { + changeHandler(e); + setIsChecked(!isChecked); + }} + /> +
+ ); +}; - - const changeHandler = ( event ) => { - setFilters(prevData => ({ - ...prevData, - [event.target.name]: isChecked - })) - } - - return( -
- - {changeHandler(e); setIsChecked(!isChecked)}}/> -
- ) -} - -export default Checkbox; \ No newline at end of file +export default Checkbox; diff --git a/kivi-cars/src/components/Filters/Filter/DoubleFilter.js b/kivi-cars/src/components/Filters/Filter/DoubleFilter.js index 8686107..192e691 100644 --- a/kivi-cars/src/components/Filters/Filter/DoubleFilter.js +++ b/kivi-cars/src/components/Filters/Filter/DoubleFilter.js @@ -1,40 +1,62 @@ -import React, {useEffect, useState} from "react"; +import React, { useEffect, useState } from "react"; import "./css/DoubleFilter.css"; const DoubleFilter = (props) => { + const { data, setData } = props.data; + const { title, fields, VName } = props.item; - const {setFilters} = props.data - const [doubleFilterData, setDoubleFilterData] = useState({}) + const changeHandler = (e) => { + setData((prevData) => ({ + ...prevData, + Filteri: { + ...prevData.Filteri, + [VName]: { + ...prevData.Filteri[`${VName}`], + [e.target.name]: e.target.value, + }, + }, + })); + }; - const changeHandler = ( e ) => { - setDoubleFilterData(prevData => ({ - ...prevData, - [e.target.name]: e.target.value - })) - } - - useEffect(() => { - setFilters(prevData => ({ - ...prevData, - [props.title]: doubleFilterData - })) - }, [doubleFilterData]) - - return ( -
- -
-
- - changeHandler(e)}/> -
-
- - changeHandler(e)}/> -
-
+ return ( +
+ +
+
+ + changeHandler(e)} + />
- ) -} +
+ + changeHandler(e)} + /> +
+
+
+ ); +}; -export default DoubleFilter; \ No newline at end of file +export default DoubleFilter; diff --git a/kivi-cars/src/components/Filters/Filter/Filter.js b/kivi-cars/src/components/Filters/Filter/Filter.js index c1e9cce..76d4b82 100644 --- a/kivi-cars/src/components/Filters/Filter/Filter.js +++ b/kivi-cars/src/components/Filters/Filter/Filter.js @@ -1,30 +1,42 @@ import React, { useEffect, useState } from "react"; -import './css/Filter.css'; +import "./css/Filter.css"; const Filter = (props) => { + const { data, setData } = props.data; + const { ime, VName, tipovi } = props.item; - const {filters, setFilters} = props.data - const [filtersData, setFiltersData] = useState({}) + const changeHandler = (e) => { + setData((prevData) => ({ + ...prevData, + Filteri: { + ...prevData.Filteri, + [e.target.name]: e.target.value, + }, + })); + }; - const changeHandler = ( e ) => { - setFilters( prevData => ({ - ...prevData, - [e.target.name]: e.target.value - })) - } + return ( +
+ + +
+ ); +}; - return( -
- - -
- ) -} - -export default Filter; \ No newline at end of file +export default Filter; diff --git a/kivi-cars/src/components/Filters/Filter/LocationCheckbox.js b/kivi-cars/src/components/Filters/Filter/LocationCheckbox.js index 2535579..c2969d8 100644 --- a/kivi-cars/src/components/Filters/Filter/LocationCheckbox.js +++ b/kivi-cars/src/components/Filters/Filter/LocationCheckbox.js @@ -1,28 +1,96 @@ -import React, { useEffect, useState } from "react"; -import './css/LocationCheckbox.css'; +import { React, useEffect, useState } from "react"; +import "./css/LocationCheckbox.css"; const LocationCheckbox = (props) => { + const { data, setData } = props.data; + const [checked, setChecked] = useState(false); + const [value, setValue] = useState(false); - const {setCheckboxStatus} = props.data; - const [checked, setChecked] = useState(true) + // useEffect(() => { + // data.Lokacija.gradovi.forEach(grad => { + // if(grad === props.title){ + // return setValue(true) + // }return setValue(false) + // }) + // }, [data.Lokacija.gradovi]) - const changeHandler = (e) => { - setCheckboxStatus(prevStatus => ({ - ...prevStatus, - [e.target.name]: checked - })) + // na pocetku dobijem prazan niz, ukoliko oznaci jedan grad, treba ga dodati u niz + // prije svakog dodavanja treba provjeriti da li je taj grad u nizu, ukoliko nije treba ga dodati + // brisanje gradova iz niza samo ukoliko je taj grad u nizu + + const dodajGrad = (e) => { + console.log("dodajem", e.target.name); + if (!data.Lokacija.gradovi[`${e.target.name}`]) { + setData((prevData) => ({ + ...prevData, + Lokacija: { + ...prevData.Lokacija, + gradovi: [...prevData.Lokacija.gradovi, e.target.name], + }, + })); } + }; + const obrisiGrad = (e) => { + console.log("brisem", e.target.name); + setData((prevData) => ({ + ...prevData, + Lokacija: { + ...prevData.Lokacija, + gradovi: [ + ...prevData.Lokacija.gradovi.splice( + data.Lokacija.gradovi.indexOf(e.target.name), + 1 + ), + ], + }, + })); + }; - return ( -
- - { - setChecked(!checked) - changeHandler(e) - }}/> -
- ) -} + const clickHandler = (e) => { + if (checked) { + return obrisiGrad(e); + } + dodajGrad(e); + }; -export default LocationCheckbox; \ No newline at end of file + // const isChecked = () => { + // if(data.Lokacija.gradovi[0]){ + // console.log("true") + // return true + // } return false + // } + + // const checkHandler = (item) => { + // data.Lokacija.gradovi.map( grad => { + // if(grad === item){ + // return false + // } return true + // }) + // } + + // popraviti bug koji ima (checkboxi koji su oznaceni, + // nakon ponovnog prikaza komponente se ne prikazuju) + // nakon promjene kantona gradovi ostaju + + return ( +
+ + { + clickHandler(e); + setChecked(!checked); + }} + /> +
+ ); +}; + +export default LocationCheckbox; diff --git a/kivi-cars/src/components/Filters/Standard-filters.js b/kivi-cars/src/components/Filters/Standard-filters.js index fd4d4f2..f369c6d 100644 --- a/kivi-cars/src/components/Filters/Standard-filters.js +++ b/kivi-cars/src/components/Filters/Standard-filters.js @@ -1,107 +1,109 @@ import React, { useEffect, useState } from "react"; -import {Link} from 'react-router-dom'; +import { Link } from "react-router-dom"; import "./Filters.css"; import Filter from "./Filter/Filter"; import DoubleFilter from "./Filter/DoubleFilter"; import TitleBtn from "../Button/TitleBtn"; import Cars from "../../data/cars-brands"; import Trucks from "../../data/trucks-brands"; -import Motors from "../../data/motors-brands" +import Motors from "../../data/motors-brands"; import Cubes from "../../data/cubes"; import Type from "../../data/type"; import Fuel from "../../data/fuel"; import Transmission from "../../data/transmission"; -import Drive from "../../data/drive"; import Condition from "../../data/condition"; -import Doors from "../../data/doors"; import Year from "../../data/year"; import Price from "../../data/price"; import HorsePower from "../../data/horsepower"; import Kilowats from "../../data/kilowats"; import Kilometers from "../../data/kilometers"; +import Color from "../../data/color"; +import AirCondition from "../../data/air-condition"; +import Drive from "../../data/drive"; +import Doors from "../../data/doors"; +import Sensors from "../../data/sensors"; +import Gearbox from "../../data/gearbox"; const StandardFilters = (props) => { + const { data, setData } = props.data.data; + const [brandIndex, setBrandIndex] = useState(0); + const [model, showModel] = useState(true); + let index = 0; + let brands; - const {data, filters, setFilters} = props.data; - const [brandIndex, setBrandIndex] = useState(0); - const [model, showModel] = useState(true); - let index = 0; - let brands; + // if(data.Category.Vozilo === "Auto"){ + // showModel(true) + // return + // }) - // if(data.Category.Vozilo === "Auto"){ - // showModel(true) - // return - // }) + // }else if(data.Category.Vozilo === "Motor"){ + // showModel(false) + // return brands = Motors.map(brand => { + // return brand.brand + // }) + // }else if(data.Category.Vozilo === "Teretno vozilo"){ + // return brands = Trucks.map(brand => { + // return brand.brand + // }) + // } - // }else if(data.Category.Vozilo === "Motor"){ - // showModel(false) - // return brands = Motors.map(brand => { - // return brand.brand - // }) - // }else if(data.Category.Vozilo === "Teretno vozilo"){ - // return brands = Trucks.map(brand => { - // return brand.brand - // }) - // } + brands = Cars.map((brand) => { + return brand.brand; + }); - brands = Cars.map(brand => { - return brand.brand}) + useEffect(() => { + // console.log(data, setData) + if (data.Filteri.Brend !== "") + setBrandIndex(brands.indexOf(data.Filteri.Brend)); + }, [data]); + const models = Cars[brandIndex].models; - useEffect(() => { - if(filters.Marka)setBrandIndex(brands.indexOf(filters.Marka)) - }, [filters]) + const Brands = { + ime: "Marka", + VName: "Brend", + tipovi: brands, + }; - const models = Cars[brandIndex].models - + const Models = { + ime: "Model", + VName: "Model", + tipovi: models, + }; - const Brands = { - "ime": "Marka", - "tipovi": brands - } + const data2 = [Price, Year, Kilometers, Cubes, HorsePower, Kilowats]; + const data1 = [Type, Condition, Transmission, Fuel, Drive, Doors, Color, AirCondition, Gearbox, Sensors]; - const Models = { - "ime": "Model", - "tipovi": models - } + return ( +
+ + {model && } - const data1 = [Transmission, Drive, Condition, Doors] - const data2 = [Price, Year, Kilometers, Cubes, HorsePower, Kilowats] - const data3 = [Fuel, Type] + {data1.map((item) => { + index += 1; + return ; + })} - return( -
- - {model ? (): null} + {data2.map((item) => { + index += 1; + return ( + + ); + })} - {data3.map(item => { - index += 1; - return( - - ) - })} +
+ + + +
+
+ ); +}; - {data2.map(item => { - index += 1; - return( - - ) - })} - - {data1.map(item => { - index += 1; - return( - - ) - })} - -
- - - -
-
- ) -} - -export default StandardFilters \ No newline at end of file +export default StandardFilters; diff --git a/kivi-cars/src/components/FiltersNavbar/FiltersNav.css b/kivi-cars/src/components/FiltersNavbar/FiltersNav.css index 0adfff3..ee18bd6 100644 --- a/kivi-cars/src/components/FiltersNavbar/FiltersNav.css +++ b/kivi-cars/src/components/FiltersNavbar/FiltersNav.css @@ -1,55 +1,54 @@ -*{ - margin: 0; - padding: 0; +* { + margin: 0; + padding: 0; } /* color:#02adba */ .links-container ul li { - display: inline-block; + display: inline-block; } .active { - border-bottom: 3px solid #02adba; + border-bottom: 3px solid #02adba; } -.links-container{ - background-color: #fff; - position: sticky; - top: 0; +.links-container { + background-color: #fff; + position: sticky; + top: 0; } -.filters-links{ - display: flex; - justify-content: space-around; - padding: 1em; - box-sizing: border-box; - text-align: center; +.filters-links { + display: flex; + justify-content: space-around; + padding: 1em; + box-sizing: border-box; + text-align: center; } -.filters-link{ - padding: 0.5em 2.5em; - white-space: none; - flex-grow: 1; - cursor: pointer; +.filters-link { + padding: 0.5em 2.5em; + white-space: none; + flex-grow: 1; + cursor: pointer; } -@media only screen and (min-width: 541px){ - .filters-link { - line-height: 54px; - font-size: 26px; - } +@media only screen and (min-width: 541px) { + .filters-link { + line-height: 54px; + font-size: 26px; + } } -@media only screen and (min-width: 921px){ - .filters-link { - line-height: 54px; - font-size: 24px; +@media only screen and (min-width: 921px) { + .filters-link { + line-height: 54px; + font-size: 24px; + } - } - - .filters-links { - width: 90%; - margin: auto; - } -} \ No newline at end of file + .filters-links { + width: 90%; + margin: auto; + } +} diff --git a/kivi-cars/src/components/Location/LocationFilter.js b/kivi-cars/src/components/Location/LocationFilter.js index 1695769..a0dee34 100644 --- a/kivi-cars/src/components/Location/LocationFilter.js +++ b/kivi-cars/src/components/Location/LocationFilter.js @@ -4,20 +4,23 @@ import Location from "../../data/location"; const LocationFilter = (props) => { - const {setLocationData} = props.data; + const {data, setData} = props.data; const clickHandler = (e) => { - setLocationData( prevData => ( { - ...prevData, + setData( prevData => ({ + ...prevData, + Lokacija: { + ...prevData.Lokacija, "kanton": e.target.value - })) + } + })) } return (
- clickHandler(e) }> {Location.entiteti[0].kantoni.map((kanton, i) => { diff --git a/kivi-cars/src/containers/App.js b/kivi-cars/src/containers/App.js index 75deea6..a375ed2 100644 --- a/kivi-cars/src/containers/App.js +++ b/kivi-cars/src/containers/App.js @@ -1,41 +1,146 @@ -import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; -import './css/App.css'; -import { React, useEffect, useState } from 'react'; -import CategoryPage from './CategoryPage'; -import LandingPage from './LandingPage'; -import FiltersPage from './FiltersPage'; -import LocationPage from './LocationPage'; -import EmailPage from './EmailPage'; -import CongratsPage from './CongratsPage'; -import LinkR from '../data/routes'; - +import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; +import "./css/App.css"; +import { React, useEffect, useState } from "react"; +import CategoryPage from "./CategoryPage"; +import LandingPage from "./LandingPage"; +import FiltersPage from "./FiltersPage"; +import LocationPage from "./LocationPage"; +import EmailPage from "./EmailPage"; +import CongratsPage from "./CongratsPage"; +import LinkR from "../data/routes"; function App() { - // const info = 'Dobrodosli na stranicu kivi!' - const [data, setData] = useState({}) + const [data, setData] = useState({ + Kategorija: "", + Email: "", + NapredniFilteri: false, + Filteri: { + Brend: "", + Model: "", + ABS: false, + Airbag: false, + Alarm: false, + AutoKuka: false, + CentralnaBrava: false, + DaljinskoZakljucavanje: false, + ESP: false, + ElektricniPodizaciStakala: false, + ElektricniRetrovizori: false, + GrijanjeSjedista: false, + HladjenjeSjedista: false, + ISOFIX: false, + KomandeNaVolanu: false, + Koza: false, + LED: false, + Laser: false, + Xenon: false, + MasaznaSjedista: false, + MemorijaSjedista: false, + Metalik: false, + NaslonZaRuku: false, + Navigacija: false, + ParkingAssistent: false, + Panorama: false, + PosjedujeKlimu: false, + Registrovan: false, + SenzorMrtvogUgla: false, + ServisnaKnjiga: false, + ServoVolan: false, + Siber: false, + StartStop: false, + Tempomat: false, + Turbo: false, + RoloZavjese: false, + DPFFAP: false, + Stanje: "", + Gorivo: "", + BrojVrata: "", + TipVozila: "", + Pogon: "", + EmisioniStandard: "", + VelicinaFelgi: "", + Transmisija: "", + BrojStepenihPrijenosa: "", + Boja: "", + TipKlime: "", + ParkingSenzori: "", + Cijena: { + Od: "", + Do: "", + }, + Godiste: { + Od: "", + Do: "", + }, + Kilometraza: { + Od: "", + Do: "", + }, + Kilovata: { + Od: "", + Do: "", + }, + KonjskihSnaga: { + Od: "", + Do: "", + }, + Kubikaza: { + Od: "", + Do: "", + }, + }, + Lokacija: { + entitet: "Svi", + kanton: "Svi", + gradovi: [], + }, + Slanje: "Odmah", + }); useEffect(() => { - console.log(data) - }, [data]) - + console.log(data); + }, [data]); return ( -
+
- } /> - }/> - }/> - }/> - }/> - }/> - + + } + /> + + } + /> + + } + /> + + } + /> + + } + />
); } -export default App; \ No newline at end of file +export default App; diff --git a/kivi-cars/src/containers/CategoryPage.js b/kivi-cars/src/containers/CategoryPage.js index 38f098b..5d24362 100644 --- a/kivi-cars/src/containers/CategoryPage.js +++ b/kivi-cars/src/containers/CategoryPage.js @@ -1,22 +1,21 @@ -import Header from '../components/Header/Header'; -import ButtonsToolbar from '../components/ButtonsToolbar/ButtonsToolbar'; -import CategoryBtns from '../components/CategoryBtns/categorybtns' -import './css/CategoryPage.css' +import Header from "../components/Header/Header"; +import ButtonsToolbar from "../components/ButtonsToolbar/ButtonsToolbar"; +import CategoryBtns from "../components/CategoryBtns/categorybtns"; +import "./css/CategoryPage.css"; function CategoryPage(props) { + const { data, setData } = props.data; - const {data, setData} = props.data - - const naslov = 'IZABERITE KATEGORIJU' + const naslov = "IZABERITE KATEGORIJU"; return ( -
-
- -
- -
+
+
+ +
+ +
); } -export default CategoryPage; \ No newline at end of file +export default CategoryPage; diff --git a/kivi-cars/src/containers/CongratsPage.js b/kivi-cars/src/containers/CongratsPage.js index 275c7f2..63db307 100644 --- a/kivi-cars/src/containers/CongratsPage.js +++ b/kivi-cars/src/containers/CongratsPage.js @@ -1,34 +1,36 @@ -import Header from '../components/Header/Header'; -import TitleBtn from '../components/Button/TitleBtn'; -import './css/CongratsPage.css' -import { Link } from 'react-router-dom'; +import Header from "../components/Header/Header"; +import TitleBtn from "../components/Button/TitleBtn"; +import "./css/CongratsPage.css"; +import { Link } from "react-router-dom"; function CongratsPage() { - - const naslov = 'ČESTITAMO!' - const btnTitle = 'NOVA PRETRAGA' + const naslov = "ČESTITAMO!"; + const btnTitle = "NOVA PRETRAGA"; return ( -
-
+
+
-
-

ČESTITAMO! Potvrđeni email je poslat na vašu email adresu.

-
-
-

Svi rezultati će u najkraćem roku biti poslani na vašu adresu.

-
-
-

Ako želite novu pretragu idete na

-
- - - - - +
+

+ ČESTITAMO! Potvrđeni email je poslat na vašu email adresu. +

+
+
+

+ Svi rezultati će u najkraćem roku biti poslani na vašu adresu. +

+
+
+

Ako želite novu pretragu idete na

+
+ + + +
); } -export default CongratsPage; \ No newline at end of file +export default CongratsPage; diff --git a/kivi-cars/src/containers/EmailPage.js b/kivi-cars/src/containers/EmailPage.js index 70d02a8..ae0b4d8 100644 --- a/kivi-cars/src/containers/EmailPage.js +++ b/kivi-cars/src/containers/EmailPage.js @@ -1,96 +1,107 @@ -import { useState, useEffect} from 'react'; -import './css/EmailPage.css' -import Header from '../components/Header/Header'; -import ButtonsToolbar from '../components/ButtonsToolbar/ButtonsToolbar'; -import StandardBtn from '../components/Button/StandardBtn'; -import TitleBtn from '../components/Button/TitleBtn'; -import { Link } from 'react-router-dom'; - +import { useState, useEffect } from "react"; +import "./css/EmailPage.css"; +import Header from "../components/Header/Header"; +import ButtonsToolbar from "../components/ButtonsToolbar/ButtonsToolbar"; +import TimeBtn from "../components/Button/TimeBtn"; +import TitleBtn from "../components/Button/TitleBtn"; +import { Link } from "react-router-dom"; +import postData from "../services/search-post-service"; function EmailPage(props) { + const { data, setData } = props.data; + const [error, setError] = useState(false); + const [toggleButtons, setToggle] = useState(true); - const {data, setData} = props.data - const [error, setError] = useState(false) + const [state, setState] = useState({ + email: "", + confirmEmail: "", + }); + const header = "SLANJE OBAVJEŠTENJA"; + let title1 = "Odmah"; + let title2 = "Dnevno"; + let title3 = "ZAVRŠI"; + let errmsg = "Email does not match!"; + let filter = "Slanje"; - const [state, setState] = useState({ - email: "", - confirmEmail: "" - }) - - const header = "SLANJE OBAVJEŠTENJA"; - let title1 = 'Odmah'; - let title2 = 'Dnevno'; - let title3 = 'ZAVRŠI'; - let errmsg = 'Email does not match!'; - let filter = 'Slanje' - - - const emailCheck = (e, ec) => { - if(e !== "" && e === ec){ - setError(false) - setData(prevData => ({ - ...prevData, - "Email": state.email - })) - return error - }else { - setError(true) - return error - } + const emailCheck = (e, ec) => { + if (e !== "" && e === ec) { + setError(false); + setData((prevData) => ({ + ...prevData, + Email: state.email, + })); + return error; + } else { + setError(true); + return error; } + }; - const updateInput = (event) => { - setState(prevState => ({ - ...prevState, - [event.target.name]: event.target.value - })) - } + const updateInput = (event) => { + setState((prevState) => ({ + ...prevState, + [event.target.name]: event.target.value, + })); + }; - useEffect(() => { - emailCheck(state.email, state.confirmEmail) - }, [state]) + useEffect(() => { + emailCheck(state.email, state.confirmEmail); + }, [state]); - return ( -
-
- -
-

Slanje obavještenja

-
-
- - -
-
-
-
- - -

{error ? errmsg : null}

-
- -
-
-
-

*U svakom trenutku možete prekinuti slanje objava kroz - link u vašem emailu -

-
-
- {error ? ( ) : ( - - - - )} -
-
- - - - - - ); + return ( +
+
+ +
+

Slanje obavještenja

+
+
+ + +
+
+
+
+ + +

{error ? errmsg : null}

+
+
+
+
+

+ *U svakom trenutku možete prekinuti slanje objava kroz link u vašem + emailu +

+
+
+ {error ? ( + + ) : ( + postData(data)}> + + + )} +
+
+ ); } -export default EmailPage; \ No newline at end of file +export default EmailPage; diff --git a/kivi-cars/src/containers/FiltersPage.js b/kivi-cars/src/containers/FiltersPage.js index 5ee3a8e..760fe09 100644 --- a/kivi-cars/src/containers/FiltersPage.js +++ b/kivi-cars/src/containers/FiltersPage.js @@ -6,32 +6,22 @@ import FiltersNav from '../components/FiltersNavbar/FiltersNav'; import StandardFilters from "../components/Filters/Standard-filters"; import AdvancedFilters from "../components/Filters/Advanced-filters"; -const FiltersPage = (props) => { +const FiltersPage = ({routes, data, setData}) => { const naslov = "Filteri za pretrazivanje" const [toggle, setToggle] = useState(true) - const [filters, setFilters] = useState({}); - const {data, setData} = props.data - - - useEffect(() => { - setData( prevData => ({ - ...prevData, - "Filters": filters - })) - }, [filters]) const showFilters = (toggle) => { if(toggle){ - return + return } - return ; + return ; } return(
- + {showFilters(toggle)}
diff --git a/kivi-cars/src/containers/LocationPage.js b/kivi-cars/src/containers/LocationPage.js index 550c4ad..bcf8447 100644 --- a/kivi-cars/src/containers/LocationPage.js +++ b/kivi-cars/src/containers/LocationPage.js @@ -1,87 +1,71 @@ -import React, { useEffect, useState } from 'react'; -import './css/LocationPage.css'; +import React, { useEffect, useState } from "react"; +import "./css/LocationPage.css"; import Header from "../components/Header/Header"; -import Location from '../data/location'; -import LocationFilter from '../components/Location/LocationFilter'; -import ButtonsToolbar from '../components/ButtonsToolbar/ButtonsToolbar'; -import LocationCheckbox from '../components/Filters/Filter/LocationCheckbox'; -import TitleBtn from '../components/Button/TitleBtn'; -import { Link } from 'react-router-dom'; +import Location from "../data/location"; +import LocationFilter from "../components/Location/LocationFilter"; +import ButtonsToolbar from "../components/ButtonsToolbar/ButtonsToolbar"; +import LocationCheckbox from "../components/Filters/Filter/LocationCheckbox"; +import TitleBtn from "../components/Button/TitleBtn"; +import { Link } from "react-router-dom"; const LocationPage = (props) => { + const { data, setData } = props.data; + const [gradovi, setGradovi] = useState([]); + const naslov = "Dodajte lokaciju"; - const {data, setData} = props.data - const [locationData, setLocationData] = useState({}) - const [locationInfo, setLocationInfo] = useState({"gradovi": []}) - const [checkboxStatus, setCheckboxStatus] = useState({}) - const [location, setLocation] = useState({}); - const naslov = "Dodajte lokaciju" + let id = 0; - let id = 0; + useEffect(() => { + if (data.Lokacija.kanton) { + Location.entiteti.map((entity) => { + return entity.kantoni.map((kantony) => { + if (data.Lokacija.kanton === "Distrikt Brčko") { + setGradovi([]); + return setData((prevData) => ({ + ...prevData, + Lokacija: { + ...prevData.Lokacija, + entitet: entity.entitet, + gradovi: ["Brčko"], + }, + })); + } else if (data.Lokacija.kanton === kantony.kanton) { + setGradovi(kantony.gradovi); + return setData((prevData) => ({ + ...prevData, + Lokacija: { + ...prevData.Lokacija, + entitet: entity.entitet, + }, + })); + } + }); + }); + } + }, [data.Lokacija.kanton]); - useEffect(() => { - if(locationData.kanton){ - Location.entiteti.map(entity => { - return entity.kantoni.map(kantony => { - if(locationData.kanton === kantony.kanton){ - return setLocationInfo({ - "entitet": entity.entitet, - "kanton": kantony.kanton, - "gradovi": kantony.gradovi - }) - } - }) - }) - }setCheckboxStatus({}) - console.log("locationInfo", locationInfo) - }, [locationData]) + useEffect(() => { + console.log("parent object", gradovi); + }, [data.Lokacija.gradovi]); - useEffect(() => { - if(locationData.kanton === 'Distrikt Brcko'){ - setLocation( - { - "entitet": "Distrikt Brcko", - "kanton": "Distrikt Brcko", - "gradovi": "Brcko" - } - ) - }else{ - setLocation( prevData => ({ - ...prevData, - "entitet": locationInfo.entitet, - "kanton": locationInfo.kanton, - "gradovi": checkboxStatus - }))} - console.log("location", location) - }, [checkboxStatus]) + return ( +
+
+ + +
+ {gradovi.map((grad) => { + id += 1; + return ( + + ); + })} +
+ + + +
+ ); +}; - useEffect(() => { - setData( prevData => ({ - ...prevData, - "Location": location - })) - console.log("data", data) - }, [location]) - - - return ( -
-
- - -
- {locationInfo.gradovi.map((grad) => { - id += 1 - return( - - ) - })} -
- - - -
- ); -} - -export default LocationPage \ No newline at end of file +export default LocationPage; diff --git a/kivi-cars/src/containers/css/LocationPage.css b/kivi-cars/src/containers/css/LocationPage.css index 5de0fe7..c5a5dd5 100644 --- a/kivi-cars/src/containers/css/LocationPage.css +++ b/kivi-cars/src/containers/css/LocationPage.css @@ -15,5 +15,6 @@ .checkbox-div{ flex-direction: row; justify-content: space-around; + margin-bottom: 50px; } } \ No newline at end of file diff --git a/kivi-cars/src/data/air-condition.js b/kivi-cars/src/data/air-condition.js index 20738c2..4136291 100644 --- a/kivi-cars/src/data/air-condition.js +++ b/kivi-cars/src/data/air-condition.js @@ -1,5 +1,6 @@ const AirCondition = { "ime" : "Klima", + "VName": "TipKlime", "tipovi" : [ "Odaberite", "Jednozonska", diff --git a/kivi-cars/src/data/checkbox.js b/kivi-cars/src/data/checkbox.js index 574eede..1593f9e 100644 --- a/kivi-cars/src/data/checkbox.js +++ b/kivi-cars/src/data/checkbox.js @@ -1,38 +1,179 @@ const CheckBox = [ - "ABS", - "ESP", - "Tempomat", - "Alarm", - "Airbag", - "Šiber", - "Servo volan", - "Koža", - "Klima", - "Centralna brava", - "Daljinsko zaključavanje", - "ISOFIX", - "Registrovan", - "Xenon", - "LED", - "Laser", - "Električni podizači stakala", - "Naslon za ruke", - "Električni retrovizor", - "Start/Stop", - "Turbo", - "Stranac", - "Pakring assistent", - "Senzor mrtvog ugla", - "Servisna knjiga", - "Komande na volanu", - "Navigacija", - "Grijanje sjedišta", - "Masažna sjedišta", - "Memorija sjedišta", - "Panorama", - "Ocarinjen", - "Udaren", - -] + { + title: "ABS", + value: false, + variable: "ABS", + }, + { + title: "ESP", + value: false, + variable: "ESP", + }, + { + title: "Alarm", + value: false, + variable: "Alarm", + }, + { + title: "Airbag", + value: false, + variable: "Airbag", + }, + { + title: "Šiber", + value: false, + variable: "Siber", + }, + { + title: "Servo volan", + value: false, + variable: "ServoVolan", + }, + { + title: "Koža", + value: false, + variable: "Koza", + }, + { + title: "Klima", + value: false, + variable: "PosjedujeKlimu", + }, + { + title: "Centralna brava", + value: false, + variable: "CentralnaBrava", + }, + { + title: "Daljinsko zaključavanje", + value: false, + variable: "DaljinskoZakljucavanje", + }, + { + title: "Kuka", + value: false, + variable: "AutoKuka", + }, + { + title: "ISOFIX", + value: false, + variable: "ISOFIX", + }, + { + title: "Registrovan", + value: false, + variable: "Registrovan", + }, + { + title: "Xenon", + value: false, + variable: "Xenon", + }, + { + title: "LED", + value: false, + variable: "LED", + }, + { + title: "Laser", + value: false, + variable: "Laser", + }, + { + title: "Električni podizači stakala", + value: false, + variable: "ElektricniPodizaciStakala", + }, + { + title: "Naslon za ruku", + value: false, + variable: "NaslonZaRuku", + }, + { + title: "Električni retrovizor", + value: false, + variable: "ElektricniRetrovizori", + }, + { + title: "Start/Stop", + value: false, + variable: "StartStop", + }, + { + title: "Tempomat", + value: false, + variable: "Tempomat", + }, + { + title: "Turbo", + value: false, + variable: "Turbo", + }, + { + title: "DPF/FAP", + value: false, + variable: "DPFFAP", + }, + { + title: "Pakring assistent", + value: false, + variable: "ParkingAssistent", + }, + { + title: "Senzor mrtvog ugla", + value: false, + variable: "SenzorMrtvogUgla", + }, + { + title: "Servisna knjiga", + value: false, + variable: "ServisnaKnjiga", + }, + { + title: "Komande na volanu", + value: false, + variable: "KomandeNaVolanu", + }, + { + title: "Navigacija", + value: false, + variable: "Navigacija", + }, + { + title: "Grijanje sjedišta", + value: false, + variable: "GrijanjeSjedista", + }, + { + title: "Hlađenje sjedišta", + value: false, + variable: "HladjenjeSjedista", + }, + { + title: "Masažna sjedišta", + value: false, + variable: "MasaznaSjedista", + }, + { + title: "Memorija sjedišta", + value: false, + variable: "MemorijaSjedista", + }, + { + title: "Panorama", + value: false, + variable: "Panorama", + }, + { + title: "Rolo zavjese", + value: false, + variable: "RoloZavjese", + }, + { + title: "Metalik", + value: false, + variable: "Metalik", + }, +]; -export default CheckBox; \ No newline at end of file +export default CheckBox; diff --git a/kivi-cars/src/data/color.js b/kivi-cars/src/data/color.js index 4102440..c13db5b 100644 --- a/kivi-cars/src/data/color.js +++ b/kivi-cars/src/data/color.js @@ -1,5 +1,6 @@ const Color = { "ime": "Boja", + "VName": "Boja", "tipovi": [ "Odaberite", "Bež", diff --git a/kivi-cars/src/data/condition.js b/kivi-cars/src/data/condition.js index ac8f13a..343cec3 100644 --- a/kivi-cars/src/data/condition.js +++ b/kivi-cars/src/data/condition.js @@ -1,5 +1,6 @@ const Condition = { "ime": "Stanje", + "VName": "Stanje", "tipovi": [ "Odaberite", "Novo", diff --git a/kivi-cars/src/data/cubes.js b/kivi-cars/src/data/cubes.js index 7dc8579..e3ea847 100644 --- a/kivi-cars/src/data/cubes.js +++ b/kivi-cars/src/data/cubes.js @@ -1,5 +1,6 @@ const Cubes = { "title": "Kubikaza", + "VName": "Kubikaza", "fields": { "min": 0.8, "max": 6.2, diff --git a/kivi-cars/src/data/doors.js b/kivi-cars/src/data/doors.js index 036aae2..cef3875 100644 --- a/kivi-cars/src/data/doors.js +++ b/kivi-cars/src/data/doors.js @@ -1,5 +1,6 @@ const Doors = { "ime": "Broj vrata", + "VName": "BrojVrata", "tipovi" : [ "Odaberite", "2/3", diff --git a/kivi-cars/src/data/drive.js b/kivi-cars/src/data/drive.js index 653429f..136d546 100644 --- a/kivi-cars/src/data/drive.js +++ b/kivi-cars/src/data/drive.js @@ -1,5 +1,6 @@ const Drive = { "ime" : "Pogon", + "VName": "Pogon", "tipovi": [ "Odaberite", "Prednji", diff --git a/kivi-cars/src/data/fuel.js b/kivi-cars/src/data/fuel.js index 97cdce2..f5f27d5 100644 --- a/kivi-cars/src/data/fuel.js +++ b/kivi-cars/src/data/fuel.js @@ -1,10 +1,11 @@ const Fuel = { "ime": "Gorivo", + "VName": "Gorivo", "tipovi": [ "Odaberite", "Dizel", "Benzin", - "Benzin/Plin", + "Plin", "Cng", "Hybrid", "Elektro" diff --git a/kivi-cars/src/data/gearbox.js b/kivi-cars/src/data/gearbox.js index 51a9739..eea747f 100644 --- a/kivi-cars/src/data/gearbox.js +++ b/kivi-cars/src/data/gearbox.js @@ -1,5 +1,6 @@ const Gearbox = { "ime": "Broj brzina", + "VName": "BrojStepenihPrijenosa", "tipovi": [ "Odaberite", "3+R", diff --git a/kivi-cars/src/data/horsepower.js b/kivi-cars/src/data/horsepower.js index cc13cd1..c24eac1 100644 --- a/kivi-cars/src/data/horsepower.js +++ b/kivi-cars/src/data/horsepower.js @@ -1,5 +1,6 @@ const HorsePower = { "title": "Konjskih snaga", + "VName": "KonjskihSnaga", "fields": { "min": 0, "max": 2000, diff --git a/kivi-cars/src/data/kilometers.js b/kivi-cars/src/data/kilometers.js index ef2252e..25e875e 100644 --- a/kivi-cars/src/data/kilometers.js +++ b/kivi-cars/src/data/kilometers.js @@ -1,5 +1,6 @@ const Kilometers = { "title": "Kilometraza", + "VName": "Kilometraza", "fields": { "min": 0, "max": 1000000, diff --git a/kivi-cars/src/data/kilowats.js b/kivi-cars/src/data/kilowats.js index 07e601d..06cb45d 100644 --- a/kivi-cars/src/data/kilowats.js +++ b/kivi-cars/src/data/kilowats.js @@ -1,5 +1,6 @@ const Kilowats = { "title": "Kilovata", + "VName": "Kilovata", "fields": { "min": 0, "max": 1000, diff --git a/kivi-cars/src/data/lights.js b/kivi-cars/src/data/lights.js deleted file mode 100644 index 52fec0b..0000000 --- a/kivi-cars/src/data/lights.js +++ /dev/null @@ -1,13 +0,0 @@ -const Lights = { - "ime": "Svjetla", - "tipovi": [ - "Odaberite", - "Halogena", - "Xenon", - "Led", - "Laser", - "Ostalo" - ] -} - -export default Lights; \ No newline at end of file diff --git a/kivi-cars/src/data/location.js b/kivi-cars/src/data/location.js index a277405..280ecee 100644 --- a/kivi-cars/src/data/location.js +++ b/kivi-cars/src/data/location.js @@ -1,231 +1,225 @@ const Location = { - "ime": "Lokacija", - "entiteti": [ - {"entitet":"Federacija BiH", - "kantoni": [ - {"kanton": "Sarajevo", - "gradovi": [ - "Hadžići", - "Ilidža", - "Ilijaš", - "Sarajevo - Centar", - "Sarajevo-Novi Grad", - "Sarajevo-Novo Sarajevo", - "Sarajevo-Stari Grad", - "Trnovo", - "Vogošća" - ] - }, - {"kanton":"Unsko-sanski", - "gradovi": [ - "Bihać", - "Bosanska Krupa", - "Bosanski Petrovac", - "Bužim", - "Cazin", - "Ključ", - "Sanski Most", - "Velika Kladuša" - ] - }, - {"kanton": "Posavski", - "gradovi": [ - "Domaljevac", - "Odžak", - "Orašje", - "Šamac" - ] - }, - {"kanton":"Tuzlanski", - "gradovi": [ - "Banovići", - "Doboj-Istok", - "Gradačac", - "Gračanica", - "Kalesija", - "Kladanj", - "Lukavac", - "Sapna", - "Srebrenik", - "Teočak", - "Tuzla", - "Čelić", - "Živinice" - ] - }, - {"kanton":"Zeničko-dobojski", - "gradovi": [ - "Breza", - "Doboj-Jug", - "Kakanj", - "Maglaj", - "Olovo", - "Tešanj", - "Usora", - "Vareš", - "Visoko", - "Zavidovići", - "Zenica", - "Žepče" - ] - }, - {"kanton":"Bosansko-podrinjski", - "gradovi": [ - "Foča", - "Goražde", - "Pale" - ] - }, - {"kanton":"Srednjobosanski", - "gradovi": [ - "Bugojno", - "Busovača", - "Dobretići", - "Donji Vakuf", - "Fojnica", - "Gornji Vakuf - Uskoplje", - "Jajce", - "Kiseljak", - "Kreševo", - "Novi Travnik", - "Travnik", - "Vitez" - ] - }, - {"kanton":"Hercegovačko-neretvanski", - "gradovi": [ - "Grad Mostar", - "Jablanica", - "Konjic", - "Neum", - "Prozor", - "Ravno", - "Stolac", - "Čapljina", - "Čitluk" - ] - }, - {"kanton":"Zapadno-hercegovački", - "gradovi": [ - "Grude", - "Ljubuški", - "Posušje", - "Široki Brijeg" - ] - }, - {"kanton":"Livanjski", - "gradovi": [ - "Bosansko Grahovo", - "Drvar", - "Glamoč", - "Kupres", - "Livno", - "Tomislavgrad" - ] - } - ] + ime: "Lokacija", + entiteti: [ + { + entitet: "Federacija BiH", + kantoni: [ + { + kanton: "Sarajevo", + gradovi: [ + "Hadžići", + "Ilidža", + "Ilijaš", + "Sarajevo-Centar", + "Sarajevo-Novi Grad", + "Sarajevo-Novo Sarajevo", + "Sarajevo-Stari Grad", + "Trnovo", + "Vogošća", + ], }, - {"entitet":"Republika Srpska", - "kantoni": [ - {"kanton":"Banjalučka", - "gradovi": [ - "Banja Luka", - "Gradiška", - "Istočni Drvar", - "Jezero", - "Kneževo", - "Kostajnica", - "Kotor Varoš", - "Kozarska Dubica", - "Krupa na uni", - "Kupres", - "Laktaši", - "Mrkonjić Grad", - "Novi Grad", - "Oštra Luka", - "Petrovac", - "Prijedor", - "Prnjavor", - "Ribnik", - "Srbac", - "Čelinac", - "Šipovo" - ] - }, - {"kanton":"Dobojsko-Bijeljinska", - "gradovi": [ - "Bijeljina", - "Brod", - "Derventa", - "Doboj", - "Donji Žabar", - "Lopare", - "Lukavac", - "Modriča", - "Pelagićevo", - "Petrovo", - "Stanari", - "Teslić", - "Tešanj", - "Tuzla", - "Ugljevik", - "Vukosavlje", - "Šamac" - ] - }, - {"kanton":"Sarajevsko-Zvornička", - "gradovi": [ - "Bratunac", - "Han Pijesak", - "Ilijaš", - "Istočni Stari Grad", - "Kasindo", - "Kladanj", - "Lukavica", - "Milići", - "Olovo", - "Osmaci", - "Pale", - "Rogatica", - "Rudo", - "Sarajevo-Novi Grad", - "Sokolac", - "Srebrenica", - "Trnovo", - "Ustiprača", - "Višegrad", - "Vlasenica", - "Zvornik", - "Šekovići", - "Žepa" - ] - }, - {"kanton":"Trebinjsko-Fočanska", - "gradovi": [ - "Berkovići", - "Bileća", - "Foča", - "Gacko", - "Istočni Mostar", - "Kalinovik", - "Ljubinje", - "Nevesinje", - "Trebinje", - "Čajniče" - ] - } - ] + { + kanton: "Unsko-sanski", + gradovi: [ + "Bihać", + "Bosanska Krupa", + "Bosanski Petrovac", + "Bužim", + "Cazin", + "Ključ", + "Sanski Most", + "Velika Kladuša", + ], }, - {"entitet":"Distrikt Brcko", - "kantoni": [ - {"kanton": "Distrikt Brcko", - "gradovi":[ - - ] - } - ] - } - ] -} + { + kanton: "Posavski", + gradovi: ["Domaljevac", "Odžak", "Orašje", "Šamac"], + }, + { + kanton: "Tuzlanski", + gradovi: [ + "Banovići", + "Doboj-Istok", + "Gradačac", + "Gračanica", + "Kalesija", + "Kladanj", + "Lukavac", + "Sapna", + "Srebrenik", + "Teočak", + "Tuzla", + "Čelić", + "Živinice", + ], + }, + { + kanton: "Zeničko-dobojski", + gradovi: [ + "Breza", + "Doboj-Jug", + "Kakanj", + "Maglaj", + "Olovo", + "Tešanj", + "Usora", + "Vareš", + "Visoko", + "Zavidovići", + "Zenica", + "Žepče", + ], + }, + { kanton: "Bosansko-podrinjski", gradovi: ["Foča", "Goražde", "Pale"] }, + { + kanton: "Srednjobosanski", + gradovi: [ + "Bugojno", + "Busovača", + "Dobretići", + "Donji Vakuf", + "Fojnica", + "Gornji Vakuf - Uskoplje", + "Jajce", + "Kiseljak", + "Kreševo", + "Novi Travnik", + "Travnik", + "Vitez", + ], + }, + { + kanton: "Hercegovačko-neretvanski", + gradovi: [ + "Grad Mostar", + "Jablanica", + "Konjic", + "Neum", + "Prozor", + "Ravno", + "Stolac", + "Čapljina", + "Čitluk", + ], + }, + { + kanton: "Zapadno-hercegovački", + gradovi: ["Grude", "Ljubuški", "Posušje", "Široki Brijeg"], + }, + { + kanton: "Livanjski", + gradovi: [ + "Bosansko Grahovo", + "Drvar", + "Glamoč", + "Kupres", + "Livno", + "Tomislavgrad", + ], + }, + ], + }, + { + entitet: "Republika Srpska", + kantoni: [ + { + kanton: "Banjalučka", + gradovi: [ + "Banja Luka", + "Gradiška", + "Istočni Drvar", + "Jezero", + "Kneževo", + "Kostajnica", + "Kotor Varoš", + "Kozarska Dubica", + "Krupa na uni", + "Kupres", + "Laktaši", + "Mrkonjić Grad", + "Novi Grad", + "Oštra Luka", + "Petrovac", + "Prijedor", + "Prnjavor", + "Ribnik", + "Srbac", + "Čelinac", + "Šipovo", + ], + }, + { + kanton: "Dobojsko-Bijeljinska", + gradovi: [ + "Bijeljina", + "Brod", + "Derventa", + "Doboj", + "Donji Žabar", + "Lopare", + "Lukavac", + "Modriča", + "Pelagićevo", + "Petrovo", + "Stanari", + "Teslić", + "Tešanj", + "Tuzla", + "Ugljevik", + "Vukosavlje", + "Šamac", + ], + }, + { + kanton: "Sarajevsko-Zvornička", + gradovi: [ + "Bratunac", + "Han Pijesak", + "Ilijaš", + "Istočni Stari Grad", + "Kasindo", + "Kladanj", + "Lukavica", + "Milići", + "Olovo", + "Osmaci", + "Pale", + "Rogatica", + "Rudo", + "Sarajevo-Novi Grad", + "Sokolac", + "Srebrenica", + "Trnovo", + "Ustiprača", + "Višegrad", + "Vlasenica", + "Zvornik", + "Šekovići", + "Žepa", + ], + }, + { + kanton: "Trebinjsko-Fočanska", + gradovi: [ + "Berkovići", + "Bileća", + "Foča", + "Gacko", + "Istočni Mostar", + "Kalinovik", + "Ljubinje", + "Nevesinje", + "Trebinje", + "Čajniče", + ], + }, + ], + }, + { + entitet: "Distrikt Brčko", + kantoni: [{ kanton: "Distrikt Brčko", gradovi: ["Brčko"] }], + }, + ], +}; -export default Location; \ No newline at end of file +export default Location; diff --git a/kivi-cars/src/data/price.js b/kivi-cars/src/data/price.js index 6527a66..e8695cf 100644 --- a/kivi-cars/src/data/price.js +++ b/kivi-cars/src/data/price.js @@ -1,5 +1,6 @@ const Price = { "title": "Cijena", + "VName": "Cijena", "fields": { "min": 0, "max": 1000000, diff --git a/kivi-cars/src/data/seats.js b/kivi-cars/src/data/seats.js index 41912d4..c06e1be 100644 --- a/kivi-cars/src/data/seats.js +++ b/kivi-cars/src/data/seats.js @@ -1,5 +1,6 @@ const Seats = { "ime": "Sjedišta", + "VName": "BrojSjedista", "tipovi": [ "Odaberite", "1", diff --git a/kivi-cars/src/data/sensors.js b/kivi-cars/src/data/sensors.js index 88f466f..d3012fc 100644 --- a/kivi-cars/src/data/sensors.js +++ b/kivi-cars/src/data/sensors.js @@ -1,5 +1,6 @@ const Sensors = { "ime": "Senzori", + "VName": "ParkingSenzori", "tipovi": [ "Odaberite", "naprijed", diff --git a/kivi-cars/src/data/transmission.js b/kivi-cars/src/data/transmission.js index 16c7c19..c39f925 100644 --- a/kivi-cars/src/data/transmission.js +++ b/kivi-cars/src/data/transmission.js @@ -1,5 +1,6 @@ const Transmission = { "ime": "Transmisija", + "VName": "Transmisija", "tipovi": [ "Odaberite", "Automatski mjenjač", diff --git a/kivi-cars/src/data/type.js b/kivi-cars/src/data/type.js index 3fa115e..06a5a68 100644 --- a/kivi-cars/src/data/type.js +++ b/kivi-cars/src/data/type.js @@ -1,5 +1,6 @@ const Type = { "ime": "Vrsta vozila", + "VName": "TipVozila", "tipovi": [ "Odaberite", "Karavan", diff --git a/kivi-cars/src/data/year.js b/kivi-cars/src/data/year.js index a1dec49..2a5af83 100644 --- a/kivi-cars/src/data/year.js +++ b/kivi-cars/src/data/year.js @@ -1,5 +1,6 @@ const Year = { "title": "Godiste", + "VName": "Godiste", "fields": { "min": 1960, "max": new Date().getFullYear(), diff --git a/kivi-cars/src/services/search-post-service.js b/kivi-cars/src/services/search-post-service.js new file mode 100644 index 0000000..140d076 --- /dev/null +++ b/kivi-cars/src/services/search-post-service.js @@ -0,0 +1,18 @@ +async function postData(data) { + // Default options are marked with * + const response = await fetch("http://localhost:8000/search/", { + method: "POST", // *GET, POST, PUT, DELETE, etc. + mode: "cors", // no-cors, *cors, same-origin + cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached + credentials: "same-origin", // include, *same-origin, omit + headers: { + "Content-Type": "application/json", + }, + redirect: "follow", + referrerPolicy: "no-referrer", + body: JSON.stringify(data), + }); + return console.log(response); +} + +export default postData;