update
This commit is contained in:
@@ -24,6 +24,7 @@ import EditDish from "./components/Dialogs/EditDish";
|
||||
import Dish from "./components/Dialogs/Dish";
|
||||
import HomeScreen from "./components/Output/HomeScreen";
|
||||
import Cookies from "./components/Dialogs/Cookies";
|
||||
import PrivacyPolicy from "./components/Output/PrivacyPolicy"
|
||||
|
||||
const theme = createMuiTheme({
|
||||
palette: {
|
||||
@@ -82,6 +83,9 @@ function App(props) {
|
||||
<Route path="/kontakt">
|
||||
<Contact />
|
||||
</Route>
|
||||
<Route path="/privacy">
|
||||
<PrivacyPolicy />
|
||||
</Route>
|
||||
<PrivateRoute
|
||||
path="/newRestaurant"
|
||||
component={<NewRestaurant />}
|
||||
|
||||
@@ -86,3 +86,12 @@ export const getTodayHours = (workingHours) => {
|
||||
return workingHours.pn;
|
||||
}
|
||||
};
|
||||
|
||||
export const validateNIP = (nip) => {
|
||||
const separateNumbers = nip.split('');
|
||||
if(separateNumbers.lenght === 10){
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,15 +12,12 @@ import PhotoIcon from "@material-ui/icons/Photo";
|
||||
import RoomIcon from "@material-ui/icons/Room";
|
||||
import RestaurantMenuIcon from "@material-ui/icons/RestaurantMenu";
|
||||
import AddIcon from "@material-ui/icons/Add";
|
||||
import Badge from "@material-ui/core/Badge";
|
||||
import SearchIcon from "@material-ui/icons/Search";
|
||||
import { formatDateBasic } from "../../Services.js";
|
||||
//--------------
|
||||
import EditRestaurantInfo from "../EditRestaurant/EditRestaurantInfo";
|
||||
import EditRestaurantLocation from "../EditRestaurant/EditRestaurantLocation";
|
||||
import EditRestaurantMenu from "../EditRestaurant/EditRestaurantMenu";
|
||||
import EditRestaurantPhoto from "../EditRestaurant/EditRestaurantPhoto";
|
||||
import EditRestaurantSubscription from "../EditRestaurant/EditRestaurantSubscription";
|
||||
import { fetchAllDishes } from "../../actions";
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
@@ -55,26 +52,8 @@ export default function EditRestaurant(props) {
|
||||
const history = useHistory();
|
||||
let { id } = useParams();
|
||||
const restaurants = useSelector((state) => state.data.userData.restaurants);
|
||||
const badgeData = {
|
||||
color: "",
|
||||
secondaryText: "",
|
||||
};
|
||||
const restaurant = restaurants.find(matchId);
|
||||
if (restaurant === undefined) history.push("/");
|
||||
const badgeInit = () => {
|
||||
if (
|
||||
!restaurant.subscriptionActive ||
|
||||
restaurant.subscriptionActive === false
|
||||
) {
|
||||
badgeData.color = "error";
|
||||
badgeData.secondaryText = "Nieaktywna";
|
||||
} else {
|
||||
badgeData.color = "primary";
|
||||
badgeData.secondaryText = `Aktywna do: ${formatDateBasic(
|
||||
restaurant.subscriptionDue
|
||||
)}`;
|
||||
}
|
||||
};
|
||||
dispatch(fetchAllDishes(restaurant._id));
|
||||
|
||||
const handleListItemClick = (event, index) => {
|
||||
@@ -84,7 +63,6 @@ export default function EditRestaurant(props) {
|
||||
function matchId(element) {
|
||||
return element._id === id;
|
||||
}
|
||||
badgeInit();
|
||||
|
||||
return (
|
||||
<div className="editRestaurant-container">
|
||||
@@ -111,31 +89,10 @@ export default function EditRestaurant(props) {
|
||||
</ListItemIcon>
|
||||
<ListItemText primary="Informacje" />
|
||||
</ListItem>
|
||||
<ListItem
|
||||
button
|
||||
selected={tab === 1}
|
||||
onClick={(event) => handleListItemClick(event, 1)}
|
||||
>
|
||||
<ListItemIcon>
|
||||
<Badge
|
||||
className={classes.root}
|
||||
anchorOrigin={{ vertical: "top", horizontal: "left" }}
|
||||
variant="dot"
|
||||
color={badgeData.color}
|
||||
>
|
||||
<DescriptionIcon color="primary" />
|
||||
</Badge>
|
||||
</ListItemIcon>
|
||||
<ListItemText
|
||||
className={classes.secondary}
|
||||
primary="Subskrypcja"
|
||||
secondary={badgeData.secondaryText}
|
||||
/>
|
||||
</ListItem>
|
||||
<ListItem
|
||||
button
|
||||
selected={tab === 2}
|
||||
onClick={(event) => handleListItemClick(event, 2)}
|
||||
onClick={(event) => handleListItemClick(event, 1)}
|
||||
>
|
||||
<ListItemIcon>
|
||||
<PhotoIcon color="primary" />
|
||||
@@ -145,7 +102,7 @@ export default function EditRestaurant(props) {
|
||||
<ListItem
|
||||
button
|
||||
selected={tab === 3}
|
||||
onClick={(event) => handleListItemClick(event, 3)}
|
||||
onClick={(event) => handleListItemClick(event, 2)}
|
||||
>
|
||||
<ListItemIcon>
|
||||
<RoomIcon color="primary" />
|
||||
@@ -155,7 +112,7 @@ export default function EditRestaurant(props) {
|
||||
<ListItem
|
||||
button
|
||||
selected={tab === 4}
|
||||
onClick={(event) => handleListItemClick(event, 4)}
|
||||
onClick={(event) => handleListItemClick(event, 3)}
|
||||
>
|
||||
<ListItemIcon>
|
||||
<RestaurantMenuIcon color="primary" />
|
||||
@@ -175,10 +132,9 @@ export default function EditRestaurant(props) {
|
||||
<Divider />
|
||||
</div>
|
||||
{tab === 0 && <EditRestaurantInfo restaurant={restaurant} />}
|
||||
{tab === 1 && <EditRestaurantSubscription restaurant={restaurant} />}
|
||||
{tab === 2 && <EditRestaurantPhoto restaurant={restaurant} />}
|
||||
{tab === 3 && <EditRestaurantLocation restaurant={restaurant} />}
|
||||
{tab === 4 && <EditRestaurantMenu restaurant={restaurant} />}
|
||||
{tab === 1 && <EditRestaurantPhoto restaurant={restaurant} />}
|
||||
{tab === 2 && <EditRestaurantLocation restaurant={restaurant} />}
|
||||
{tab === 3 && <EditRestaurantMenu restaurant={restaurant} />}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
import React from "react";
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
import DialogTitle from "@material-ui/core/DialogTitle";
|
||||
import DialogContent from "@material-ui/core/DialogContent";
|
||||
import Dialog from "@material-ui/core/Dialog";
|
||||
import Divider from "@material-ui/core/Divider";
|
||||
import ButtonSecondary from "../Input/ButtonSecondary";
|
||||
import ButtonPrimary from "../Input/ButtonPrimary";
|
||||
import IconButton from "@material-ui/core/IconButton";
|
||||
import CloseIcon from "@material-ui/icons/Close";
|
||||
|
||||
export default function PasswordConfirmation(props) {
|
||||
const loginStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
zIndex: "5 !important",
|
||||
textAlign: "center",
|
||||
"& .MuiPaper-root": {
|
||||
backgroundColor: "#262626",
|
||||
color: "#bbbbbb",
|
||||
},
|
||||
minWidth: "250px",
|
||||
},
|
||||
closeButton: {
|
||||
color: "#bbbbbb",
|
||||
position: "absolute",
|
||||
right: theme.spacing(1),
|
||||
top: theme.spacing(1),
|
||||
},
|
||||
}));
|
||||
|
||||
const loginClass = loginStyles();
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
className={loginClass.root}
|
||||
onClose={props.cancel}
|
||||
open={props.open}
|
||||
aria-labelledby="login-title"
|
||||
>
|
||||
<DialogTitle id="login-title">Aktywacja subskrypcji</DialogTitle>
|
||||
<IconButton
|
||||
className={loginClass.closeButton}
|
||||
onClick={props.cancel}
|
||||
aria-label="close"
|
||||
>
|
||||
<CloseIcon />
|
||||
</IconButton>
|
||||
<Divider />
|
||||
<DialogContent>
|
||||
<p>
|
||||
Płatność została rozpoczęta. Jeżeli chcesz ją zrealizować teraz,
|
||||
kliknij przycisk "Zapłać" (zostaniesz przekierowany do portalu
|
||||
Przelewy24). Jeżeli nie masz teraz ochoty zapłacić, na swoim adresie
|
||||
email znajdziesz ten sam link do płatności oraz fakturę pro-forma.
|
||||
(Link do płatności jest ważny 7 dni - po upływie tego czasu transakcja
|
||||
jest automatycznie anulowana)
|
||||
</p>
|
||||
<div className="yesno-dialog-buttons">
|
||||
<ButtonPrimary onClick={props.cancel} text="Zamknij" />
|
||||
<ButtonSecondary onClick={props.accept} text="Zapłać" />
|
||||
</div>
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
);
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
import React, { useState } from "react";
|
||||
import ButtonSecondary from "../Input/ButtonSecondary";
|
||||
import Divider from "@material-ui/core/Divider";
|
||||
import axios from "axios";
|
||||
import { useDispatch, useSelector } from "react-redux";
|
||||
import { notification, refreshUserData } from "../../actions";
|
||||
import { backend } from "../../config.js";
|
||||
import { showBackdrop, hideBackdrop } from "../../actions/toggles";
|
||||
import PaymentDialog from "../Dialogs/PaymentDialog";
|
||||
import { openInNewTab, formatDateBasic } from "../../Services.js";
|
||||
import LocalOfferIcon from '@material-ui/icons/LocalOffer';
|
||||
|
||||
export default function EditRestaurantSubscription(props) {
|
||||
const { subscriptionActive, subscriptionDue } = props.restaurant;
|
||||
const initialState = {
|
||||
transactionId: "",
|
||||
open: false,
|
||||
};
|
||||
const [state, setState] = useState(initialState);
|
||||
const userData = useSelector((state) => state.data.userData);
|
||||
const token = userData.jwt;
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const handleActivateSubscription = (type) => {
|
||||
const data = {
|
||||
restaurantId: props.restaurant._id,
|
||||
userData: {
|
||||
firstname: userData.firstname,
|
||||
lastname: userData.lastname,
|
||||
userId: userData.userId,
|
||||
userEmail: userData.userEmail,
|
||||
NIP: userData.billing.NIP,
|
||||
adress: userData.billing.adress,
|
||||
companyName: userData.billing.companyName,
|
||||
},
|
||||
type: type,
|
||||
};
|
||||
dispatch(showBackdrop());
|
||||
axios({
|
||||
method: "POST",
|
||||
url: backend + "restaurant/subscription",
|
||||
data: data,
|
||||
headers: {
|
||||
"x-auth-token": token,
|
||||
},
|
||||
})
|
||||
.then((response) => {
|
||||
dispatch(hideBackdrop());
|
||||
if (response.status === 200) {
|
||||
setState({ ...state, open: true });
|
||||
} else {
|
||||
dispatch(notification("Wystąpił błąd, spróbuj ponownie.", "error"));
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
dispatch(hideBackdrop());
|
||||
dispatch(notification("Wystąpił błąd, spróbuj ponownie.", "error"));
|
||||
throw error;
|
||||
});
|
||||
};
|
||||
|
||||
const onCancel = () => {
|
||||
setState({ ...state, open: false });
|
||||
};
|
||||
|
||||
const onAccept = () => {
|
||||
dispatch(refreshUserData());
|
||||
openInNewTab("https://secure.przelewy24.pl/trnRequest/0");
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="editSubscription-tab">
|
||||
<PaymentDialog open={state.open} cancel={onCancel} accept={onAccept} />
|
||||
<div className="subscription-text">
|
||||
<h3>Subskrypcja</h3>
|
||||
{subscriptionActive ? (
|
||||
<h5>Aktywna do: {formatDateBasic(subscriptionDue)}</h5>
|
||||
) : (
|
||||
<h5>Nieaktywna</h5>
|
||||
)}
|
||||
</div>
|
||||
{!subscriptionActive && (
|
||||
<div className="subscription-content">
|
||||
<p>
|
||||
Aktywuj subskrypcję, aby Twoja restauracja była widoczna. Na tydzień
|
||||
przed końcem subskrypcji wyślemy Ci email z możliwością opłacenia
|
||||
subskrypcji na kolejny okres.
|
||||
</p>
|
||||
<div className="subscription-cards">
|
||||
<div className="subscription-card">
|
||||
<div className="subscription-title">
|
||||
<LocalOfferIcon/>
|
||||
<h1>Za darmo</h1>
|
||||
</div>
|
||||
<Divider style={{ width: "100%" }} />
|
||||
<h2>3 miesiące</h2>
|
||||
<div className="subscription-desc">
|
||||
<p>Możesz jednorazowo aktywować darmowe 3 miesiące subskrypcji, by móc spokojnie uzupełnić menu.</p>
|
||||
</div>
|
||||
<Divider style={{ width: "100%" }} />
|
||||
<ButtonSecondary
|
||||
text="Aktywuj"
|
||||
onClick={() => handleActivateSubscription(3)}
|
||||
/>
|
||||
</div>
|
||||
<div className="subscription-card">
|
||||
<div className="subscription-title">
|
||||
<LocalOfferIcon/>
|
||||
<h1>50zł</h1>
|
||||
</div>
|
||||
<Divider style={{ width: "100%" }} />
|
||||
<h2>1 miesiąc</h2>
|
||||
<div className="subscription-desc">
|
||||
<p>Aktywuj subskrypcję na jeden miesiąc.</p>
|
||||
</div>
|
||||
<Divider style={{ width: "100%" }} />
|
||||
<ButtonSecondary
|
||||
text="Aktywuj"
|
||||
onClick={() => handleActivateSubscription(1)}
|
||||
/>
|
||||
</div>
|
||||
<div className="subscription-card">
|
||||
<div className="subscription-title">
|
||||
<LocalOfferIcon/>
|
||||
<h1>500zł</h1>
|
||||
</div>
|
||||
<Divider style={{ width: "100%" }} />
|
||||
<h2>1 rok</h2>
|
||||
<div className="subscription-desc">
|
||||
<p>Zapłać z góry za cały rok, a otrzymasz dwa miesiące w prezencie.</p>
|
||||
</div>
|
||||
<Divider style={{ width: "100%" }} />
|
||||
<ButtonSecondary
|
||||
text="Aktywuj"
|
||||
onClick={() => handleActivateSubscription(12)}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{subscriptionActive && (
|
||||
<p>
|
||||
Subskrypcja jest aktywna - Twoja restauracja jest dostępna do
|
||||
przeglądania dla użytkowników. Jeżeli chcesz żeby restauracja była
|
||||
niewidoczna, przejdź do zakładki "Informacje"
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,10 +1,11 @@
|
||||
import React from "react";
|
||||
import { version } from "../../config";
|
||||
|
||||
export default class Footer extends React.Component {
|
||||
render() {
|
||||
return (
|
||||
<div className="footer">
|
||||
<p>Bankai Software @2021 | Menui (v0.6.0)</p>
|
||||
<p>{`Bankai Software @2021 | Menui v${version}`}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React from 'react';
|
||||
import LogoMain from "../Output/logoMain";
|
||||
import SearchPanel from "../Input/SearchPanel";
|
||||
import appstore from "../../public/appstore.png";
|
||||
//import appstore from "../../public/appstore.png";
|
||||
import googleplay from "../../public/googleplay.png";
|
||||
import { openInNewTab } from "../../Services.js";
|
||||
|
||||
@@ -19,7 +19,7 @@ export default function HomeScreen() {
|
||||
<div className="hs-bottom">
|
||||
<h4>Pobierz Menui na telefon</h4>
|
||||
<div>
|
||||
<img className="hs-bottom-icon" src={appstore} alt="Get Menui from App Store" />
|
||||
{/* <img className="hs-bottom-icon" src={appstore} alt="Get Menui from App Store" /> */}
|
||||
<img className="hs-bottom-icon" onClick={() => openInNewTab("https://play.google.com/store/apps/details?id=pl.menui.menui")} src={googleplay} alt="Get Menui from Google Play"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,6 @@ import ListItemIcon from "@material-ui/core/ListItemIcon";
|
||||
import ListItemText from "@material-ui/core/ListItemText";
|
||||
import ListItem from "@material-ui/core/ListItem";
|
||||
import FastfoodIcon from "@material-ui/icons/Fastfood";
|
||||
import Badge from "@material-ui/core/Badge";
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
@@ -25,20 +24,6 @@ const useStyles = makeStyles((theme) => ({
|
||||
|
||||
export default function ListItemRestaurant(props) {
|
||||
const styles = useStyles();
|
||||
const badgeData = {
|
||||
color: "",
|
||||
secondaryText: "",
|
||||
};
|
||||
const badgeInit = () => {
|
||||
if (!props.subscriptionActive || props.subscriptionActive === false) {
|
||||
badgeData.color = "error";
|
||||
badgeData.secondaryText = "Aktywuj sybskrypcję";
|
||||
} else {
|
||||
badgeData.color = "primary";
|
||||
badgeData.secondaryText = "Subskrypcja aktywna";
|
||||
}
|
||||
};
|
||||
badgeInit();
|
||||
|
||||
return (
|
||||
<ListItem
|
||||
@@ -46,19 +31,11 @@ export default function ListItemRestaurant(props) {
|
||||
onClick={() => props.onClick(`/editRestaurant/${props.id}`)}
|
||||
>
|
||||
<ListItemIcon>
|
||||
<Badge
|
||||
className={styles.root}
|
||||
anchorOrigin={{ vertical: "top", horizontal: "left" }}
|
||||
variant="dot"
|
||||
color={badgeData.color}
|
||||
>
|
||||
<FastfoodIcon />
|
||||
</Badge>
|
||||
</ListItemIcon>
|
||||
<ListItemText
|
||||
className={styles.secondary}
|
||||
primary={props.name}
|
||||
secondary={badgeData.secondaryText}
|
||||
/>
|
||||
</ListItem>
|
||||
);
|
||||
|
||||
175
src/components/Output/PrivacyPolicy.js
Normal file
175
src/components/Output/PrivacyPolicy.js
Normal file
@@ -0,0 +1,175 @@
|
||||
import React, { useEffect } from "react";
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
padding: "24px",
|
||||
textAlign: "justify",
|
||||
backgroundColor: "#262626",
|
||||
color: "#bbbbbb",
|
||||
borderRadius: "24px",
|
||||
overflow: "scroll"
|
||||
},
|
||||
paragraph: {
|
||||
padding: "8px",
|
||||
paddingRight: "48px",
|
||||
paddingLeft: "48px",
|
||||
margin: "0"
|
||||
},
|
||||
header: {
|
||||
textAlign: "center"
|
||||
}
|
||||
}));
|
||||
|
||||
export default function PrivacyPolicy() {
|
||||
useEffect(() => {
|
||||
document.title = "Menui - Kontakt";
|
||||
});
|
||||
const style = useStyles();
|
||||
return (
|
||||
<div className={style.root}>
|
||||
<h1 className={style.header}>Polityka prywatności</h1>
|
||||
<h3 className={style.header}>§.1 Postanowienia Ogólne</h3>
|
||||
<p className={style.paragraph}>
|
||||
1. Administratorem danych jest Bankai Software z siedzibą w Mikołajki,
|
||||
ul. Czapla 2, NIP: 7422235479 , REGON: 368383562 . Ochrona danych
|
||||
odbywa się zgodnie z wymogami powszechnie obowiązujących przepisów
|
||||
prawa, a ich przechowywanie ma miejsce na zabezpieczonych serwerach.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
2. Dla interpretacji terminów stosuje się słowniczek Regulaminu lub
|
||||
tak jak zostało to opisane w Polityce Prywatności (jeżeli wynika
|
||||
to bezpośrednio z opisu).
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
3. Na potrzeby lepszego odbioru Polityki Prywatności termin
|
||||
„Użytkownik” zastąpiony został określeniem „Ty”, „Administrator” –
|
||||
„My”. Termin „RODO” oznacza Rozporządzenie Parlamentu Europejskiego
|
||||
i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób
|
||||
fizycznych w związku z przetwarzaniem danych osobowych i w sprawie
|
||||
swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
4. Szanujemy prawo do prywatności i dbamy o bezpieczeństwo danych.
|
||||
W tym celu używany jest m.in. bezpieczny protokół szyfrowania
|
||||
komunikacji (SSL).
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
5. Dane osobowe podawane podczas rejestracji są traktowane jako poufne
|
||||
i nie są widoczne dla osób nieuprawnionych.
|
||||
</p>
|
||||
<h3 className={style.header}>§2. Administrator Danych</h3>
|
||||
<p className={style.paragraph}>
|
||||
1. Usługodawca jest administratorem danych swoich klientów. Oznacza
|
||||
to, że jeśli posiadasz Konto na naszej stronie, to przetwarzamy
|
||||
Twoje dane jak: adres e-mail (w przypadku zwykłych użytkowników), lub:
|
||||
imię, nazwisko, adres e-mail, nazwa, NIP i adres firmy (w przypadku
|
||||
użytkowników biznesowych – restauratorów).
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
2. Dane osobowe przetwarzane są:a. zgodnie z przepisami dotyczącymi
|
||||
ochrony danych osobowych,b. zgodnie z wdrożoną Polityką Prywatności,c.
|
||||
w zakresie i celu niezbędnym do nawiązania, ukształtowania treści
|
||||
Umowy, zmiany bądź jej rozwiązania oraz prawidłowej realizacji Usług
|
||||
świadczonych drogą elektroniczną, w zakresie i celu niezbędnym
|
||||
do wypełnienia uzasadnionych interesów (prawnie usprawiedliwionych
|
||||
celów), a przetwarzanie nie narusza praw i wolności osoby, której dane
|
||||
dotyczą.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
3. Każda osoba, której dane dotyczą (jeżeli jesteśmy ich
|
||||
administratorem) ma prawo dostępu do danych, sprostowania, usunięcia
|
||||
lub ograniczenia przetwarzania, prawo sprzeciwu, prawo wniesienia
|
||||
skargi do organu nadzorczego.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
4. Kontakt z osobą nadzorującą przetwarzanie danych osobowych
|
||||
w organizacji Usługodawcy jest możliwy drogą elektroniczną pod adresem
|
||||
e-mail: menui@menui.pl.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
5. Zastrzegamy sobie prawo do przetwarzania Twoich danych
|
||||
po rozwiązaniu Umowy lub cofnięciu zgody tylko w zakresie na potrzeby
|
||||
dochodzenia ewentualnych roszczeń przed sądem lub jeżeli przepisy
|
||||
krajowe albo unijne bądź prawa międzynarodowego obligują nas
|
||||
do retencji danych.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
6. Usługodawca ma prawo udostępniać dane osobowe Użytkownika
|
||||
oraz innych jego danych podmiotom upoważnionym na podstawie właściwych
|
||||
przepisów prawa (np. organom ścigania).
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
7. Usunięcie danych osobowych może nastąpić na skutek cofnięcia zgody
|
||||
bądź wniesienia prawnie dopuszczalnego sprzeciwu na przetwarzanie
|
||||
danych osobowych.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
8. Usługodawca nie udostępniania danych osobowych innym podmiotom
|
||||
aniżeli upoważnionym na podstawie właściwych przepisów prawa.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
9. Wdrożyliśmy pseudonimizację, szyfrowanie danych oraz mamy
|
||||
wprowadzoną kontrolę dostępu dzięki czemu minimalizujemy skutki
|
||||
ewentualnego naruszenia bezpieczeństwa danych.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
10. Dane osobowe przetwarzają osoby wyłącznie upoważnione przez nas
|
||||
albo przetwarzający, z którymi ściśle współpracujemy.
|
||||
</p>
|
||||
<h3 className={style.header}>§3. Pliki cookies</h3>
|
||||
<p className={style.paragraph}>
|
||||
1. Witryna www.menui.pl używa cookies. Są to niewielkie pliki
|
||||
tekstowe wysyłane przez serwer www i przechowywane
|
||||
przez oprogramowanie komputera przeglądarki. Kiedy przeglądarka
|
||||
ponownie połączy się ze stroną, witryna rozpoznaje rodzaj urządzenia,
|
||||
z którego łączy się użytkownik. Parametry pozwalają na odczytanie
|
||||
informacji w nich zawartych jedynie serwerowi, który je utworzył.
|
||||
Cookies ułatwiają więc korzystanie z wcześniej odwiedzonych witryn.
|
||||
Gromadzone informacje dotyczą, języka, rodzaju systemu operacyjnego,
|
||||
dostawcy usług internetowych, informacji o czasie i dacie, lokalizacji
|
||||
oraz informacji przesyłanych do witryny za pośrednictwem formularza
|
||||
kontaktowego.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
2. Zebrane dane służą do monitorowania i sprawdzenia, w jaki sposób
|
||||
użytkownicy korzystają z naszych witryn, aby usprawniać funkcjonowanie
|
||||
serwisu zapewniając bardziej efektywną i bezproblemową nawigację.
|
||||
Monitorowania informacji o użytkownikach dokonujemy korzystając
|
||||
z narzędzia Google Analytics, które rejestruje zachowanie użytkownika
|
||||
na stronie. Cookies identyfikuje użytkownika, co pozwala
|
||||
na dopasowanie treści witryny, z której korzysta, do jego potrzeb.
|
||||
Zapamiętując jego preferencje, umożliwia odpowiednie dopasowanie
|
||||
skierowanych do niego reklam. Stosujemy pliki cookies, aby
|
||||
zagwarantować najwyższy standard wygody naszego serwisu, a zebrane
|
||||
dane są wykorzystywane jedynie wewnątrz firmy Bankai Software w celu
|
||||
optymalizacji działań.
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
3. Na naszej witrynie wykorzystujemy następujące pliki cookies: a)
|
||||
„niezbędne” pliki cookies, umożliwiające korzystanie z usług
|
||||
dostępnych w ramach serwisu, np. uwierzytelniające pliki cookies
|
||||
wykorzystywane do usług wymagających uwierzytelniania w ramach
|
||||
serwisu; b) pliki cookies służące do zapewnienia bezpieczeństwa,
|
||||
np. wykorzystywane do wykrywania nadużyć w zakresie uwierzytelniania
|
||||
w ramach serwisu; c) „funkcjonalne” pliki cookies, umożliwiające
|
||||
„zapamiętanie” wybranych przez użytkownika ustawień i personalizację
|
||||
interfejsu użytkownika, np. w zakresie wybranego języka lub regionu,
|
||||
z którego pochodzi użytkownik, rozmiaru czcionki, wyglądu strony
|
||||
internetowej itp.;
|
||||
</p>
|
||||
<p className={style.paragraph}>
|
||||
4. Użytkownik w każdej chwili ma możliwość wyłączenia lub
|
||||
przywrócenia opcji gromadzenia cookies poprzez zmianę ustawień
|
||||
w przeglądarce internetowej. Instrukcja zarządzania plikami cookies
|
||||
jest dostępna na stronie http://www.allaboutcookies.org/manage-cookies
|
||||
Dodatkowe dane osobowe, jak adres e-mail, zbierane są jedynie
|
||||
w miejscach, w których użytkownik wypełniając formularz wyraźnie
|
||||
wyraził na to zgodę. Powyższe dane zachowujemy i wykorzystujemy
|
||||
tylko do potrzeb niezbędnych do wykonania danej funkcji.
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -14,12 +14,11 @@ import ListItemIcon from "@material-ui/core/ListItemIcon";
|
||||
import HomeIcon from "@material-ui/icons/Home";
|
||||
import MailIcon from "@material-ui/icons/Mail";
|
||||
import { logout } from "../actions";
|
||||
import { showRegulamin } from "../actions/toggles.js";
|
||||
import { makeStyles } from "@material-ui/core/styles";
|
||||
import ButtonSecondary from "./Input/ButtonSecondary";
|
||||
import ListSubheader from "@material-ui/core/ListSubheader";
|
||||
import { useHistory } from "react-router-dom";
|
||||
import GavelIcon from "@material-ui/icons/Gavel";
|
||||
import FingerprintIcon from '@material-ui/icons/Fingerprint';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
paper: {
|
||||
@@ -56,8 +55,8 @@ export default function TopBar() {
|
||||
case "kontakt":
|
||||
history.push("/kontakt");
|
||||
break;
|
||||
case "regulamin":
|
||||
dispatch(showRegulamin());
|
||||
case "privacy":
|
||||
history.push("/privacy");
|
||||
break;
|
||||
case "register":
|
||||
history.push("/register");
|
||||
@@ -137,11 +136,11 @@ export default function TopBar() {
|
||||
</ListItemIcon>
|
||||
<ListItemText primary="Kontakt" />
|
||||
</ListItem>
|
||||
<ListItem button onClick={() => handleClick("regulamin")}>
|
||||
<ListItem button onClick={() => handleClick("privacy")}>
|
||||
<ListItemIcon>
|
||||
<GavelIcon />
|
||||
<FingerprintIcon />
|
||||
</ListItemIcon>
|
||||
<ListItemText primary="Regulamin" />
|
||||
<ListItemText primary="Polityka prywatności" />
|
||||
</ListItem>
|
||||
<Divider />
|
||||
<ListItem>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
//export const backend = "https://api.menui.pl/";
|
||||
export const backend = "http://localhost:4000/";
|
||||
export const version = "1.0.1";
|
||||
|
||||
export const restaurantTypes = [
|
||||
"afrykańska",
|
||||
|
||||
@@ -16,7 +16,7 @@ const store = createStore(
|
||||
rootReducer(history),
|
||||
compose(
|
||||
applyMiddleware(routerMiddleware(history), thunk),
|
||||
window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() : f => f
|
||||
//window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() : f => f
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user