Rezervacije/KOMPONENTE.md

18 KiB

Pregled komponent v aplikaciji Rezervacije

Ta dokument vsebuje kratek pregled vseh komponent v aplikaciji za rezervacije restavracij, njihovo lokacijo in namen uporabe.

Osnovne komponente

1. NavigationBar

Lokacija: /src/components/NavigationBar.tsx
Namen: Glavna navigacijska vrstica za domačo stran aplikacije z gumbi za priljubljene, profil in meni.
Uporaba: Uporabite na vrhu domače strani za osnovno navigacijo po aplikaciji.

Lokacija: /src/components/Footer.tsx
Namen: Spodnja navigacijska vrstica z gumbi za domov, iskanje, rezervacije in profil.
Uporaba: Uporabite na dnu domače strani in strani z zgodovino rezervacij za osnovno navigacijo med glavnimi sekcijami aplikacije. Ne uporabljajte na straneh, ki imajo lastne noge (ReservationFooter, CancellationFooter) ali spodnje pripete elemente (ReservationWidget).

3. RestaurantCard

Lokacija: /src/components/RestaurantCard.tsx
Namen: Kartica za prikaz osnovnih podatkov o restavraciji na seznamu.
Uporaba: Uporabite za prikazovanje restavracij na seznamih in straneh za iskanje.

4. CategoryItem

Lokacija: /src/components/CategoryItem.tsx
Namen: Prikaz kategorije restavracije/kuhinje z ikono in besedilom.
Uporaba: Uporabite za prikaz kategorij kuhinj v horizontalnem seznamu.

5. QuickFilterButton

Lokacija: /src/components/QuickFilterButton.tsx
Namen: Gumb za hitro filtriranje restavracij po različnih kriterijih.
Uporaba: Uporabite za omogočanje hitrih filtrov na straneh s seznami restavracij.

Lokacija: /src/components/SearchBar.tsx
Namen: Vnosno polje za iskanje restavracij, lokacij ali vrst kuhinj.
Uporaba: Uporabite na domači strani ali strani za iskanje.

7. QuickFilterList

Lokacija: /src/components/QuickFilterList.tsx
Namen: Horizontalni seznam hitrih filtrov za restavracije.
Uporaba: Uporabite pod iskalno vrstico na domači strani.

8. MapButton

Lokacija: /src/components/MapButton.tsx
Namen: Gumb za prikaz restavracij na zemljevidu.
Uporaba: Uporabite na domači strani za preklapljanje na pogled zemljevida.

9. CategoriesList

Lokacija: /src/components/CategoriesList.tsx
Namen: Horizontalni seznam kategorij kuhinj.
Uporaba: Uporabite na domači strani za filtriranje po vrstah kuhinj.

10. RestaurantList

Lokacija: /src/components/RestaurantList.tsx
Namen: Seznam restavracij z naslovom in možnostjo prikaza vseh.
Uporaba: Uporabite na domači strani za prikaz priporočenih restavracij.

Komponente za podrobnosti restavracije

11. RestaurantNavBar

Lokacija: /src/components/RestaurantNavBar.tsx
Namen: Navigacijska vrstica za stran s podrobnostmi restavracije z gumbi za nazaj, deljenje in priljubljene.
Uporaba: Uporabite na vrhu strani s podrobnostmi restavracije.

12. RestaurantGallery

Lokacija: /src/components/RestaurantGallery.tsx
Namen: Prikaz slike restavracije z gumbi za ogled galerije in 360° pogleda.
Uporaba: Uporabite na vrhu strani s podrobnostmi restavracije za prikaz glavne slike in dostop do več slik.

13. RestaurantInfo

Lokacija: /src/components/RestaurantInfo.tsx
Namen: Prikaz osnovnih informacij o restavraciji - ime, lokacija, ocena in značilnosti.
Uporaba: Uporabite pod galerijo na strani s podrobnostmi restavracije.

14. ActionButtons

Lokacija: /src/components/ActionButtons.tsx
Namen: Trije gumbi za klic, navigacijo in obisk spletne strani restavracije.
Uporaba: Uporabite pod osnovnimi informacijami na strani s podrobnostmi restavracije.

