0
0
mirror of https://github.com/Maks1mS/free-ozon-dpr.git synced 2024-12-23 18:42:59 +03:00

feat: add info popup (#2)

* add info popup

* add wikimapia copyright
This commit is contained in:
Maxim Slipenko 2024-06-09 08:04:37 +03:00 committed by GitHub
parent 9215bc9522
commit d1085dfcba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 100 additions and 3 deletions

9
package-lock.json generated
View File

@ -9,6 +9,7 @@
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"fastest-levenshtein": "^1.0.16", "fastest-levenshtein": "^1.0.16",
"js-cookie": "^3.0.5",
"jsdom": "^24.1.0", "jsdom": "^24.1.0",
"modern-async": "^2.0.0", "modern-async": "^2.0.0",
"node-fetch": "^3.3.2", "node-fetch": "^3.3.2",
@ -1887,6 +1888,14 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true "dev": true
}, },
"node_modules/js-cookie": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
"integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==",
"engines": {
"node": ">=14"
}
},
"node_modules/js-yaml": { "node_modules/js-yaml": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",

View File

@ -20,6 +20,7 @@
}, },
"dependencies": { "dependencies": {
"fastest-levenshtein": "^1.0.16", "fastest-levenshtein": "^1.0.16",
"js-cookie": "^3.0.5",
"jsdom": "^24.1.0", "jsdom": "^24.1.0",
"modern-async": "^2.0.0", "modern-async": "^2.0.0",
"node-fetch": "^3.3.2", "node-fetch": "^3.3.2",

View File

@ -31,9 +31,66 @@
.ol-overlay-container > #popup { .ol-overlay-container > #popup {
display: unset; display: unset;
} }
.info-popup {
display: none;
position: absolute;
top: 0;
z-index: 999;
left: 0;
right: 0;
bottom: 0;
background: white;
padding: 5rem;
font-size: 14pt;
}
.info-popup > footer {
display: flex;
flex-direction: column;
gap: 1rem;
border-top: 1px solid black;
padding: 20px;
}
.info-popup > footer > button {
font-size: 14pt;
padding: 10px;
max-width: 300px;
}
</style> </style>
</head> </head>
<body> <body>
<div class="info-popup">
<h1>Важная информация перед использованием сайта</h1>
<h2>Пожалуйста, прочитайте внимательно</h2>
<p>
На сайте собраны данные о пунктах выдачи заказов (ПВЗ) от разных служб доставок, чтобы вам было удобнее выбирать. <b>Создатели сайта не несут ответственности за точность информации о пунктах выдачи.</b> Информация собирается из открытых источников. Для каждого ПВЗ указан источник, откуда была взята информация, чтобы вы смогли сами проверить.
</p>
<p>
<b>Как пользоваться?</b>
<ol>
<li>Найдите удобный для вас пункт выдачи заказов на карте.</li>
<li>Сканируйте QR-код или переходите по ссылке, чтобы добавить адрес пункта выдачи.</li>
<li>В приложении новый пункт выдачи отобразится как "обл. Ростовская, Пункт Партнёра XXXXXX". Не переживайте это нормально. Просто сделайте заказ на этот адрес.</li>
<li>Когда получите уведомление о готовности заказа, приходите в выбранный вами пункт выдачи. Чтобы забрать заказ необходимо будет показать штрих-код из приложения.</li>
</ol>
</p>
<p>Сайт не является коммерческим и не связан ни с одной из служб доставки или с OZON.</p>
<p>Все товарные знаки, логотипы и обозначения, упомянутые на сайте, являются собственностью их соответствующих владельцев.</p>
<p>Проект является проектом с открытым исходным кодом. Если хотите посмотреть исходный код или поучаствовать в проекте - <a href="https://github.com/Maks1mS/free-ozon-dpr">вот ссылка</a>.</p>
<p>Нашли ошибку? Знаете как улучшить сайт? Хотите добавить пункт, который отсутствует? <a href="https://forms.yandex.ru/u/6654bafa90fa7b1b58c67eff/">Напишите нам</a> или создайте Issue на GitHub.</p>
<p>Для улучшения работы сайта и анализа трафика мы используем Яндекс Метрику.</p>
<p>Мы используем cookie-файлы. Вы можете прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом без изменения настроек, вы даёте согласие на использование ваших cookie-файлов.</p>
<footer>
<label>
<input type="checkbox" name="no-show">
Больше не показывать
</label>
<button>Я прочитал и понял прочитанное</button>
</footer>
</div>
<div id="map" class="map"></div> <div id="map" class="map"></div>
<div id="popup" class="ol-popup"> <div id="popup" class="ol-popup">
<a href="#" id="popup-closer" class="ol-popup-closer"></a> <a href="#" id="popup-closer" class="ol-popup-closer"></a>

22
src/info-popup.js Normal file
View File

@ -0,0 +1,22 @@
import Cookies from "js-cookie";
const HIDE_INFO_POPUP = "hideInfoPopup";
document.addEventListener("DOMContentLoaded", function () {
const infoPopup = document.querySelector(".info-popup");
const noShowCheckbox = document.querySelector('input[name="no-show"]');
const confirmButton = document.querySelector('.info-popup footer button');
const hidePopupCookie = Cookies.get(HIDE_INFO_POPUP);
if (!hidePopupCookie) {
infoPopup.style.display = "block";
}
confirmButton.addEventListener("click", function () {
if (noShowCheckbox.checked) {
Cookies.set(HIDE_INFO_POPUP, "true", { expires: 400 });
}
infoPopup.style.display = "none";
});
});

View File

@ -2,6 +2,7 @@ import "./style.css";
import map from "./map"; import map from "./map";
import "./info-popup";
import "./popup"; import "./popup";
import mergedData from "../merged-data.json"; import mergedData from "../merged-data.json";

View File

@ -12,8 +12,10 @@ const MAP_ZOOM = 8.5;
const customTileSource = new TileLayer({ const customTileSource = new TileLayer({
source: new XYZ({ source: new XYZ({
// url: 'https://tile-server.ozon.ru/tile/default/{z}/{x}/{y}.png' attributionsCollapsible: false,
attributions: [
'&#169; <a href="https://wikimapia.org/">Wikimapia</a>'
],
tileUrlFunction: ([z, x, y]) => { tileUrlFunction: ([z, x, y]) => {
const s = x % 4 + (y % 4) * 4 const s = x % 4 + (y % 4) * 4
return `https://i${s}.wikimapia.org/?x=${x}&y=${y}&zoom=${z}&type=map&lng=1` return `https://i${s}.wikimapia.org/?x=${x}&y=${y}&zoom=${z}&type=map&lng=1`

View File

@ -69,5 +69,10 @@ body {
} }
#popup-operation-time { #popup-operation-time {
white-space: pre-line white-space: pre-line;
}
.ol-attribution a:hover {
color: var(--ol-brand-color);
text-decoration: underline;
} }