15. InfoAccordion

Lokacija: /src/components/InfoAccordion.tsx
Namen: Razširljiv/skrčljiv element za prikaz informacij v sekcijah.
Uporaba: Uporabite za različne sekcije podrobnosti, kot so opis, odpiralni čas in kontakt.

16. RestaurantDescription

Lokacija: /src/components/RestaurantDescription.tsx
Namen: Prikaz opisa restavracije v razširljivem elementu.
Uporaba: Uporabite v sekciji z informacijami na strani s podrobnostmi restavracije.

17. OpeningHours

Lokacija: /src/components/OpeningHours.tsx
Namen: Prikaz odpiralnega časa restavracije v razširljivem elementu.
Uporaba: Uporabite v sekciji z informacijami na strani s podrobnostmi restavracije.

18. ContactInfo

Lokacija: /src/components/ContactInfo.tsx
Namen: Prikaz kontaktnih podatkov restavracije v razširljivem elementu.
Uporaba: Uporabite v sekciji z informacijami na strani s podrobnostmi restavracije.

19. MenuSection

Lokacija: /src/components/MenuSection.tsx
Namen: Prikaz menija restavracije po kategorijah.
Uporaba: Uporabite na strani s podrobnostmi restavracije za prikaz ponudbe jedi.

20. Reviews

Lokacija: /src/components/Reviews.tsx
Namen: Prikaz ocen in mnenj uporabnikov o restavraciji.
Uporaba: Uporabite na strani s podrobnostmi restavracije za prikaz ocen in mnenj.

21. ReservationWidget

Lokacija: /src/components/ReservationWidget.tsx
Namen: Spodnji pritrjeni element za hitro izbiro termina in števila oseb za rezervacijo.
Uporaba: Uporabite na dnu strani s podrobnostmi restavracije za hiter začetek postopka rezervacije.

Komponente za rezervacijo

22. ReservationNavBar

Lokacija: /src/components/ReservationNavBar.tsx
Namen: Navigacijska vrstica za stran z rezervacijo z gumboma za nazaj in pomoč.
Uporaba: Uporabite na vrhu strani za rezervacijo.

23. ReservationRestaurantInfo

Lokacija: /src/components/ReservationRestaurantInfo.tsx
Namen: Prikaz osnovnih podatkov o restavraciji na strani za rezervacijo.
Uporaba: Uporabite na vrhu strani za rezervacijo, da uporabnik ve, katero restavracijo rezervira.

24. DateSelector

Lokacija: /src/components/DateSelector.tsx
Namen: Izbira datuma rezervacije z vnosnim poljem in gumbi za hitre izbire.
Uporaba: Uporabite na obrazcu za rezervacijo za izbiro datuma.

25. TimeSelector

Lokacija: /src/components/TimeSelector.tsx
Namen: Izbira ure rezervacije, razdeljena po delih dneva (kosilo, večerja).
Uporaba: Uporabite na obrazcu za rezervacijo za izbiro ure.

26. GuestCounter

Lokacija: /src/components/GuestCounter.tsx
Namen: Izbira števila oseb za rezervacijo z gumbi za povečanje in zmanjšanje.
Uporaba: Uporabite na obrazcu za rezervacijo za določitev števila gostov.

27. SpecialRequests

Lokacija: /src/components/SpecialRequests.tsx
Namen: Besedilno polje za vnos posebnih zahtev ob rezervaciji.
Uporaba: Uporabite na obrazcu za rezervacijo za vnos posebnih diet, alergij ali želja.

28. ContactForm

Lokacija: /src/components/ContactForm.tsx
Namen: Obrazec za vnos kontaktnih podatkov za rezervacijo.
Uporaba: Uporabite na obrazcu za rezervacijo za vnos imena, telefona in e-pošte.

29. ReservationSummary

Lokacija: /src/components/ReservationSummary.tsx
Namen: Povzetek podatkov o rezervaciji pred potrditvijo.
Uporaba: Uporabite na obrazcu za rezervacijo za pregled izbranih nastavitev.

30. CancellationPolicy

Lokacija: /src/components/CancellationPolicy.tsx
Namen: Prikaz pravil o odpovedi rezervacije.
Uporaba: Uporabite na obrazcu za rezervacijo za seznanitev uporabnika s pogoji odpovedi.

31. TermsAgreement

Lokacija: /src/components/TermsAgreement.tsx
Namen: Potrditveno polje za strinjanje s pogoji uporabe in pravili o zasebnosti.
Uporaba: Uporabite na obrazcu za rezervacijo pred potrditvijo.

32. ReservationFooter

Lokacija: /src/components/ReservationFooter.tsx
Namen: Spodnji pritrjeni element s povzetkom rezervacije in gumbom za potrditev.
Uporaba: Uporabite na dnu strani za rezervacijo za dokončanje postopka.

Komponente za potrditev rezervacije

37. ConfirmationNavBar

Lokacija: /src/components/ConfirmationNavBar.tsx
Namen: Navigacijska vrstica za stran s potrditvijo rezervacije z gumboma za zapiranje in deljenje.
Uporaba: Uporabite na vrhu strani za potrditev rezervacije.

38. ConfirmationSuccess

Lokacija: /src/components/ConfirmationSuccess.tsx
Namen: Komponenta za prikaz sporočila o uspešni rezervaciji z ikono in besedilom.
Uporaba: Uporabite na vrhu strani za potrditev rezervacije za jasen prikaz uspeha.

39. ReservationCard

Lokacija: /src/components/ReservationCard.tsx
Namen: Kartica za prikaz podrobnosti o potrjeni rezervaciji (restavracija, datum, čas, številka rezervacije, QR koda).
Uporaba: Uporabite na strani za potrditev rezervacije za celovit pregled rezervacije.

40. QuickActions

Lokacija: /src/components/QuickActions.tsx
Namen: Gumbi za hitre akcije (dodaj v koledar, navigacija, uredi) povezane z rezervacijo.
Uporaba: Uporabite na strani za potrditev rezervacije za hitro izvedbo pogostih akcij.

41. CancellationInfo

Lokacija: /src/components/CancellationInfo.tsx
Namen: Prikaz informacij o pravilih in pogojih za odpoved rezervacije z rokom odpovedi.
Uporaba: Uporabite na strani za potrditev rezervacije za informiranje uporabnika o pravilih odpovedi.

42. ReservationDetails

Lokacija: /src/components/ReservationDetails.tsx
Namen: Podrobnejši prikaz podatkov o rezervaciji, vključno s kontaktnimi podatki restavracije in posebnimi zahtevami.
Uporaba: Uporabite na strani za potrditev rezervacije za prikaz dodatnih informacij o rezervaciji.

43. CancellationFooter

Lokacija: /src/components/CancellationFooter.tsx
Namen: Noga s gumbom za odpoved rezervacije.
Uporaba: Uporabite na dnu strani za potrditev rezervacije za omogočanje odpovedi.

Komponente za zgodovino rezervacij

45. ReservationsNavBar

Lokacija: /src/components/ReservationsNavBar.tsx
Namen: Navigacijska vrstica za stran z zgodovino rezervacij z naslovom in gumbi za filtriranje in pomoč.
Uporaba: Uporabite na vrhu strani z zgodovino rezervacij.

46. ReservationsTabs

Lokacija: /src/components/ReservationsTabs.tsx
Namen: Zavihki za preklapljanje med prihajajočimi in preteklimi rezervacijami.
Uporaba: Uporabite pod navigacijsko vrstico na strani z zgodovino rezervacij.

47. ReservationHistoryCard

Lokacija: /src/components/ReservationHistoryCard.tsx
Namen: Kartica za prikaz podatkov o posamezni rezervaciji z možnostmi za upravljanje.
Uporaba: Uporabite za prikaz posamezne rezervacije v seznamu rezervacij.

48. ReservationsList

Lokacija: /src/components/ReservationsList.tsx
Namen: Seznam rezervacij, ki prikazuje prihajajoče ali pretekle rezervacije po skupinah.
Uporaba: Uporabite na strani z zgodovino rezervacij za prikaz rezervacij.

49. EmptyReservations

Lokacija: /src/components/EmptyReservations.tsx
Namen: Prikaz praznega stanja, ko uporabnik nima nobenih rezervacij.
Uporaba: Uporabite na strani z zgodovino rezervacij, ko ni rezervacij.

Komponente za iskanje in filtriranje

50. SearchNavBar

Lokacija: /src/components/SearchNavBar.tsx
Namen: Navigacijska vrstica za stran z iskanjem, z naslovom in gumbi za ponastavitev filtrov in pomoč.
Uporaba: Uporabite na vrhu strani za iskanje in filtriranje restavracij.

51. AdvancedSearchBar

Lokacija: /src/components/AdvancedSearchBar.tsx
Namen: Napredno iskalno polje z možnostjo čiščenja vnosa.
Uporaba: Uporabite na vrhu strani za iskanje, ko želite omogočiti iskanje po imenih restavracij ali jedi.

52. FilterHeader

Lokacija: /src/components/FilterHeader.tsx
Namen: Glava sekcije filtrov z naslovom in gumbom za ponastavitev.
Uporaba: Uporabite kot uvod v sekcijo filtrov na strani za iskanje.

53. LocationFilter

Lokacija: /src/components/LocationFilter.tsx
Namen: Filter za izbiro lokacije z vnosnim poljem in hitro izbiro priljubljenih lokacij.
Uporaba: Uporabite v sekciji filtrov za filtriranje restavracij po lokaciji.

54. CuisineFilterGrid

Lokacija: /src/components/CuisineFilterGrid.tsx
Namen: Mreža izbirnih polj za filtriranje po vrstah kuhinje.
Uporaba: Uporabite v sekciji filtrov za izbiro željenih vrst kuhinj.

55. PriceRangeFilter

Lokacija: /src/components/PriceRangeFilter.tsx
Namen: Filter za izbiro cenovnih razredov restavracij (od € do €€€€).
Uporaba: Uporabite v sekciji filtrov za filtriranje po cenovnem razredu.

56. RatingSlider

Lokacija: /src/components/RatingSlider.tsx
Namen: Drsnik za filtriranje restavracij po minimalni oceni.
Uporaba: Uporabite v sekciji filtrov za filtriranje restavracij po minimalni oceni.

57. AdditionalOptionsFilter

Lokacija: /src/components/AdditionalOptionsFilter.tsx
Namen: Skupina potrditvenih polj za dodatne možnosti filtriranja (odprto zdaj, parkirišče, ipd.).
Uporaba: Uporabite v sekciji filtrov za bolj natančno filtriranje restavracij.

58. SearchResultsHeader

Lokacija: /src/components/SearchResultsHeader.tsx
Namen: Glava sekcije rezultatov iskanja z naslovom in izbirnikom za razvrščanje.
Uporaba: Uporabite kot uvod v sekcijo rezultatov iskanja.

59. ActiveFiltersDisplay

Lokacija: /src/components/ActiveFiltersDisplay.tsx
Namen: Prikaz aktivnih filtrov in možnost njihove odstranitve.
Uporaba: Uporabite nad rezultati iskanja za prikaz in hitro odstranjevanje aplikaciranih filtrov.

60. SearchRestaurantCard

Lokacija: /src/components/SearchRestaurantCard.tsx
Namen: Razširjena kartica restavracije s podrobnostmi za prikaz v rezultatih iskanja.
Uporaba: Uporabite za prikaz posamezne restavracije v rezultatih iskanja.

61. LoadMoreButton

Lokacija: /src/components/LoadMoreButton.tsx
Namen: Gumb za nalaganje dodatnih rezultatov iskanja.
Uporaba: Uporabite na koncu seznama rezultatov iskanja za prikaz več restavracij.

Strani aplikacije

33. HomePage

Lokacija: /src/pages/HomePage.tsx
Namen: Glavna stran aplikacije s seznamom priporočenih restavracij, hitrimi filtri in kategorijami.
Uporaba: Uporabite kot začetno stran aplikacije.

34. RestaurantDetailPage

Lokacija: /src/pages/RestaurantDetailPage.tsx
Namen: Stran s podrobnimi informacijami o izbrani restavraciji.
Uporaba: Uporabite za prikaz vseh podatkov o posamezni restavraciji in za začetek rezervacije.

35. ReservationPage

Lokacija: /src/pages/ReservationPage.tsx
Namen: Stran za vnos vseh podatkov, potrebnih za rezervacijo.
Uporaba: Uporabite za dokončanje rezervacije po izbiri restavracije.

36. ConfirmationPage

Lokacija: /src/pages/ConfirmationPage.tsx
Namen: Stran za prikaz potrditve uspešno opravljene rezervacije s podrobnostmi in možnostmi za upravljanje.
Uporaba: Prikaže se po uspešni potrditvi rezervacije in omogoča upravljanje z rezervacijo.

37. ReservationsHistoryPage

Lokacija: /src/pages/ReservationsHistoryPage.tsx
Namen: Stran za prikaz zgodovine rezervacij s funkcijami za upravljanje z rezervacijami.
Uporaba: Omogoča pregled vseh prihajajočih in preteklih rezervacij ter njihovo upravljanje.

50. SearchPage

Lokacija: /src/pages/SearchPage.tsx
Namen: Stran za podrobno iskanje in filtriranje restavracij po različnih kriterijih.
Uporaba: Omogoča uporabnikom naprednejše iskanje restavracij po imenu, lokaciji, vrsti kuhinje, cenovnem razredu, oceni in drugih lastnostih.

Glavna aplikacija

44. App

Lokacija: /src/App.tsx
Namen: Glavna komponenta aplikacije, ki upravlja navigacijo med stranmi.
Uporaba: Služi kot vstopna točka in vsebuje navigacijski sistem celotne aplikacije.


Uporaba tipov

Aplikacija uporablja tipsko varne komponente z uporabo TypeScript. Vsi tipi so definirani v datoteki /src/types/index.ts in vključujejo:

  • Restaurant: Osnovni podatki o restavraciji
  • RestaurantDetail: Razširjeni podatki o restavraciji
  • OpeningHour: Odpiralni čas
  • Feature: Značilnost restavracije
  • MenuSection: Sekcija menija
  • Dish: Jed na meniju
  • Review: Mnenje uporabnika
  • Category: Kategorija kuhinje
  • NavItem: Element navigacije
  • TimeSlot: Termin za rezervacijo

Smernice za uporabo

  1. Konsistentnost v dizajnu: Vse komponente so oblikovane v skladu z enotnim dizajnom, uporabite jih takšne, kot so, za ohranitev konsistentnosti.
  2. Dostopnost: Komponente vsebujejo ustrezne ARIA atribute za boljšo dostopnost. Pri uporabi jih ohranite.
  3. Odzivnost: Komponente so prilagojene za mobilne naprave, vendar se prikažejo v fiksni velikosti na večjih zaslonih.
  4. Material ikone: Komponente uporabljajo Material Icons knjižnico, poskrbite, da je vključena v projekt.
  5. TailwindCSS: Stiliziranje temelji na TailwindCSS, poskrbite, da je pravilno konfiguriran v projektu.

Navigacija med stranmi

Aplikacija vsebuje naslednje navigacijske poti:

  1. Domov → Podrobnosti restavracije: Ob kliku na kartico restavracije
  2. Podrobnosti restavracije → Rezervacija: Ob kliku na gumb "Rezerviraj" v ReservationWidget komponenti
  3. Rezervacija → Potrditev rezervacije: Po uspešno izpolnjenem rezervacijskem obrazcu
  4. Potrditev rezervacije → Domov: Ob kliku na gumb za zapiranje
  5. Domov → Zgodovina rezervacij: Z navigacijo preko Footer komponente
  6. Zgodovina rezervacij → Podrobnosti rezervacije: Ob kliku na "Uredi" pri posamezni rezervaciji
  7. Podrobnosti rezervacije → Domov: Z navigacijo preko gumba za nazaj

Koda za implementacijo navigacije je del NavigationContext in se uporablja preko navigateTo funkcije v App.tsx. Na primer:

const { navigateTo } = useContext(NavigationContext);

const handleButtonClick = () => {
  navigateTo('pageName'); // kjer je pageName ena izmed: 'home', 'detail', 'reservation', 'confirmation', 'reservations'
};