From 6b5a913666ca24bfce145a05b7d319c2b5fd84a4 Mon Sep 17 00:00:00 2001 From: dm Date: Mon, 15 Dec 2025 11:28:53 +0100 Subject: [PATCH] Kolejne zmiany, --- .env.example | 16 - public/files/EVIO TV.pdf | Bin 0 -> 136408 bytes public/files/JAMBOX TV.pdf | Bin 0 -> 133251 bytes src/assets/logo.webp | Bin 2314 -> 17446 bytes src/assets/logo2.webp | Bin 0 -> 2314 bytes src/components/hero/Hero.astro | 2 - src/components/layout/Footer.astro | 4 +- .../sections/SectionChannelsSearch.astro | 19 +- src/content/contact/contact.yaml | 2 +- ...privacy.yaml => polityka-prywatnosci.yaml} | 0 src/content/internet-telewizja/addons.yaml | 8 + src/content/internet-telewizja/section.yaml | 4 +- src/content/polityka-prywatnosci/privacy.yaml | 87 --- src/content/site/footer.yaml | 47 +- src/content/site/switches.yaml | 20 + src/data/ServicesRange.db | Bin 6733824 -> 6742016 bytes src/data/ServicesRange.db-shm | Bin 32768 -> 32768 bytes src/data/ServicesRange.db-wal | Bin 32992 -> 0 bytes src/islands/Internet/InternetAddonsModal.jsx | 2 +- .../Internet/InternetAddonsModalCompact.jsx | 449 +++++++++++ src/islands/Internet/InternetCards.jsx | 12 +- src/islands/OffersSwitches.jsx | 187 ++--- .../jambox/JamboxAddonsModalCompact.jsx | 704 ++++++++++++++++++ src/islands/jambox/JamboxCards.jsx | 9 +- src/islands/jambox/JamboxChannelsModal.jsx | 2 +- src/islands/jambox/JamboxChannelsSearch.jsx | 4 +- src/lib/documents.ts | 4 +- src/lib/mozliwosci.ts | 117 --- src/pages/api/contact/contact.js | 163 +++- src/pages/api/internet/addons.js | 83 --- src/pages/api/internet/plans.js | 111 --- ...-channels.js => import-jambox-channels.js} | 25 +- ...to-yaml.ts => import-jambox-mozliwosci.js} | 95 +-- ...channels.js => jambox-channels-package.js} | 3 +- ...ls-search.js => jambox-channels-search.js} | 13 +- src/pages/api/switches.js | 70 -- src/pages/dokumenty/[slug].astro | 21 +- src/pages/internet-swiatlowodowy/index.astro | 19 + src/pages/internet-telewizja/index.astro | 42 +- src/pages/polityka-prywatnosci/index.astro | 21 - src/styles/hero.css | 2 +- src/styles/markdown.css | 8 +- src/styles/modal.css | 52 +- src/styles/navbar.css | 6 +- src/styles/offers/offers-switches.css | 4 +- src/styles/offers/offers-table.css | 51 +- src/styles/sections.css | 8 +- src/styles/theme.css | 2 +- 48 files changed, 1630 insertions(+), 868 deletions(-) delete mode 100644 .env.example create mode 100644 public/files/EVIO TV.pdf create mode 100644 public/files/JAMBOX TV.pdf create mode 100644 src/assets/logo2.webp rename src/content/document/{privacy.yaml => polityka-prywatnosci.yaml} (100%) delete mode 100644 src/content/polityka-prywatnosci/privacy.yaml create mode 100644 src/content/site/switches.yaml create mode 100644 src/islands/Internet/InternetAddonsModalCompact.jsx create mode 100644 src/islands/jambox/JamboxAddonsModalCompact.jsx delete mode 100644 src/lib/mozliwosci.ts delete mode 100644 src/pages/api/internet/addons.js delete mode 100644 src/pages/api/internet/plans.js rename src/pages/api/jambox/{import-channels.js => import-jambox-channels.js} (91%) rename src/pages/api/jambox/{import-mozliwosci-to-yaml.ts => import-jambox-mozliwosci.js} (67%) rename src/pages/api/jambox/{package-channels.js => jambox-channels-package.js} (92%) rename src/pages/api/jambox/{channels-search.js => jambox-channels-search.js} (80%) delete mode 100644 src/pages/api/switches.js delete mode 100644 src/pages/polityka-prywatnosci/index.astro diff --git a/.env.example b/.env.example deleted file mode 100644 index d85c86d..0000000 --- a/.env.example +++ /dev/null @@ -1,16 +0,0 @@ -# Public URL of the website -PUBLIC_SITE_URL=https://www.fuz.dariuszm.eu -PUBLIC_GOOGLE_MAPS_KEY=AIzaSyDbUU6gvHCQilHyBEWL31FIM4D9-HuvgQw -PUBLIC_RECAPTCHA_SITE_KEY=6Ld0ixIsAAAAAJdeOdzRy0Wd1TR-Xg6n7GMFxe4x - -# Contact form API -FORMS_ENDPOINT=TEST - -# Astro SSR -NODE_ENV=production - -# Smtp -SMTP_HOST=smtp.webio.pl -SMTP_PORT=465 -SMTP_USER=admin@fuz.hostingasp.pl -SMTP_PASS=Janeczek@12 \ No newline at end of file diff --git a/public/files/EVIO TV.pdf b/public/files/EVIO TV.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6471684e130d7ae266cfdfec14a06621394901b8 GIT binary patch literal 136408 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 pxCKE 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 ovf~(mQWQZGl$Ej@8dTKj*KKSpWb4 literal 0 HcmV?d00001 diff --git a/src/assets/logo.webp b/src/assets/logo.webp index f0433c3a7181a9c0654aab73c5e4e390878450cf..4b283d76fba082e36989ef58881332413fbe2dd9 100644 GIT binary patch delta 17124 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

oJ{svpSXtri^Wv! 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 delta 1873 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 literal 0 HcmV?d00001 diff --git a/src/components/hero/Hero.astro b/src/components/hero/Hero.astro index efd03a9..ea2df7a 100644 --- a/src/components/hero/Hero.astro +++ b/src/components/hero/Hero.astro @@ -42,7 +42,6 @@ const mobile = findImage("mobile"); const tablet = findImage("tablet"); const desktop = findImage("desktop"); -// Generujemy prawdziwe srcsety (a nie pojedynczy URL) const mobileSet = mobile ? await getImage({ src: mobile, widths: [480, 640], format: "webp" }) : null; @@ -51,7 +50,6 @@ const tabletSet = tablet ? await getImage({ src: tablet, widths: [768, 1024], format: "webp" }) : null; -// Fallback (największy, eager) const desktopImg = desktop ? await getImage({ src: desktop, widths: [1280, 1440, 1920], format: "webp" }) : null; diff --git a/src/components/layout/Footer.astro b/src/components/layout/Footer.astro index 194a2ab..c002a32 100644 --- a/src/components/layout/Footer.astro +++ b/src/components/layout/Footer.astro @@ -15,11 +15,11 @@ const footer = yaml.load( {footer.company.address.line1}
{footer.company.address.line2}

-
Polityka prywatności + Polityka prywatności diff --git a/src/content/contact/contact.yaml b/src/content/contact/contact.yaml index c6b5aec..5b37f82 100644 --- a/src/content/contact/contact.yaml +++ b/src/content/contact/contact.yaml @@ -41,7 +41,7 @@ form: rodo: label: "Wyrażam zgodę na przetwarzanie moich danych osobowych zgodnie z" - policyLink: "/polityka-prywatnosci" + policyLink: "/dokumenty/polityka-prywatnosci" policyText: "polityką prywatności" policyTitle: "Polityka prywatności FUZ Adam Rojek" diff --git a/src/content/document/privacy.yaml b/src/content/document/polityka-prywatnosci.yaml similarity index 100% rename from src/content/document/privacy.yaml rename to src/content/document/polityka-prywatnosci.yaml diff --git a/src/content/internet-telewizja/addons.yaml b/src/content/internet-telewizja/addons.yaml index 6c16963..468d27a 100644 --- a/src/content/internet-telewizja/addons.yaml +++ b/src/content/internet-telewizja/addons.yaml @@ -5,14 +5,22 @@ cena_opis: "zł/mies." dekodery: - id: arris_4302 nazwa: "Arris 4302" + opis: | + Arris 4302 HD to kompaktowy sprzęt z możliwością korzystania z jakości HD. + Oferuje opcjonalne podłączenie dedykowanego dysku zewnętrznego Arris DVR-One cena: 0 - id: arris_5202 nazwa: "Arris 5202" + opis: | + Wydajny dekoder z możliwością korzystania z technologii 4K. + Dekoder obsługuje także technologie: High Dynamic Range (HDR), 10-bitowy kolor z dekodowaniem HEVC. cena: 5 - id: tv_smart_4k nazwa: "TV Smart 4K" + opis: | + TV Smart 4K BOX to kompaktowe i mobilne centrum domowej rozrywki, które zapewnia dostęp do ulubionych programów oraz filmów wszędzie tam, gdzie możesz połączyć się z Internetem. cena: 10 dodatki: diff --git a/src/content/internet-telewizja/section.yaml b/src/content/internet-telewizja/section.yaml index 9c87452..20256fe 100644 --- a/src/content/internet-telewizja/section.yaml +++ b/src/content/internet-telewizja/section.yaml @@ -11,7 +11,7 @@ sections: Dekoder obsługuje usługi takie jak: CatchUp, StartOver, nagrywanie w chmurze (JAMBO Nagrywarka), nagrywanie na dysku (USB PVR oraz MultiPVR), dostęp do wideo na życzenie VOD i inne. Oferuje opcjonalne podłączenie dedykowanego dysku zewnętrznego Arris DVR-One. - Ogólna specyfikacja techniczna: + ## Ogólna specyfikacja techniczna: - Procesor 6000 DMIPS z zaawansowaną kartą graficzną z dekoderem telewizji cyfrowej HD - Pamięć RAM 1 GB DDR3 - Pamięć Flash 256 MB @@ -31,7 +31,7 @@ sections: Oprogramowanie Kyanit z wygodnym i szybkim interfejsem użytkownika. Dekoder obsługuje także technologie: High Dynamic Range (HDR), 10-bitowy kolor z dekodowaniem HEVC. - Ogólna specyfikacja techniczna dekodera Arris 5202 4K + ## Ogólna specyfikacja techniczna: - Szybki procesor Dual-core, 8500 DMIPS - Pamięć RAM: DDR3 2GB, 8 GB eMMC Flash - Rozdzielczość obrazu: 4K, Full HD, wsparcie dla technologii HDR10 diff --git a/src/content/polityka-prywatnosci/privacy.yaml b/src/content/polityka-prywatnosci/privacy.yaml deleted file mode 100644 index 17b7e1a..0000000 --- a/src/content/polityka-prywatnosci/privacy.yaml +++ /dev/null @@ -1,87 +0,0 @@ -title: "Polityka Prywatności" - -intro: - -content: | - ## §1. Informacje podstawowe. - - 1. Administratorem Twoich danych osobowych jest: FUZ Adam Rojek, ul. Świętojańska 46, 07-202 Wyszków, zwanym dalej Administratorem. - 2. Kontakt z Administratorem jest możliwy za pośrednictwem: - - poczty e-mail: bok@fuz.pl, - - korespondencyjnie na adres: ul. Świętojańska 46, 07-202 Wyszków. - - ## §2. Zasady przetwarzania danych. - - 1. Administrator przetwarza dane osobowe z poszanowaniem następujących zasad: - 1. w oparciu o podstawę prawną i zgodnie z prawem (legalizm); - 2. rzetelnie i uczciwie (rzetelność); - 3. w sposób przejrzysty dla osoby, której dane dotyczą (transparentność); - 4. w konkretnych celach i nie „na zapas” (minimalizacja); - 5. nie więcej niż potrzeba (adekwatność); - 6. z dbałością o prawidłowość danych (prawidłowość); - 7. nie dłużej niż potrzeba (czasowość); - 8. zapewniając odpowiednie bezpieczeństwo danych (bezpieczeństwo). - - ## §3. Cele, podstawy prawne i zakres przetwarzania danych. - - 1. Twoje dane będziemy przetwarzać: - 1. w celach kontaktowych, aby udzielić ci odpowiedzi na Twoją wiadomość przesłaną nam bezpośrednio drogą e-mailową lub za pośrednictwem formularza na podstawie realizacji prawnie uzasadnionego interesu Administratora związanego z koniecznością udzielenia Ci odpowiedzi. - 2. w celach marketingowych, jeśli wyraziłeś zgodę, - 3. w celu utworzenia i prowadzenia dla Ciebie konta użytkownika w Panelu Klienta, - 4. w celu realizacji Twojego zamówienia, na podstawie zawartej umowy sprzedaży (poprzez skuteczne złożenie zamówienia dochodzi do zawarcia umowy, w której my występujemy w roli sprzedawcy, a Ty kupującego), - 5. w celach statystycznych, analitycznych oraz monitorowania ruchu na Stronie przy użyciu plików cookies, na podstawie realizacji prawnie uzasadnionego interesu Administratora związanego z prawidłowym działaniem i funkcjonowaniem Strony oraz prowadzeniem analizy ruchu na stronie. - 2. Przetwarzamy Twoje dane w zakresie: - 1. jeśli prześlesz nam wiadomość drogą mailową lub za pośrednictwem formularza to będziemy przetwarzać dane, które będą w tej wiadomości zawarte. Przekazanie nam danych w ten sposób następuje dobrowolnie. W każdym czasie możesz zwrócić się do nas z prośbą o usunięcie tych danych. - 2. w przypadku założenia konta użytkownika w Panelu Klienta będziemy przetwarzać dane, które podasz w trakcie podpisywania umowy abonenckiej, a w szczególności: Twoje imię i nazwisko, adres e-mail, nr telefonu, adres zamieszkania. Podanie imienia, nazwiska, adresu e-mail stanowi warunek założenia konta użytkownika. - 3. pozostałe dane, które Administrator przetwarza to adres IP i inne dane zapisywane w plikach cookies, które służą Administratorowi do analizy korzystania przez Ciebie i innych użytkowników Strony. Przetwarzanie danych w tym zakresie może zostać wstrzymane po złożeniu przez Ciebie sprzeciwu. - 3. Serwis wykorzystuje dane osobowe w następujących celach: - - prowadzenie rozmów typu chat online, - - prowadzenie rozmów telefonicznych, - - obsługa zapytań przez formularz, - - realizacja zamówionych usług, - - prezentacja oferty lub informacji, - - wstępna zdalna weryfikacja możliwości technicznych świadczenia usługi w danej lokalizacji (podstawą prawną przetwarzania danych jest udzielona zgoda). - 4. Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniu w następujący sposób: - - poprzez dobrowolnie wprowadzone w formularzach dane, które zostają wprowadzone do systemów Operatora. - - poprzez zapisywanie w urządzeniach końcowych plików cookie (tzw. „ciasteczka”). - - ## §4. Odbiorcy danych oraz zamiar przekazywania danych do Państwa spoza EOG lub organizacji międzynarodowej. - - 1. Odbiorcami Twoich danych osobowych są: - - podmiot dostarczający oprogramowanie do analizy ruchu naszej stronie (np. Google Analytics); - - podmiot dostarczający oprogramowanie obsługujące konta użytkowników; - - pośrednicy płatności internetowych z których usług korzystamy. - - Twoje dane nie są przekazywane do Państwa spoza EOG lub organizacji międzynarodowej. - - ## §5. Termin przechowywania danych. - - Jeśli przekazałeś nam swoje dane w wiadomości przesłanej drogą mailową lub za pośrednictwem formularza, to Twoje dane będziemy przetwarzać do momentu złożenia przez Ciebie żądania usunięcia tych danych lub sprzeciwu wobec przetwarzania, ale również w przypadku, w którym uznamy, że zrealizowaliśmy prawnie uzasadniony interes Administratora. - - ## §6. Prawa użytkowników. - - 1. W związku z przetwarzaniem Twoich danych przysługują Ci następujące prawa: - - dostępu do treści swoich danych oraz - - prawo ich sprostowania, usunięcia, ograniczenia przetwarzania, - - prawo do przenoszenia danych, - - prawo wniesienia sprzeciwu, - - prawo do cofnięcia zgody na ich przetwarzanie w dowolnym momencie i w dowolnej formie, chyba że przetwarzanie Twoich danych odbywa się w celu wykonywania umowy przez Administratora, w celu wywiązania się przez Administratora z obowiązków prawnych względem instytucji państwowych lub w celu realizacji prawnie uzasadnionych interesów Administratora. - - 2. Masz także prawo wniesienia skargi do Prezesa Urzędu Ochrony Danych Osobowych (na adres Urzędu Ochrony Danych Osobowych, ul. Stawki 2, 00-193 Warszawa). - 3. Więcej informacji w przedmiocie ochrony danych osobowych możesz otrzymać na stronie internetowej Urzędu Ochrony Danych Osobowych: www.uodo.gov.pl. - - ## §7. Pliki cookies. - - 1. Pliki cookies (tzw. „ciasteczka”) stanowią dane informatyczne, w szczególności pliki tekstowe, które przechowywane są w urządzeniu końcowym, czyli Twoim komputerze, laptopie lub smartfonie, w zależności jakiego urządzenia używasz do oglądania Strony. Cookies zazwyczaj zawierają nazwę strony internetowej, z której pochodzą, czas przechowywania ich na urządzeniu końcowym oraz unikalny numer. Sam możesz zadecydować o formie wykorzystania cookies – ustawienia te są dostępne w każdej przeglądarce internetowej. - 2. Pliki cookies służą przede wszystkim Twojej wygodzie – dzięki ich użyciu, znacznie skraca się czas ładowania strony podczas kolejnych odwiedzin. - 3. Cechy plików cookies: - -dostosowują zawartość stron internetowych serwisu do Użytkownika. Optymalizują poruszanie Użytkownika na stronie, w szczególności pliki te pozwalają rozpoznać urządzenie, za pomocą, którego wyświetlana jest strona i tak ustawić jej parametry, by nawigacja nie sprawiała problemów i zoptymalizowana pod względem indywidualnych potrzeb Użytkownika. - - pozwalają wyświetlić stronę internetową, dostosowaną do Twoich indywidualnych potrzeb; - - tworzą statystyki, dzięki którym Administrator wie, które treści cieszą się zainteresowaniem Użytkowników. Pozwala to na ciągłe ulepszanie strony i taką konstrukcję treści, która będzie odpowiadała osobom odwiedzającym stronę. - - pozwalają na wielokrotne wykorzystanie opcji logowania przez Użytkownika, co jest dla Ciebie dużo wygodniejsze, gdyż podczas przemieszczania się po stronie i wielokrotnych odwiedzin nie jesteś zmuszony do każdorazowego wpisywania loginu i hasła. - 4. W ramach Strony stosowane są dwa zasadnicze rodzaje plików cookies: „sesyjne” (session cookies) oraz „stałe” (persistent cookies). Cookies „sesyjne” są plikami tymczasowymi, które przechowywane są w urządzeniu końcowym Użytkownika do czasu wylogowania, opuszczenia strony internetowej lub wyłączenia oprogramowania (przeglądarki internetowej). „Stałe” pliki cookies przechowywane są w urządzeniu końcowym Użytkownika przez czas określony w parametrach plików cookies lub do czasu ich usunięcia przez Użytkownika. - 5. Użytkownik może w każdym momencie usunąć pliki cookies. - 6. Wprowadzone przez użytkownika ograniczenia stosowania plików cookies mogą wpłynąć na niektóre funkcjonalności Strony, znacznie utrudniając swobodne korzystanie ze wszystkich jego opcji. - 7. Pliki cookies są zamieszczane w urządzeniu końcowym Użytkownika i wykorzystywane mogą być również przez współpracujących z operatorem Strony reklamodawców oraz innych partnerów. Użytkownik jednakże w każdej chwili może je usunąć. - 8. Jeżeli masz wątpliwości, co do ustawień plików cookies, skontaktuj się z operatorem swojej przeglądarki internetowej. - 9. Jeżeli nie zgadzasz się na wykorzystywanie cookies przez Stronę, opuść ją lub aktywuj odpowiednie ustawienia w swojej przeglądarce internetowej. diff --git a/src/content/site/footer.yaml b/src/content/site/footer.yaml index 0ce5b6d..b3f2d8b 100644 --- a/src/content/site/footer.yaml +++ b/src/content/site/footer.yaml @@ -1,33 +1,42 @@ company: - name: "FUZ Adam Rojek" + name: FUZ Adam Rojek address: - line1: "ul. Świętojańska 46" - line2: "07-200 Wyszków" + line1: ul. Świętojańska 46 + line2: 07-200 Wyszków contact: + title: Kontakt phones: - - "+48 606 369 650" - - "+48 (29) 643 80 55" - email: "biuro@fuz.pl" + - +48 606 369 650 + - +48 (29) 643 80 55 + email: biuro@fuz.pl services: - title: "Mapa strony" + title: Mapa strony items: - - name: "Internet Światłowodowy" - url: "/internet-swiatlowodowy" - title: "Przejdź do oferty Internetu światłowodowego" + - name: Internet Światłowodowy + url: /internet-swiatlowodowy + title: Przejdź do oferty Internetu światłowodowego - - name: "Internet + Telewizja" - url: "/internet-telewizja" - title: "Przejdź do oferty Internet + Telewizja w FUZ" + - name: Internet i Telewizja + url: /internet-telewizja + title: Przejdź do oferty Internet + Telewizja w FUZ - - name: "Telefon" - url: "/telefon" - title: "Przejdź do oferty telefonu" + - name: Telefon + url: /telefon + title: Przejdź do oferty telefonu - - name: "Zasięg sieci" - url: "/zasieg-sieci" - title: "Sprawdź zasięg sieci FUZ" + - name: Mapa zasiegu sieci + url: /mapa-zasiegu + title: Sprawdź zasięg sieci FUZ + + - name: Kontakt + url: /kontakt + title: Skontaktuj się z nami + + - name: Dokumenty, Regulaminy + url: /dokumenty + title: Dokumenty, regulaminy recaptcha: Ta strona jest chroniona przez reCAPTCHA. diff --git a/src/content/site/switches.yaml b/src/content/site/switches.yaml new file mode 100644 index 0000000..fc43045 --- /dev/null +++ b/src/content/site/switches.yaml @@ -0,0 +1,20 @@ +switches: + - id: budynek + etykieta: Rodzaj budynku + title: Zmień rodzaj budynku by zobaczyć odpowiednie ceny + domyslny: 2 + opcje: + - id: 2 + nazwa: Wielorodzinny + - id: 1 + nazwa: Jednorodzinny + + - id: umowa + etykieta: Okres umowy + title: Wybierz okres umowy by zobaczyć odpowiednie ceny + domyslny: 1 + opcje: + - id: 1 + nazwa: 24 miesiące + - id: 2 + nazwa: Bezterminowa diff --git a/src/data/ServicesRange.db b/src/data/ServicesRange.db index b7782e16564d4a7aaacb65c4b2e7c153b7b7c466..098177588f184fcca57aff75df2669b695939b9a 100644 GIT binary patch delta 907 zcmb``%}*0S7{~GH7E8BfyITY*Qe+VjP^1WGeb)j7!CDZD;A`2^#jI(!1WFW6MWZI3 zFg*cqYcbz!1MhqZf}(^2tn|%#-JLm?;$2oP~F5&eb}9PzaZe ztPn!Nw`UzajX}}*xJ{`rgxebs>Pz1b-y2^_*;ZbAUw8wah$r%@@Ltwd##idg1L3gr zAd)vy8M8PoSC>dGyQq1pice)t_2{gbT-q${x?Y@iH4W_4GDgbG{3<4*Q;E_kKAOcP#W|cu1byho z0HPSg5H4UCBe;kdE+LLljNvlIaRmuX;3_6Dg=@Hu8@P#ExQ!&HVIYMWq+xDug=TA3 zD|Vic5RTGU*z}JLZ!4SnocEKX+b@-gR(aAgGr9R(dfBq=CBK7`d&ErJe@aTJUlT(8 pu73I3{@Ky2(ca?jGnez`eAcpa_Y95h7P-4u&sye!_2JQs`4hV)J5>Mx delta 759 zcmZY3OK%ck6vpwHjttOY2HPT2q}Hk0T99@`#Jje%Ma2uX7o^qd00j-U!CEls65_&@ zY0WIVcj3aspfPdd<XU{$@6=6GY$WUzS4ht0WPK%Ro6?ZIDQO*6)NV+9>iFD}tUpZb4mEYkht{TI;4Ixf$MB`#(aA$4#pJ}UBF18cGos+Z4 z#C+1oq*F7Qq>)NbB^QkUdw-{Ef6^lc3C(wEwp&VhQ%%iy<<+H-SgzDc>y=W?T3gLm zs#3p0N{H;~u}5U5!|3%$@n0UW|%9Kj%la1_G`A&g^)U<9LR-+mlXoIngG5yvT<#u=Q&Ih@A@ zT*M`eVH^oeU=mYE;xew_DpI(H>$riNNMjneFoRjlVICRWMivWL#2wtl67JzXEaZ?! P0m~?&^r2-w@NfMB(?uS6 diff --git a/src/data/ServicesRange.db-shm b/src/data/ServicesRange.db-shm index 350c0c94bc4898c97b91d6e8d2b62bfc4f15ff52..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 100644 GIT binary patch delta 80 zcmZo@U}|V!;+1%$%K!t66E{kWTChv7nNGgVi7p`mlYpuI4+Il)WHuhKbJ}>o$`$~m CWfVmK delta 204 zcmZo@U}|V!s+V}A%K!o_K+MR%Aix2n^Vk>|N~c(5oe!MAe#2+?^Xv#^qU zUrVZbkl7#rGWS0c01GlOOswaW16s?F3$zkMgREvoqI20cHbyuxGcqu5Z2ZZ}%*w#N Xu~E~InTdg8W8-foW)=pZ{7ohRvc@-o diff --git a/src/data/ServicesRange.db-wal b/src/data/ServicesRange.db-wal index db2990834791b2c2791ae2a50118dc3e70f30605..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 32992 zcmeI4TWs9K8prM3cDLCy*|Y+gEfftPlvvqZN{Ip#P`9lc0-J4{3ni3dyt{7d)@yIq zyG>JZkpl%DcmRR8K5>qC;T#Iuy0_K}IE>&~Vc%N_KdyRhs-_&2|KIRg9 z3_jl1wO-*mIt4EKpYC6}-|jAV{o3{a&euDI^8<7PLf8azdu1d#0U4dnd;y3X`+sE@_tZc^TwG zu0+RZ_nt{M0@^VS`bD4QE_P_u-L6@mIrN7v@TWP;*$$=Da=go883m038_S(8A?qJC^{Db zWEu+p1_sDUGFzA^-a>kJkMDq%+A=)cnf2V^CL>FY@U$IilxeRrE*l6gKye>myfxQA+o$3fyP_` z6yoO_vi2*LC*_u=S2bf!ZZ6c-z*{@MVj9hcQfV$1Pb(wW!0NER0R65|3=wxDHN$Eu zx~?=e)1Vf4QfW0Bs!>^>eLYAJAnx5;EJ2H~ecPkwbl_0;j==-nCcc-m4w;(A`V6B1 zrxmlRijh(=c;cKe25l!ZrSW|;5)A90R*|LvMq%=zn5lDuux%T^2ryw@ODWDX2glj_ z?@tRuL;T`FcBJ_uG?=;kfDxv5Er|{dxtQ^mr^BbWZk9E*p%|J9t<*ceU@gG3?A|oY z7EIN_aMG2ssz+Lx4n!D*y?Yy{U#cE8-+Sfs6EN;Pmx`BGo@w7Vd~C8PlQslCgm#u4EAt+RrYwWStLiJ7%{A%c$L< z(B5GeR@^)GKadiRN`Z&-F2w#a;V!4q1(}WAK6PJ8m@BxB?W}!eS{Uo+?VITW-#Q`t z&2(5X3{|&eLpeFG$o0z6xk!vZJ$gfEytGTYhn&|z1{S=ClRoM`PaOY{RZSJ`t@ft0 z(BIE5Zf3fhSDr|EcGZeRu5@CiWnc$Ks6^2Stpu37Zbd6<9r`VsyiiczZq z$8ue^^p;O8yz*Gc~%IKta&*=$UE(!R{CK4)+%Ze%8Rucjxd>J?YM@ziRXwD%^ky*7g5^CU zjt!@TYjO!CsI1j&s46Uj#++*LN0vZzqaB2<2|%L>#PU#D7|12;j=eIO-l z&hfL1U$@9>V;x34iS|%FE#z|i;>~nGxoO@13D1N3bnS-0lnf=0_Ii&kZN{Jty}Czj zmE(#AO|Qp2$H3!9^yx(R9!G+{A?{58%YJ^Ame>0cVyVYk@Tj6jZj($6B9Sn=)YLqr zgn{Gy#!uD!_XR(F@N0e7gMG)koVDA1mEc_A2MHhnB!C2v01`j~NB{{S0VIF~kN^_+ zYZ74e0t0iiAHMVT{ueHw7cfF7&cXFX>jg5ILX2J@Q$W2yh%jDWx&%-!015{BhTGi| zfY;jLm*S`wSm9;?>IG&AE22QXfUk-{y#Q=ep_@?LS>}~RQXHhS3>HZYOk|6;kfCP{L5xWGP4qbv1YOFQcXSqQyz&{Vi3ERYL8?(v&4qx-+Ifq*P(=Qq;ph`fL z;YYFOw>VK#j;G7h$)R?^{Os0kOeMv3FfCT{>b1!N^_J^Nj{0sRIbH?@^eOnYPd?*l z1;ToPkG9XedhX>@ocmtjb1wTs_VeG-IG7X(AOR$R1dsp{Kmter2_OL^fCP{L5?Cby zJ&85k_3L)1C*h#onr4{uN)Hbq9XH%aY8sqse)?2Jg`zQffq(z^;Aj7MZ7k=!7f5E` za`gglpnh>)^0!RP}AOR$R1dsp{Kmter2_S(B68QV+1#%nOqJW6j;9~RwwXj~` z$Su#c(ogR@*WIaBjUebZQ*+P7 diff --git a/src/islands/Internet/InternetAddonsModal.jsx b/src/islands/Internet/InternetAddonsModal.jsx index 996627d..a12f61c 100644 --- a/src/islands/Internet/InternetAddonsModal.jsx +++ b/src/islands/Internet/InternetAddonsModal.jsx @@ -148,7 +148,7 @@ export default function InternetAddonsModal({ onClick={(e) => e.stopPropagation()} >
-

Konfiguracja usług dodatkowych

+

{plan.name} — konfiguracja usług

{/* INTERNET (fiber) jako akordeon */}
diff --git a/src/islands/Internet/InternetAddonsModalCompact.jsx b/src/islands/Internet/InternetAddonsModalCompact.jsx new file mode 100644 index 0000000..bbefe30 --- /dev/null +++ b/src/islands/Internet/InternetAddonsModalCompact.jsx @@ -0,0 +1,449 @@ +import { useEffect, useMemo, useState } from "preact/hooks"; +import "../../styles/modal.css"; +import "../../styles/offers/offers-table.css"; + +function formatFeatureValue(val) { + if (val === true || val === "true") return "✓"; + if (val === false || val === "false" || val == null) return "✕"; + return val; +} + +function money(amount) { + const n = Number(amount || 0); + return n.toFixed(2).replace(".", ","); +} + +/** + * Mapuje YAML telefonu (cards.yaml) na format używany w modalu: + * { id, name, price_monthly, features: [{label, value}] } + */ +function mapPhoneYamlToPlans(phoneCards) { + const list = Array.isArray(phoneCards) ? phoneCards : []; + return list + .filter((c) => c?.widoczny !== false) + .map((c, idx) => ({ + id: String(c?.id ?? c?.nazwa ?? idx), + name: c?.nazwa ?? "—", + price_monthly: Number(c?.cena?.wartosc ?? 0), + features: (Array.isArray(c?.parametry) ? c.parametry : []).map((p) => ({ + label: p.label, + value: p.value, + })), + })); +} + +/** + * Dodatki z YAML: + * { id, nazwa, typ, ilosc, min, max, krok, opis, cena } + */ +function normalizeAddons(addons) { + const list = Array.isArray(addons) ? addons : []; + return list + .filter((a) => a?.id && a?.nazwa) + .map((a) => ({ + id: String(a.id), + nazwa: String(a.nazwa), + typ: String(a.typ || "checkbox"), + ilosc: !!a.ilosc, + min: a.min != null ? Number(a.min) : 0, + max: a.max != null ? Number(a.max) : 10, + krok: a.krok != null ? Number(a.krok) : 1, + opis: a.opis ? String(a.opis) : "", + cena: Number(a.cena ?? 0), + })); +} + +function SectionAccordion({ title, right, open, onToggle, children }) { + return ( +
+ + + {open &&
{children}
} +
+ ); +} + +export default function InternetAddonsModal({ + isOpen, + onClose, + plan, + + phoneCards = [], // telefon/cards.yaml -> cards[] + addons = [], // internet-swiatlowodowy/addons.yaml -> dodatki[] + cenaOpis = "zł/mies.", +}) { + const phonePlans = useMemo(() => mapPhoneYamlToPlans(phoneCards), [phoneCards]); + const addonsList = useMemo(() => normalizeAddons(addons), [addons]); + + const [error, setError] = useState(""); + + const [selectedPhoneId, setSelectedPhoneId] = useState(null); + const [selectedQty, setSelectedQty] = useState({}); + + // ✅ sekcje jako akordeony (jedna otwarta naraz) + const [openSections, setOpenSections] = useState({ + internet: true, + phone: false, + addons: false, + summary: false, + }); + + const toggleSection = (key) => { + setOpenSections((prev) => { + const nextOpen = !prev[key]; + return { + internet: false, + phone: false, + addons: false, + summary: false, + [key]: nextOpen, + }; + }); + }; + + // reset wyborów po otwarciu / zmianie planu + useEffect(() => { + if (!isOpen) return; + setError(""); + setSelectedPhoneId(null); + setSelectedQty({}); + setOpenSections({ internet: true, phone: false, addons: false, summary: false }); + }, [isOpen, plan]); + + if (!isOpen || !plan) return null; + + const basePrice = Number(plan.price_monthly || 0); + + const phonePrice = (() => { + if (!selectedPhoneId) return 0; + const p = phonePlans.find((p) => String(p.id) === String(selectedPhoneId)); + return Number(p?.price_monthly || 0); + })(); + + const addonsPrice = addonsList.reduce((sum, a) => { + const qty = Number(selectedQty[a.id] || 0); + return sum + qty * Number(a.cena || 0); + }, 0); + + const totalMonthly = basePrice + phonePrice + addonsPrice; + + const handlePhoneSelect = (id) => { + if (id === null) { + setSelectedPhoneId(null); + return; + } + setSelectedPhoneId(id); + }; + + const toggleCheckboxAddon = (id) => { + setSelectedQty((prev) => { + const next = { ...prev }; + next[id] = (next[id] || 0) > 0 ? 0 : 1; + return next; + }); + }; + + const setQtyAddon = (id, qty, min, max) => { + const safe = Math.max(min, Math.min(max, qty)); + setSelectedQty((prev) => ({ ...prev, [id]: safe })); + }; + + return ( +
+ + +
e.stopPropagation()} + > +
+

{plan.name} — konfiguracja usług

+ + {error &&

{error}

} + + {/* ✅ INTERNET */} +
+ {money(basePrice)} {cenaOpis}} + open={openSections.internet} + onToggle={() => toggleSection("internet")} + > + {plan.features?.length ? ( +
    + {plan.features.map((f, idx) => ( +
  • + {f.label} + {formatFeatureValue(f.value)} +
  • + ))} +
+ ) : ( +

Brak szczegółów.

+ )} +
+
+ + {/* ✅ TELEFON */} +
+ + {phonePrice ? `${money(phonePrice)} ${cenaOpis}` : "—"} + + } + open={openSections.phone} + onToggle={() => toggleSection("phone")} + > + {phonePlans.length === 0 ? ( +

Brak dostępnych pakietów telefonicznych.

+ ) : ( +
+ {/* brak telefonu */} +
+ +
+ + {phonePlans.map((p) => { + const isSelected = String(selectedPhoneId) === String(p.id); + return ( +
+ + + {/* pokazuj parametry tylko dla wybranego (czytelniej) */} + {isSelected && p.features?.length > 0 && ( +
+
    + {p.features + .filter( + (f) => + !String(f.label || "") + .toLowerCase() + .includes("aktyw"), + ) + .map((f, idx) => ( +
  • + {f.label} + + {formatFeatureValue(f.value)} + +
  • + ))} +
+
+ )} +
+ ); + })} +
+ )} +
+
+ + {/* ✅ DODATKI */} +
+ + {addonsPrice ? `${money(addonsPrice)} ${cenaOpis}` : "—"} + + } + open={openSections.addons} + onToggle={() => toggleSection("addons")} + > + {addonsList.length === 0 ? ( +

Brak dodatkowych usług.

+ ) : ( +
+ {addonsList.map((a) => { + const qty = Number(selectedQty[a.id] || 0); + const isQty = a.typ === "quantity" || a.ilosc === true; + + if (!isQty) { + const checked = qty > 0; + return ( + + ); + } + + // quantity + const min = Number.isFinite(a.min) ? a.min : 0; + const max = Number.isFinite(a.max) ? a.max : 10; + const step = Number.isFinite(a.krok) ? a.krok : 1; + const lineTotal = qty * Number(a.cena || 0); + + return ( +
+ + +
+
{a.nazwa}
+ {a.opis &&
{a.opis}
} +
+ +
e.stopPropagation()}> + + + {qty} + + +
+ +
+
+ {money(a.cena)} {cenaOpis} +
+
+ {qty > 0 ? `${money(lineTotal)} ${cenaOpis}` : "—"} +
+
+
+ ); + })} +
+ )} +
+
+ + {/* ✅ PODSUMOWANIE */} +
+ {money(totalMonthly)} {cenaOpis}} + open={openSections.summary} + onToggle={() => toggleSection("summary")} + > +
+
+
+ Internet + {money(basePrice)} {cenaOpis} +
+ +
+ Telefon + {phonePrice ? `${money(phonePrice)} ${cenaOpis}` : "—"} +
+ +
+ Dodatki + {addonsPrice ? `${money(addonsPrice)} ${cenaOpis}` : "—"} +
+ +
+ Łącznie + {money(totalMonthly)} {cenaOpis} +
+
+
+
+
+ + {/* ✅ zawsze widoczne w rogu */} +
e.stopPropagation()}> +
+ Suma + + {money(totalMonthly)} {cenaOpis} + +
+
+
+
+
+ ); +} diff --git a/src/islands/Internet/InternetCards.jsx b/src/islands/Internet/InternetCards.jsx index 74ec04b..c6852da 100644 --- a/src/islands/Internet/InternetCards.jsx +++ b/src/islands/Internet/InternetCards.jsx @@ -30,7 +30,8 @@ function mapCardToPlan(card, match, labels, waluta) { features.push({ label: "Umowa", value: labels?.umowa || "—" }); features.push({ label: "Aktywacja", - value: typeof match?.aktywacja === "number" ? formatMoney(match.aktywacja, waluta) : "—", + value: + typeof match?.aktywacja === "number" ? formatMoney(match.aktywacja, waluta) : "—", }); return { @@ -50,7 +51,8 @@ function mapCardToPlan(card, match, labels, waluta) { * cenaOpis?: string, * phoneCards?: any[], * addons?: any[], - * addonsCenaOpis?: string + * addonsCenaOpis?: string, + * switches?: any[] // ✅ NOWE: przełączniki z YAML * }} props */ export default function InternetCards({ @@ -62,10 +64,11 @@ export default function InternetCards({ phoneCards = [], addons = [], addonsCenaOpis = "zł/mies.", + switches = [], // ✅ NOWE }) { const visibleCards = Array.isArray(cards) ? cards : []; - // switch state (z /api/switches) + // switch state (teraz idzie z OffersSwitches na podstawie YAML) const [selected, setSelected] = useState({}); const [labels, setLabels] = useState({}); @@ -100,7 +103,8 @@ export default function InternetCards({
)} - + {/* ✅ TERAZ switcher dostaje dane z YAML */} + {visibleCards.length === 0 ? (

Brak dostępnych pakietów.

diff --git a/src/islands/OffersSwitches.jsx b/src/islands/OffersSwitches.jsx index b79e41b..d5afe2e 100644 --- a/src/islands/OffersSwitches.jsx +++ b/src/islands/OffersSwitches.jsx @@ -1,170 +1,79 @@ -import { useEffect, useState } from "preact/hooks"; +import { useEffect, useMemo, useState } from "preact/hooks"; function buildLabels(switches, selected) { const out = {}; for (const sw of switches || []) { - const currentId = selected[sw.id]; - const opt = sw.opcje?.find((op) => String(op.id) === String(currentId)); + const currentId = selected?.[sw.id]; + const opt = sw?.opcje?.find((op) => String(op.id) === String(currentId)); if (opt) out[sw.id] = opt.nazwa; } return out; } -export default function OffersSwitches(props) { - const { switches, selected, onSwitch } = props || {}; - - const isControlled = - Array.isArray(switches) && - switches.length > 0 && - typeof onSwitch === "function"; - - const [autoSwitches, setAutoSwitches] = useState([]); - const [autoSelected, setAutoSelected] = useState({}); - const [loading, setLoading] = useState(false); - const [error, setError] = useState(""); - - useEffect(() => { - if (isControlled) return; - - let cancelled = false; - - async function load() { - setLoading(true); - setError(""); - - try { - const res = await fetch("/api/switches"); - if (!res.ok) throw new Error(`HTTP ${res.status}`); - - const json = await res.json(); - const sws = Array.isArray(json.data) ? json.data : []; - if (cancelled) return; - - const initial = {}; - for (const sw of sws) { - if (sw.domyslny != null) initial[sw.id] = sw.domyslny; - else if (sw.opcje?.length) initial[sw.id] = sw.opcje[0].id; - } - - const labels = buildLabels(sws, initial); - - setAutoSwitches(sws); - setAutoSelected(initial); - - window.fuzSwitchState = { - selected: initial, - labels, - }; - - window.dispatchEvent( - new CustomEvent("fuz:switch-change", { - detail: { - id: null, - value: null, - selected: initial, - labels, - }, - }), - ); - } catch (err) { - console.error("Błąd pobierania przełączników:", err); - if (!cancelled) setError("Nie udało się załadować przełączników."); - } finally { - if (!cancelled) setLoading(false); - } +export default function OffersSwitches({ switches = [] }) { + const initialSelected = useMemo(() => { + const init = {}; + for (const sw of switches) { + if (!sw?.id) continue; + if (sw.domyslny != null) init[sw.id] = sw.domyslny; + else if (sw.opcje?.length) init[sw.id] = sw.opcje[0].id; } + return init; + }, [switches]); - load(); - return () => { - cancelled = true; - }; - }, [isControlled]); - - const effectiveSwitches = isControlled ? switches : autoSwitches; - const effectiveSelected = isControlled ? selected || {} : autoSelected; - - const handleClick = (id, value) => { - if (isControlled) { - onSwitch(id, value); - } else { - setAutoSelected((prev) => { - const next = { ...prev, [id]: value }; - const labels = buildLabels(autoSwitches, next); - - window.fuzSwitchState = { - selected: next, - labels, - }; - - window.dispatchEvent( - new CustomEvent("fuz:switch-change", { - detail: { - id, - value, - selected: next, - labels, - }, - }), - ); - - return next; - }); - } - }; + const [selected, setSelected] = useState(initialSelected); + // gdy switches się zmienią (np. hot reload) – zresetuj sensownie useEffect(() => { - if (!isControlled) return; - if (!Array.isArray(switches) || !switches.length) return; + setSelected(initialSelected); + }, [initialSelected]); - const safeSelected = selected || {}; - const labels = buildLabels(switches, safeSelected); + // globalny stan + event (tak jak masz teraz) + useEffect(() => { + const labels = buildLabels(switches, selected); - window.fuzSwitchState = { - selected: safeSelected, - labels, - }; + window.fuzSwitchState = { selected, labels }; window.dispatchEvent( new CustomEvent("fuz:switch-change", { - detail: { - id: null, - value: null, - selected: safeSelected, - labels, - }, + detail: { id: null, value: null, selected, labels }, }), ); - }, [isControlled, switches, selected]); + }, [switches, selected]); - if (!isControlled && loading) { - return ( -
-

Ładowanie opcji przełączników...

-
- ); - } + const handleClick = (id, value) => { + setSelected((prev) => { + const next = { ...prev, [id]: value }; + const labels = buildLabels(switches, next); - if (!isControlled && error) { - return ( -
-

{error}

-
- ); - } + window.fuzSwitchState = { selected: next, labels }; - if (!effectiveSwitches.length) return null; + window.dispatchEvent( + new CustomEvent("fuz:switch-change", { + detail: { id, value, selected: next, labels }, + }), + ); + + return next; + }); + }; + + if (!Array.isArray(switches) || !switches.length) return null; return (
- {effectiveSwitches.map((sw) => ( -
- {sw.opcje.map((op) => ( + {switches.map((sw) => ( +
+ {/* (opcjonalnie) etykieta */} + {/*
{sw.etykieta}
*/} + + {sw.opcje?.map((op) => ( + + {open &&
{children}
} +
+ ); +} + +export default function JamboxAddonsModal({ + isOpen, + onClose, + pkg, + + phoneCards = [], + tvAddons = [], + addons = [], + decoders = [], + + cenaOpis = "zł/mies.", +}) { + const phonePlans = useMemo(() => mapPhoneYamlToPlans(phoneCards), [phoneCards]); + + const tvAddonsList = useMemo(() => normalizeAddons(tvAddons), [tvAddons]); + const addonsList = useMemo(() => normalizeAddons(addons), [addons]); + + const decodersList = useMemo(() => normalizeDecoders(decoders), [decoders]); + + const tvAddonsVisible = useMemo(() => { + if (!pkg) return []; + return tvAddonsList.filter((a) => isTvAddonAvailableForPkg(a, pkg)); + }, [tvAddonsList, pkg]); + + // wybory + const [selectedPhoneId, setSelectedPhoneId] = useState(null); + const [openPhoneId, setOpenPhoneId] = useState(null); + + const [selectedDecoderId, setSelectedDecoderId] = useState(null); + + const [selectedQty, setSelectedQty] = useState({}); + + const [tvTerm, setTvTerm] = useState({}); // { [id]: "12m" | "bezterminowo" } + + // ✅ sekcje (jedna otwarta naraz) + const [openSections, setOpenSections] = useState({ + base: true, + decoder: false, + tv: false, + phone: false, + addons: false, + summary: false, + }); + + const toggleSection = (key) => { + setOpenSections((prev) => { + const nextOpen = !prev[key]; + return { + base: false, + decoder: false, + tv: false, + phone: false, + addons: false, + summary: false, + [key]: nextOpen, + }; + }); + }; + + // reset po otwarciu / zmianie pakietu + useEffect(() => { + if (!isOpen) return; + + setSelectedPhoneId(null); + setOpenPhoneId(null); + setSelectedDecoderId(null); + setSelectedQty({}); + setTvTerm({}); + + setOpenSections({ + base: true, + decoder: false, + tv: false, + phone: false, + addons: false, + summary: false, + }); + + const d0 = + (Array.isArray(decodersList) && decodersList.find((d) => Number(d.cena) === 0)) || + (Array.isArray(decodersList) ? decodersList[0] : null); + + setSelectedDecoderId(d0 ? String(d0.id) : null); + }, [isOpen, pkg?.id, decodersList]); + + if (!isOpen || !pkg) return null; + + const basePrice = Number(pkg.price_monthly || 0); + + const phonePrice = useMemo(() => { + if (!selectedPhoneId) return 0; + const p = phonePlans.find((x) => String(x.id) === String(selectedPhoneId)); + return Number(p?.price_monthly || 0); + }, [selectedPhoneId, phonePlans]); + + const decoderPrice = useMemo(() => { + if (!selectedDecoderId) return 0; + const d = decodersList.find((x) => String(x.id) === String(selectedDecoderId)); + return Number(d?.cena || 0); + }, [selectedDecoderId, decodersList]); + + const tvAddonsPrice = useMemo(() => { + return tvAddonsVisible.reduce((sum, a) => { + const qty = Number(selectedQty[a.id] || 0); + if (qty <= 0) return sum; + + const termPricing = hasTvTermPricing(a, pkg); + const term = tvTerm[a.id] || "12m"; + const unit = getAddonUnitPrice(a, pkg, termPricing ? term : null); + + return sum + qty * unit; + }, 0); + }, [selectedQty, tvAddonsVisible, tvTerm, pkg]); + + const addonsOnlyPrice = useMemo(() => { + return addonsList.reduce((sum, a) => { + const qty = Number(selectedQty[a.id] || 0); + const unit = getAddonUnitPrice(a, pkg, null); + return sum + qty * unit; + }, 0); + }, [selectedQty, addonsList, pkg]); + + const addonsPrice = tvAddonsPrice + addonsOnlyPrice; + const totalMonthly = basePrice + phonePrice + decoderPrice + addonsPrice; + + const handlePhoneSelect = (id) => { + if (id === null) { + setSelectedPhoneId(null); + setOpenPhoneId(null); + return; + } + setSelectedPhoneId(id); + setOpenPhoneId((prev) => (String(prev) === String(id) ? null : id)); + }; + + const toggleCheckboxAddon = (id) => { + setSelectedQty((prev) => { + const next = { ...prev }; + next[id] = (next[id] || 0) > 0 ? 0 : 1; + return next; + }); + }; + + const setQtyAddon = (id, qty, min, max) => { + const safe = Math.max(min, Math.min(max, qty)); + setSelectedQty((prev) => ({ ...prev, [id]: safe })); + }; + + const renderAddonRow = (a, isTv = false) => { + const qty = Number(selectedQty[a.id] || 0); + const isQty = a.typ === "quantity" || a.ilosc === true; + + const termPricing = isTv && hasTvTermPricing(a, pkg); + const term = tvTerm[a.id] || "12m"; + const unit = getAddonUnitPrice(a, pkg, termPricing ? term : null); + + if (!isQty) { + return ( + + ); + } + + const min = Number.isFinite(a.min) ? a.min : 0; + const max = Number.isFinite(a.max) ? a.max : 10; + const step = Number.isFinite(a.krok) ? a.krok : 1; + const lineTotal = qty * unit; + + return ( +
+ + +
+
{a.nazwa}
+ {a.opis &&
{a.opis}
} +
+ +
e.stopPropagation()}> + + + {qty} + + +
+ +
+
+ {money(unit)} {cenaOpis} +
+
{qty > 0 ? `${money(lineTotal)} ${cenaOpis}` : "—"}
+
+
+ ); + }; + + return ( +
+ + +
e.stopPropagation()}> +
+

{pkg.name} — konfiguracja usług

+ + {/* ✅ PAKIET (sekcja) */} +
+ {money(basePrice)} {cenaOpis}} + open={openSections.base} + onToggle={() => toggleSection("base")} + > + {pkg.features?.length ? ( +
    + {pkg.features.map((f, idx) => ( +
  • + {f.label} + {formatFeatureValue(f.value)} +
  • + ))} +
+ ) : ( +

Brak szczegółów pakietu.

+ )} +
+
+ + {/* ✅ DEKODER (sekcja) */} +
+ + {decoderPrice ? `${money(decoderPrice)} ${cenaOpis}` : "—"} + + } + open={openSections.decoder} + onToggle={() => toggleSection("decoder")} + > + +{decodersList.length === 0 ? ( +

Brak dostępnych dekoderów.

+) : ( +
+ {decodersList.map((d) => { + const isSelected = String(selectedDecoderId) === String(d.id); + + return ( + + ); + })} +
+)} + + + +
+
+ + {/* ✅ TV ADDONS (sekcja) */} +
+ + {tvAddonsPrice ? `${money(tvAddonsPrice)} ${cenaOpis}` : "—"} + + } + open={openSections.tv} + onToggle={() => toggleSection("tv")} + > + {tvAddonsVisible.length === 0 ? ( +

Brak pakietów dodatkowych TV.

+ ) : ( +
{tvAddonsVisible.map((a) => renderAddonRow(a, true))}
+ )} +
+
+ + {/* ✅ TELEFON (sekcja) */} +
+ + {phonePrice ? `${money(phonePrice)} ${cenaOpis}` : "—"} + + } + open={openSections.phone} + onToggle={() => toggleSection("phone")} + > + {phonePlans.length === 0 ? ( +

Brak dostępnych pakietów telefonicznych.

+) : ( +
+ {/* brak telefonu */} + + + {/* pakiety */} + {phonePlans.map((p) => { + const isSelected = String(selectedPhoneId) === String(p.id); + + return ( +
+ + + {/* ✅ detale ZAWSZE widoczne */} + {p.features?.length > 0 && ( +
+
    + {p.features + .filter( + (f) => + !String(f.label || "").toLowerCase().includes("aktyw"), + ) + .map((f, idx) => ( +
  • + {f.label} + {formatFeatureValue(f.value)} +
  • + ))} +
+
+ )} +
+ ); + })} +
+ +)} + +
+
+ + {/* ✅ DODATKI (sekcja) */} +
+ + {addonsOnlyPrice ? `${money(addonsOnlyPrice)} ${cenaOpis}` : "—"} + + } + open={openSections.addons} + onToggle={() => toggleSection("addons")} + > + {addonsList.length === 0 ? ( +

Brak usług dodatkowych.

+ ) : ( +
{addonsList.map((a) => renderAddonRow(a, false))}
+ )} +
+
+ + {/* ✅ PODSUMOWANIE (sekcja) */} +
+ {money(totalMonthly)} {cenaOpis}} + open={openSections.summary} + onToggle={() => toggleSection("summary")} + > +
+
+
+ Pakiet + {money(basePrice)} {cenaOpis} +
+ +
+ Telefon + {phonePrice ? `${money(phonePrice)} ${cenaOpis}` : "—"} +
+ +
+ Dekoder + {decoderPrice ? `${money(decoderPrice)} ${cenaOpis}` : "—"} +
+ +
+ Dodatki TV + {tvAddonsPrice ? `${money(tvAddonsPrice)} ${cenaOpis}` : "—"} +
+ +
+ Dodatkowe usługi + {addonsOnlyPrice ? `${money(addonsOnlyPrice)} ${cenaOpis}` : "—"} +
+ +
+ Łącznie + {money(totalMonthly)} {cenaOpis} +
+
+
+
+
+ + {/* ✅ pływająca suma jak w internecie */} + {/*
e.stopPropagation()}> +
+ Suma + + {money(totalMonthly)} {cenaOpis} + +
+
*/} +
e.stopPropagation()}> +
+ + Razem + + + {money(totalMonthly)} + + + {cenaOpis} + +
+
+ +
+
+
+ ); +} diff --git a/src/islands/jambox/JamboxCards.jsx b/src/islands/jambox/JamboxCards.jsx index e7df98e..4d9ebda 100644 --- a/src/islands/jambox/JamboxCards.jsx +++ b/src/islands/jambox/JamboxCards.jsx @@ -3,7 +3,7 @@ import "../../styles/offers/offers-table.css"; import OffersSwitches from "../OffersSwitches.jsx"; import JamboxChannelsModal from "./JamboxChannelsModal.jsx"; -import JamboxAddonsModal from "./JamboxAddonsModal.jsx"; +import JamboxAddonsModal from "./JamboxAddonsModalCompact.jsx"; import Markdown from "../Markdown.jsx"; function formatMoney(amount, currency = "PLN") { @@ -50,10 +50,8 @@ function toFeatureRows(params) { * tvAddons?: any[], * addons?: Addon[], * decoders?: Decoder[], - * * addonsCenaOpis?: string, - * - * // ✅ NOWE + * channels?: ChannelYaml[], * channels?: ChannelYaml[] * }} props */ @@ -70,6 +68,7 @@ export default function JamboxCards({ addons = [], decoders = [], channels = [], + switches = [], }) { const visibleCards = Array.isArray(cards) ? cards : []; const wsp = Array.isArray(internetWspolne) ? internetWspolne : []; @@ -110,7 +109,7 @@ export default function JamboxCards({
)} - + {visibleCards.length === 0 ? (

Brak pakietów do wyświetlenia.

diff --git a/src/islands/jambox/JamboxChannelsModal.jsx b/src/islands/jambox/JamboxChannelsModal.jsx index 393417d..1143345 100644 --- a/src/islands/jambox/JamboxChannelsModal.jsx +++ b/src/islands/jambox/JamboxChannelsModal.jsx @@ -35,7 +35,7 @@ export default function JamboxChannelsModal({ isOpen, onClose, pkg }) { try { // ✅ NOWE API: po nazwie pakietu const params = new URLSearchParams({ package: String(pkg.name) }); - const res = await fetch(`/api/jambox/package-channels?${params.toString()}`); + const res = await fetch(`/api/jambox/jambox-channels-package?${params.toString()}`); if (!res.ok) throw new Error(`HTTP ${res.status}`); const json = await res.json(); diff --git a/src/islands/jambox/JamboxChannelsSearch.jsx b/src/islands/jambox/JamboxChannelsSearch.jsx index 8d0c031..bf068bc 100644 --- a/src/islands/jambox/JamboxChannelsSearch.jsx +++ b/src/islands/jambox/JamboxChannelsSearch.jsx @@ -32,7 +32,7 @@ export default function JamboxChannelsSearch() { params.set("limit", "80"); const res = await fetch( - `/api/jambox/channels-search?${params.toString()}`, + `/api/jambox/jambox-channels-search?${params.toString()}`, { signal: ac.signal, headers: { Accept: "application/json" }, @@ -45,7 +45,7 @@ export default function JamboxChannelsSearch() { setItems(Array.isArray(json.data) ? json.data : []); } catch (e) { if (e?.name !== "AbortError") { - console.error("❌ channels search:", e); + console.error("jambox-channels-search:", e); setErr("Błąd wyszukiwania."); } } finally { diff --git a/src/lib/documents.ts b/src/lib/documents.ts index d5000b8..0a7851d 100644 --- a/src/lib/documents.ts +++ b/src/lib/documents.ts @@ -6,7 +6,7 @@ export type DocYaml = { title: string; visible?: boolean; intro?: string; - content: string; // markdown + content: string; }; export type DocEntry = DocYaml & { @@ -32,7 +32,6 @@ export function listDocuments(): DocEntry[] { const slug = file.replace(/\.ya?ml$/i, ""); - // minimalna walidacja, żeby nic nie wybuchało if (!data.title || typeof data.title !== "string") continue; if (!data.content || typeof data.content !== "string") continue; @@ -50,7 +49,6 @@ export function listDocuments(): DocEntry[] { } export function getDocumentBySlug(slug: string): DocEntry | null { - // akceptuj .yaml i .yml const candidates = [`${slug}.yaml`, `${slug}.yml`]; for (const file of candidates) { diff --git a/src/lib/mozliwosci.ts b/src/lib/mozliwosci.ts deleted file mode 100644 index 9c41e39..0000000 --- a/src/lib/mozliwosci.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { XMLParser } from "fast-xml-parser"; - -const URL = "https://www.jambox.pl/xml/mozliwosci.xml"; - -// mały cache w pamięci procesu (SSR) -let cache: { ts: number; items: Feature[] } | null = null; - -export type Feature = { - id: string; - title: string; - icon?: string; - teaser?: string; - description?: string; - screens: string[]; -}; - -function toArray(v: T | T[] | undefined | null): T[] { - if (!v) return []; - return Array.isArray(v) ? v : [v]; -} - -// minimalne “od-HTML-owanie” dla   itd. -function cleanHtmlText(s?: string): string { - if (!s) return ""; - return String(s) - .replace(/ /g, " ") - .replace(/&/g, "&") - .replace(/"/g, '"') - .replace(/'/g, "'") - .replace(/\s+/g, " ") - .trim(); -} - -function slugify(s: string) { - return cleanHtmlText(s) - .toLowerCase() - .replace(/[\u0105]/g, "a") - .replace(/[\u0107]/g, "c") - .replace(/[\u0119]/g, "e") - .replace(/[\u0142]/g, "l") - .replace(/[\u0144]/g, "n") - .replace(/[\u00f3]/g, "o") - .replace(/[\u015b]/g, "s") - .replace(/[\u017a\u017c]/g, "z") - .replace(/[^a-z0-9]+/g, "-") - .replace(/(^-|-$)/g, ""); -} - -function extractUrlsFromString(s: string): string[] { - // wyciąga URL-e zarówno z czystego tekstu, jak i z HTML (
url
) - const urls = s.match(/https?:\/\/[^\s<"]+/g) ?? []; - return urls.map((u) => u.trim()); -} - -function extractScreens(screen: any): string[] { - if (!screen) return []; - - // przypadek: https://...png - if (typeof screen === "string") return extractUrlsFromString(screen); - - // przypadek:
URL
...
- // fast-xml-parser zrobi np. screen.div albo screen["div"] - const divs = (screen as any)?.div; - if (divs) { - return toArray(divs) - .map((d) => { - if (typeof d === "string") return d; - // czasem parser daje obiekt z #text - return d?.["#text"] ?? ""; - }) - .flatMap((x) => extractUrlsFromString(String(x))) - .filter(Boolean); - } - - // fallback: spróbuj stringifikacji i regex na URL - return extractUrlsFromString(JSON.stringify(screen)); -} - -export async function fetchMozliwosci(ttlMs = 60_000): Promise { - const now = Date.now(); - if (cache && now - cache.ts < ttlMs) return cache.items; - - const res = await fetch(URL, { - headers: { accept: "application/xml,text/xml,*/*" }, - }); - if (!res.ok) throw new Error(`JAMBOX XML: HTTP ${res.status}`); - - const xml = await res.text(); - - const parser = new XMLParser({ - ignoreAttributes: false, - attributeNamePrefix: "@_", - trimValues: true, - }); - - const parsed = parser.parse(xml); - - const nodes = toArray(parsed?.xml?.node ?? parsed?.node); - - const items: Feature[] = nodes - .map((n: any) => { - const title = cleanHtmlText(n?.title ?? ""); - const teaser = cleanHtmlText(n?.teaser ?? ""); - const description = cleanHtmlText(n?.description ?? ""); - - const icon = typeof n?.icon === "string" ? n.icon.trim() : undefined; - const screens = extractScreens(n?.screen); - - const id = slugify(title || "feature"); - - return { id, title, icon, teaser, description, screens }; - }) - .filter((x) => x.title); - - cache = { ts: now, items }; - return items; -} diff --git a/src/pages/api/contact/contact.js b/src/pages/api/contact/contact.js index bf49df3..c332c68 100644 --- a/src/pages/api/contact/contact.js +++ b/src/pages/api/contact/contact.js @@ -1,50 +1,163 @@ import nodemailer from "nodemailer"; +function esc(str = "") { + return String(str) + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """); +} + +function buildHtmlMail(form) { + const when = new Date().toLocaleString("pl-PL"); + + return ` + + + + + Nowa wiadomość – FUZ + + + + + + +
+ + + + + + + + + + + + + + + + + +
+
FUZ • Formularz kontaktowy
+
📩 Nowa wiadomość
+
+
+ Poniżej szczegóły zgłoszenia: +
+ + + + + + + + + + + + + + + + + + + + + + +
Imię${esc(form.firstName)}
Nazwisko${esc(form.lastName)}
Email + + ${esc(form.email)} + +
Telefon${esc(form.phone)}
Temat${esc(form.subject)}
+ +
+ +
+ Wiadomość: +
+ +
+ ${esc(form.message)} +
+ +
+ Wysłano: ${when} +
+
+ To jest automatyczna wiadomość wygenerowana przez formularz na stronie FUZ. +
+
+ +`; +} + export async function POST({ request }) { try { const form = await request.json(); + // (opcjonalnie) prosta walidacja minimum: + if (!form?.email || !form?.message) { + return new Response(JSON.stringify({ ok: false, error: "Brak danych" }), { + status: 400, + headers: { "Content-Type": "application/json" }, + }); + } + const transporter = nodemailer.createTransport({ host: import.meta.env.SMTP_HOST, port: Number(import.meta.env.SMTP_PORT), - secure: true, // true = 465, false = 587 + secure: true, auth: { user: import.meta.env.SMTP_USER, pass: import.meta.env.SMTP_PASS, }, - // ⚠️ tylko jeśli masz self-signed / dziwny cert - tls: { - rejectUnauthorized: false, - }, + // Uwaga: lepiej NIE wyłączać TLS w prod, ale zostawiam zgodnie z Twoją wersją + tls: { rejectUnauthorized: false }, }); + const subject = `FUZ: wiadomość od ${form.firstName || ""} ${form.lastName || ""}`.trim(); + + const text = ` +Imię: ${form.firstName || ""} +Nazwisko: ${form.lastName || ""} +Email: ${form.email || ""} +Telefon: ${form.phone || ""} +Temat: ${form.subject || ""} + +Wiadomość: +${form.message || ""} +`.trim(); + + const html = buildHtmlMail(form); + await transporter.sendMail({ from: `"${import.meta.env.SMTP_FROM_NAME}" <${import.meta.env.SMTP_USER}>`, to: import.meta.env.SMTP_TO, - subject: `FUZ: wiadomość od ${form.firstName} ${form.lastName}`, - text: ` -Imię: ${form.firstName} -Nazwisko: ${form.lastName} -Email: ${form.email} -Telefon: ${form.phone} -Temat: ${form.subject} - -Wiadomość: -${form.message} - `.trim(), + subject, + text, + html, + replyTo: form.email ? String(form.email) : undefined, // wygodne do "Odpowiedz" }); - return new Response( - JSON.stringify({ ok: true }), - { status: 200, headers: { "Content-Type": "application/json" } } - ); - + return new Response(JSON.stringify({ ok: true }), { + status: 200, + headers: { "Content-Type": "application/json" }, + }); } catch (error) { console.error("MAIL ERROR:", error); - return new Response( - JSON.stringify({ ok: false }), - { status: 500, headers: { "Content-Type": "application/json" } } - ); + return new Response(JSON.stringify({ ok: false }), { + status: 500, + headers: { "Content-Type": "application/json" }, + }); } } diff --git a/src/pages/api/internet/addons.js b/src/pages/api/internet/addons.js deleted file mode 100644 index a071b92..0000000 --- a/src/pages/api/internet/addons.js +++ /dev/null @@ -1,83 +0,0 @@ -import Database from "better-sqlite3"; - -const DB_PATH = - process.env.FUZ_DB_PATH || "./src/data/ServicesRange.db"; - -export async function GET() { - const db = new Database(DB_PATH, { readonly: true }); - - try { - const addonsRows = db - .prepare( - ` - SELECT id, name, type, description - FROM internet_addons - ORDER BY id - ` - ) - .all(); - - const optionsRows = db - .prepare( - ` - SELECT id, addon_id, code, name, price - FROM internet_addon_options - ORDER BY addon_id, id - ` - ) - .all(); - - const byAddon = new Map(); - - for (const addon of addonsRows) { - byAddon.set(addon.id, { - id: addon.id, - name: addon.name, - type: addon.type, // 'checkbox' / 'select' - description: addon.description || "", - options: [], - }); - } - - for (const opt of optionsRows) { - const parent = byAddon.get(opt.addon_id); - if (!parent) continue; - parent.options.push({ - id: opt.id, - code: opt.code, - name: opt.name, - price: opt.price, - }); - } - - const data = Array.from(byAddon.values()); - - return new Response( - JSON.stringify({ - ok: true, - count: data.length, - data, - }), - { - status: 200, - headers: { - "Content-Type": "application/json; charset=utf-8", - }, - } - ); - } catch (err) { - console.error("❌ Błąd w /api/internet/addons:", err); - return new Response( - JSON.stringify({ - ok: false, - error: err.message || "DB_ERROR", - }), - { - status: 500, - headers: { "Content-Type": "application/json" }, - } - ); - } finally { - db.close(); - } -} diff --git a/src/pages/api/internet/plans.js b/src/pages/api/internet/plans.js deleted file mode 100644 index 14960ae..0000000 --- a/src/pages/api/internet/plans.js +++ /dev/null @@ -1,111 +0,0 @@ -// src/pages/api/internet/plans.js -import Database from "better-sqlite3"; - -const DB_PATH = - process.env.FUZ_DB_PATH || "./src/data/ServicesRange.db"; - -function getDb() { - return new Database(DB_PATH, { readonly: true }); -} - -/** - * GET /api/internet/plans?building=1|2&contract=1|2 - */ -export function GET({ url }) { - const buildingParam = url.searchParams.get("building"); - const contractParam = url.searchParams.get("contract"); - - const building = buildingParam ? Number(buildingParam) : 1; - const contract = contractParam ? Number(contractParam) : 1; - - const db = getDb(); - - try { - const stmt = db.prepare( - ` - SELECT - p.id AS plan_id, - p.name AS plan_name, - p.popular AS plan_popular, - - pr.price_monthly AS price_monthly, - pr.price_installation AS price_installation, - - f.id AS feature_id, - f.label AS feature_label, - fv.value AS feature_value - - FROM internet_plans p - LEFT JOIN internet_plan_prices pr - ON pr.plan_id = p.id - AND pr.building_type = ? - AND pr.contract_type = ? - - LEFT JOIN internet_plan_feature_values fv - ON fv.plan_id = p.id - - LEFT JOIN internet_features f - ON f.id = fv.feature_id - - ORDER BY p.id ASC, f.id ASC; - `.trim() - ); - - const rows = stmt.all(building, contract); - - // grupowanie do struktury: jeden plan = jedna karta - const byPlan = new Map(); - - for (const row of rows) { - if (!byPlan.has(row.plan_id)) { - byPlan.set(row.plan_id, { - id: row.plan_id, - code: row.plan_code, - name: row.plan_name, - popular: !!row.plan_popular, - price_monthly: row.price_monthly, - price_installation: row.price_installation, - features: [], // później wypełniamy - }); - } - - if (row.feature_id) { - byPlan.get(row.plan_id).features.push({ - id: row.feature_id, - label: row.feature_label, - value: row.feature_value, - }); - } - } - - const data = Array.from(byPlan.values()); - - return new Response( - JSON.stringify({ - ok: true, - building, - contract, - count: data.length, - data, - }), - { - status: 200, - headers: { - "Content-Type": "application/json; charset=utf-8", - "Cache-Control": "public, max-age=30", - }, - } - ); - } catch (err) { - console.error("❌ Błąd w /api/internet/plans:", err); - return new Response( - JSON.stringify({ ok: false, error: "DB_ERROR" }), - { - status: 500, - headers: { "Content-Type": "application/json; charset=utf-8" }, - } - ); - } finally { - db.close(); - } -} diff --git a/src/pages/api/jambox/import-channels.js b/src/pages/api/jambox/import-jambox-channels.js similarity index 91% rename from src/pages/api/jambox/import-channels.js rename to src/pages/api/jambox/import-jambox-channels.js index c0e2a77..840b8fa 100644 --- a/src/pages/api/jambox/import-channels.js +++ b/src/pages/api/jambox/import-jambox-channels.js @@ -2,10 +2,6 @@ import path from "node:path"; import { XMLParser } from "fast-xml-parser"; import Database from "better-sqlite3"; -/* ===================== - KONFIG -===================== */ - const FEEDS = [ { url: "https://www.jambox.pl/xml/listakanalow-smart.xml", name: "Smart" }, { url: "https://www.jambox.pl/xml/listakanalow-optimum.xml", name: "Optimum" }, @@ -15,25 +11,16 @@ const FEEDS = [ { url: "https://www.jambox.pl/xml/listakanalow-plusbogaty.xml", name: "Bogaty" }, ]; -// 👉 ustaw jeśli chcesz inną bazę const DB_PATH = process.env.FUZ_DB_PATH || path.join(process.cwd(), "src", "data", "ServicesRange.db"); -/* ===================== - DB -===================== */ - function getDb() { const db = new Database(DB_PATH); db.pragma("journal_mode = WAL"); return db; } -/* ===================== - XML / HTML HELPERS -===================== */ - async function fetchXml(url) { const res = await fetch(url, { headers: { accept: "application/xml,text/xml,*/*" }, @@ -155,17 +142,9 @@ async function downloadLogoAsBase64(url) { } } -/* ===================== - API ROUTE -===================== */ - export async function POST() { const db = getDb(); - // ⚠️ WYMAGANE: - // CREATE UNIQUE INDEX ux_jambox_channels_nazwa_pckg - // ON jambox_channels(nazwa, pckg_name); - const upsert = db.prepare(` INSERT INTO jambox_channels (nazwa, pckg_name, image, opis) VALUES (@nazwa, @pckg_name, @image, @opis) @@ -174,7 +153,7 @@ export async function POST() { opis = COALESCE(excluded.opis, jambox_channels.opis) `); - const logoCache = new Map(); // nazwa(lower) -> base64 | null + const logoCache = new Map(); const rows = []; try { @@ -220,7 +199,7 @@ export async function POST() { { headers: { "content-type": "application/json; charset=utf-8" } } ); } catch (e) { - console.error("❌ import jambox_channels:", e); + console.error("import jambox_channels:", e); return new Response( JSON.stringify({ ok: false, error: String(e.message || e) }), { status: 500 } diff --git a/src/pages/api/jambox/import-mozliwosci-to-yaml.ts b/src/pages/api/jambox/import-jambox-mozliwosci.js similarity index 67% rename from src/pages/api/jambox/import-mozliwosci-to-yaml.ts rename to src/pages/api/jambox/import-jambox-mozliwosci.js index 9bb31dc..c66cfe2 100644 --- a/src/pages/api/jambox/import-mozliwosci-to-yaml.ts +++ b/src/pages/api/jambox/import-jambox-mozliwosci.js @@ -1,30 +1,15 @@ -import type { APIRoute } from "astro"; import { XMLParser } from "fast-xml-parser"; import path from "node:path"; import fs from "node:fs/promises"; const URL = "https://www.jambox.pl/xml/mozliwosci.xml"; -type Section = { - title: string; - image?: string; - content: string; -}; - -type ContentBlock = - | { type: "text"; value: string } - | { type: "list"; items: string[] }; - -function toArray(v: T | T[] | undefined | null): T[] { +function toArray(v) { if (!v) return []; return Array.isArray(v) ? v : [v]; } -/* ======================= - HTML / XML HELPERS -======================= */ - -function decodeEntities(input: string): string { +function decodeEntities(input) { if (!input) return ""; let s = String(input) @@ -35,9 +20,7 @@ function decodeEntities(input: string): string { .replace(/</g, "<") .replace(/>/g, ">"); - s = s.replace(/&#(\d+);/g, (_, d) => - String.fromCodePoint(Number(d)) - ); + s = s.replace(/&#(\d+);/g, (_, d) => String.fromCodePoint(Number(d))); s = s.replace(/&#x([0-9a-fA-F]+);/g, (_, h) => String.fromCodePoint(parseInt(h, 16)) ); @@ -45,30 +28,22 @@ function decodeEntities(input: string): string { return s; } -/** - * Parsuje HTML: - * -

,

,
→ zwykłe nowe linie - * -
    /
    1. → markdown lista - */ -function parseHtmlContent(input?: string): ContentBlock[] { +function parseHtmlContent(input) { if (!input) return []; let s = decodeEntities(String(input)); - // znaczniki list s = s .replace(/<\s*(ul|ol)[^>]*>/gi, "\n__LIST_START__\n") .replace(/<\/\s*(ul|ol)\s*>/gi, "\n__LIST_END__\n") .replace(/<\s*li[^>]*>/gi, "__LI__") .replace(/<\/\s*li\s*>/gi, "\n"); - // normalne bloki s = s .replace(/<\s*br\s*\/?\s*>/gi, "\n") .replace(/<\/\s*(p|div)\s*>/gi, "\n") .replace(/<\s*(p|div)[^>]*>/gi, ""); - // usuń resztę tagów s = s.replace(/<[^>]+>/g, ""); s = s @@ -77,11 +52,11 @@ function parseHtmlContent(input?: string): ContentBlock[] { .replace(/\n{3,}/g, "\n\n") .trim(); - const blocks: ContentBlock[] = []; + const blocks = []; const lines = s.split("\n"); - let textBuf: string[] = []; - let listBuf: string[] | null = null; + let textBuf = []; + let listBuf = null; const flushText = () => { const txt = textBuf.join("\n").trim(); @@ -132,12 +107,11 @@ function parseHtmlContent(input?: string): ContentBlock[] { return blocks; } -function blocksToMarkdown(blocks: ContentBlock[]): string { - const out: string[] = []; +function blocksToMarkdown(blocks) { + const out = []; for (const b of blocks) { if (b.type === "text") { - // 👉 każde zdanie zakończone kropką = nowa linia const lines = b.value .replace(/\.\s+/g, ".\n") .split("\n") @@ -157,20 +131,15 @@ function blocksToMarkdown(blocks: ContentBlock[]): string { return out.join("\n\n").trim(); } - -/* ======================= - SCREEN / YAML -======================= */ - -function extractUrlsFromString(s: string): string[] { - return s.match(/https?:\/\/[^\s<"]+/g) ?? []; +function extractUrlsFromString(s) { + return String(s).match(/https?:\/\/[^\s<"]+/g) ?? []; } -function extractScreens(screen: any): string[] { +function extractScreens(screen) { if (!screen) return []; if (typeof screen === "string") return extractUrlsFromString(screen); - const divs = (screen as any)?.div; + const divs = screen?.div; if (divs) { return toArray(divs) .map((d) => (typeof d === "string" ? d : d?.["#text"] ?? "")) @@ -180,19 +149,19 @@ function extractScreens(screen: any): string[] { return extractUrlsFromString(JSON.stringify(screen)); } -function yamlQuote(v: string): string { +function yamlQuote(v) { return `"${String(v).replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`; } -function toYaml(sections: Section[]): string { - const out: string[] = ["sections:"]; +function toYaml(sections) { + const out = ["sections:"]; for (const s of sections) { out.push(` - title: ${yamlQuote(s.title)}`); if (s.image) out.push(` image: ${yamlQuote(s.image)}`); out.push(" content: |"); - for (const line of s.content.split("\n")) { + for (const line of String(s.content).split("\n")) { out.push(` ${line}`); } @@ -202,11 +171,7 @@ function toYaml(sections: Section[]): string { return out.join("\n").trimEnd() + "\n"; } -/* ======================= - API -======================= */ - -export const POST: APIRoute = async () => { +export async function POST() { const res = await fetch(URL, { headers: { accept: "application/xml,text/xml,*/*" }, }); @@ -219,10 +184,10 @@ export const POST: APIRoute = async () => { const parser = new XMLParser({ trimValues: true }); const parsed = parser.parse(xml); - const nodes = toArray((parsed as any)?.xml?.node ?? (parsed as any)?.node); + const nodes = toArray(parsed?.xml?.node ?? parsed?.node); - const sections: Section[] = nodes - .map((n: any) => { + const sections = nodes + .map((n) => { const title = parseHtmlContent(n?.title) .map((b) => (b.type === "text" ? b.value : "")) .join(" ") @@ -243,21 +208,15 @@ export const POST: APIRoute = async () => { return { title, image, content }; }) - .filter(Boolean) as Section[]; + .filter(Boolean); - const outDir = path.join( - process.cwd(), - "src", - "content", - "internet-telewizja" - ); + const outDir = path.join(process.cwd(), "src", "content", "internet-telewizja"); const outFile = path.join(outDir, "telewizja-mozliwosci.yaml"); await fs.mkdir(outDir, { recursive: true }); await fs.writeFile(outFile, toYaml(sections), "utf8"); - return new Response( - JSON.stringify({ ok: true, count: sections.length }), - { headers: { "content-type": "application/json" } } - ); -}; + return new Response(JSON.stringify({ ok: true, count: sections.length }), { + headers: { "content-type": "application/json" }, + }); +} diff --git a/src/pages/api/jambox/package-channels.js b/src/pages/api/jambox/jambox-channels-package.js similarity index 92% rename from src/pages/api/jambox/package-channels.js rename to src/pages/api/jambox/jambox-channels-package.js index bbe55f7..2c42bad 100644 --- a/src/pages/api/jambox/package-channels.js +++ b/src/pages/api/jambox/jambox-channels-package.js @@ -8,7 +8,6 @@ function getDb() { function cleanPkgName(v) { const s = String(v || "").trim(); - // prosta sanity: niepuste, nieprzesadnie długie if (!s) return null; if (s.length > 64) return null; return s; @@ -51,7 +50,7 @@ export function GET({ url }) { headers: { "Content-Type": "application/json; charset=utf-8" }, }); } catch (err) { - console.error("❌ Błąd w /api/jambox/channels:", err); + console.error("Błąd w /api/jambox/jambox-channels-package:", err); return new Response( JSON.stringify({ ok: false, error: "DB_ERROR" }), { diff --git a/src/pages/api/jambox/channels-search.js b/src/pages/api/jambox/jambox-channels-search.js similarity index 80% rename from src/pages/api/jambox/channels-search.js rename to src/pages/api/jambox/jambox-channels-search.js index ed8dacd..18b5a44 100644 --- a/src/pages/api/jambox/channels-search.js +++ b/src/pages/api/jambox/jambox-channels-search.js @@ -14,7 +14,6 @@ function uniq(arr) { return Array.from(new Set(arr)); } -// jeśli chcesz id do scrollowania (pkg-smart), to możesz dać slug function slugifyPkg(name) { return String(name || "") .toLowerCase() @@ -28,7 +27,6 @@ export function GET({ url }) { const q = (url.searchParams.get("q") || "").trim(); const limit = clamp(Number(url.searchParams.get("limit") || 50), 1, 200); - if (q.length < 1) { return new Response(JSON.stringify({ ok: true, data: [] }), { status: 200, @@ -36,7 +34,6 @@ export function GET({ url }) { }); } - // escape LIKE wildcardów const safe = q.replace(/[%_]/g, (m) => `\\${m}`); const like = `%${safe}%`; @@ -68,19 +65,15 @@ export function GET({ url }) { const packages = uniq(pkgsRaw) .map((p) => ({ - // jeśli UI wymaga ID do scrolla, to to jest najbezpieczniejsze: - id: slugifyPkg(p), // np. "smart" -> użyjesz jako pkg-smart + id: slugifyPkg(p), name: p, - number: "—", // brak w nowej tabeli - guaranteed: false, // brak w nowej tabeli })) .sort((a, b) => a.name.localeCompare(b.name, "pl")); return { name: r.name, - logo_url: r.logo_url || "", // base64 data-url albo "" + logo_url: r.logo_url || "", description: r.description || "", - min_number: 0, // brak numerów packages, }; }); @@ -90,7 +83,7 @@ export function GET({ url }) { headers: { "Content-Type": "application/json; charset=utf-8" }, }); } catch (err) { - console.error("❌ Błąd w /api/jambox/channels-search:", err); + console.error("Błąd w /api/jambox/jambox-channels-search:", err); return new Response(JSON.stringify({ ok: false, error: "DB_ERROR" }), { status: 500, headers: { "Content-Type": "application/json; charset=utf-8" }, diff --git a/src/pages/api/switches.js b/src/pages/api/switches.js deleted file mode 100644 index 6d0d502..0000000 --- a/src/pages/api/switches.js +++ /dev/null @@ -1,70 +0,0 @@ -// src/pages/api/switches.js -import Database from "better-sqlite3"; - -const DB_PATH = - process.env.FUZ_DB_PATH || "./src/data/ServicesRange.db"; - -function getDb() { - return new Database(DB_PATH, { readonly: true }); -} - -export function GET() { - const db = getDb(); - - try { - const buildingTypes = db - .prepare("SELECT code, label FROM jambox_building_types ORDER BY is_default DESC, code") - .all(); - - const contractTypes = db - .prepare("SELECT code, label FROM jambox_contract_types ORDER BY is_default DESC, code") - .all(); - - const switches = [ - { - id: "budynek", - etykieta: "Rodzaj budynku", - domyslny: buildingTypes[0]?.code ?? 1, - title: "Zmień rodzaj budynku by zobaczyć odpowiednie ceny", - opcje: buildingTypes.map((b) => ({ - id: b.code, - nazwa: b.label, - })), - }, - { - id: "umowa", - etykieta: "Okres umowy", - domyslny: contractTypes[0]?.code ?? 1, - title: "Wybierz okres umowy by zobaczyć odpowiednie ceny", - opcje: contractTypes.map((c) => ({ - id: c.code, - nazwa: c.label, - })), - }, - ]; - - return new Response( - JSON.stringify({ ok: true, data: switches }), - { - status: 200, - headers: { - "Content-Type": "application/json; charset=utf-8", - "Cache-Control": "public, max-age=60", - }, - } - ); - } catch (err) { - console.error("Błąd w /api/switches:", err); - return new Response( - JSON.stringify({ ok: false, error: err.message || "DB_ERROR" }), - { - status: 500, - headers: { - "Content-Type": "application/json; charset=utf-8", - }, - } - ); - } finally { - db.close(); - } -} diff --git a/src/pages/dokumenty/[slug].astro b/src/pages/dokumenty/[slug].astro index 68c7367..e5284e0 100644 --- a/src/pages/dokumenty/[slug].astro +++ b/src/pages/dokumenty/[slug].astro @@ -15,18 +15,19 @@ const html = marked.parse(doc.content); --- -
      - - ← Wróć do dokumentów - +
      +
      + + ← Wróć do dokumentów + -

      - {doc.title} -

      +

      + {doc.title} +

      -
      +
      - -
      +
      +
diff --git a/src/pages/internet-swiatlowodowy/index.astro b/src/pages/internet-swiatlowodowy/index.astro index 6e0f6c0..ff9980f 100644 --- a/src/pages/internet-swiatlowodowy/index.astro +++ b/src/pages/internet-swiatlowodowy/index.astro @@ -65,6 +65,24 @@ const addons: Addon[] = Array.isArray(addonsData?.dodatki) // jeśli chcesz, możesz nadpisać cenaOpis w modalu z addons.yaml: const addonsCenaOpis = addonsData?.cena_opis ?? cenaOpis; + +type SwitchOption = { id: string | number; nazwa: string }; +type SwitchDef = { + id: string; + etykieta?: string; + title?: string; + domyslny?: string | number; + opcje: SwitchOption[]; +}; +type SwitchesYaml = { switches?: SwitchDef[] }; + +const switchesData = loadYamlFile( + path.join(process.cwd(), "src", "content", "site", "switches.yaml"), +); + +const switches: SwitchDef[] = Array.isArray(switchesData?.switches) + ? switchesData.switches + : []; --- @@ -80,6 +98,7 @@ const addonsCenaOpis = addonsData?.cena_opis ?? cenaOpis; phoneCards={phoneCards} addons={addons} addonsCenaOpis={addonsCenaOpis} + switches={switches} />
diff --git a/src/pages/internet-telewizja/index.astro b/src/pages/internet-telewizja/index.astro index ab731dd..3b94c91 100644 --- a/src/pages/internet-telewizja/index.astro +++ b/src/pages/internet-telewizja/index.astro @@ -50,7 +50,7 @@ type PhoneCard = { }; type PhoneYaml = { cards?: PhoneCard[] }; -type Decoder = { id: string; nazwa: string; cena: number }; +type Decoder = { id: string; nazwa: string; opis: string; cena: number }; // ✅ dodatki z YAML (do modala) type Addon = { @@ -72,16 +72,16 @@ type AddonsYaml = { dodatki?: Addon[]; }; -type ChannelsYaml = { - title?: string; - updated_at?: string; - channels?: Array<{ - nazwa: string; - opis?: string; - image?: string; - pakiety?: string[]; - }>; -}; +// type ChannelsYaml = { +// title?: string; +// updated_at?: string; +// channels?: Array<{ +// nazwa: string; +// opis?: string; +// image?: string; +// pakiety?: string[]; +// }>; +// }; const seo = loadYamlFile( path.join(process.cwd(), "src", "content", "internet-telewizja", "seo.yaml"), @@ -141,6 +141,25 @@ const decoders: Decoder[] = Array.isArray(addonsYaml?.dekodery) : []; const addonsCenaOpis = addonsYaml?.cena_opis ?? cenaOpis; + +type SwitchOption = { id: string | number; nazwa: string }; +type SwitchDef = { + id: string; + etykieta?: string; + title?: string; + domyslny?: string | number; + opcje: SwitchOption[]; +}; +type SwitchesYaml = { switches?: SwitchDef[] }; + +const switchesYaml = loadYamlFile( + path.join(process.cwd(), "src", "content", "site", "switches.yaml"), +); + +const switches: SwitchDef[] = Array.isArray(switchesYaml?.switches) + ? switchesYaml.switches + : []; + --- @@ -159,6 +178,7 @@ const addonsCenaOpis = addonsYaml?.cena_opis ?? cenaOpis; decoders={decoders} addons={addons} addonsCenaOpis={addonsCenaOpis} + switches={switches} />
diff --git a/src/pages/polityka-prywatnosci/index.astro b/src/pages/polityka-prywatnosci/index.astro deleted file mode 100644 index 28223ae..0000000 --- a/src/pages/polityka-prywatnosci/index.astro +++ /dev/null @@ -1,21 +0,0 @@ ---- -import yaml from "js-yaml"; -import fs from "fs"; -import DefaultLayout from "../../layouts/DefaultLayout.astro"; -import Markdown from "../../islands/Markdown.jsx"; - -const privacy = yaml.load( - fs.readFileSync("./src/content/polityka-prywatnosci/privacy.yaml", "utf8"), -); ---- - - -
-
-

- {privacy.title} -

- -
-
-
diff --git a/src/styles/hero.css b/src/styles/hero.css index c5c96cd..f7d80b4 100644 --- a/src/styles/hero.css +++ b/src/styles/hero.css @@ -32,7 +32,7 @@ background-image: linear-gradient( to left, rgba(0, 0, 0, 0) 0%, - rgba(0, 0, 0, 0.1) 30%, + rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(0, 0, 0, 0.75) 100% ); diff --git a/src/styles/markdown.css b/src/styles/markdown.css index 0814709..d3c11a6 100644 --- a/src/styles/markdown.css +++ b/src/styles/markdown.css @@ -1,7 +1,5 @@ .fuz-markdown { @apply leading-relaxed text-base md:text-lg; - - /* odstępy między elementami */ } .fuz-markdown p { @@ -21,15 +19,15 @@ } .fuz-markdown ul { - @apply list-disc pl-10 mb-4; + @apply list-disc pl-10 my-3; } .fuz-markdown ol { - @apply list-decimal pl-6 mb-4; + @apply list-decimal pl-6 my-3; } .fuz-markdown li { - @apply mb-1; + @apply text-xl ; } .fuz-markdown ul li::marker { diff --git a/src/styles/modal.css b/src/styles/modal.css index 44a14a9..8fa3f12 100644 --- a/src/styles/modal.css +++ b/src/styles/modal.css @@ -104,18 +104,24 @@ /* BAZA: checkbox | main | price */ .f-addon-item { - @apply grid items-start gap-3 px-3 py-2 rounded-xl border cursor-pointer; + @apply grid items-start gap-3 px-3 py-2; + border-bottom: 1px solid rgba(148, 163, 184, 0.4); + /* rounded-xl border cursor-pointer; */ grid-template-columns: auto 1fr auto; - border-color: rgba(148, 163, 184, 0.5); + /* border-color: rgba(148, 163, 184, 0.5); */ background: var(--f-background); } +.f-addon-item:last-child { + border-bottom: none; +} + .f-addon-item:hover { - border-color: color-mix( + /* border-color: color-mix( in srgb, var(--fuz-accent, #2563eb) 70%, rgba(148, 163, 184, 0.5) 30% - ); + ); */ } .f-addon-item input[type="checkbox"] { @@ -331,3 +337,41 @@ color: var(--fuz-accent, #2563eb); } + + + +/* -------------------------- */ +.f-radio-item { + @apply grid items-start gap-3 px-3 py-2 cursor-pointer; + grid-template-columns: auto 1fr auto; + border-bottom: 1px solid rgba(148, 163, 184, 0.4); + background: var(--f-background); +} + +.f-radio-item:last-child { + border-bottom: none; +} + +.f-radio-check input { + @apply mt-1; +} + +.f-radio-name { + @apply font-medium; +} + +.f-radio-price { + @apply whitespace-nowrap font-semibold; +} + +.f-radio-item.is-selected { + /* delikatne wyróżnienie wybranego */ + /* @apply rounded-xl; */ + /* background: rgba(148, 163, 184, 0.12); */ +} + +.f-radio-details { + @apply pl-10 pr-3 pb-3 -mt-1 text-sm; + /* pl-10 = przesunięcie w prawo (radio + gap) */ +} + diff --git a/src/styles/navbar.css b/src/styles/navbar.css index a561595..260780b 100644 --- a/src/styles/navbar.css +++ b/src/styles/navbar.css @@ -3,7 +3,7 @@ } .f-navbar-inner { - @apply max-w-7xl mx-auto flex items-center justify-between py-4 px-4; + @apply max-w-7xl mx-auto flex items-center justify-between py-1 px-4; } .f-navbar-links { @@ -41,7 +41,9 @@ } .f-navbar-logo { - @apply w-[70] h-[36]; + @apply block; + height: 60px; /* testowo: 44px / 40px jak chcesz ciaśniej */ + width: auto; } .f-mobile-backdrop { diff --git a/src/styles/offers/offers-switches.css b/src/styles/offers/offers-switches.css index 75c5260..f977aed 100644 --- a/src/styles/offers/offers-switches.css +++ b/src/styles/offers/offers-switches.css @@ -14,6 +14,6 @@ @apply text-[--f-switcher-text] bg-[--f-switcher-background] ; } -.f-switch:hover { +/* .f-switch:hover { @apply text-[--f-switcher-text-hover] bg-[--f-switcher-background-hover] ; -} \ No newline at end of file +} */ \ No newline at end of file diff --git a/src/styles/offers/offers-table.css b/src/styles/offers/offers-table.css index dab061b..d76c27d 100644 --- a/src/styles/offers/offers-table.css +++ b/src/styles/offers/offers-table.css @@ -49,7 +49,7 @@ } .f-card-row { - @apply grid grid-cols-[2fr_1fr] gap-2 py-1 border-b border-[--f-offers-border] items-center; + @apply grid grid-cols-[2fr_1fr] gap-2 py-2 border-b border-[--f-offers-border] items-center; } .f-card-row:last-child { @@ -57,11 +57,11 @@ } .f-card-label { - @apply text-base font-medium opacity-80; + @apply text-sm font-medium opacity-80; } .f-card-value { - @apply text-base font-semibold text-right; + @apply text-sm font-semibold text-right; } .f-card-value.yes { @@ -268,4 +268,47 @@ .jmb-channel-desc::-webkit-scrollbar-track { background: transparent; - } \ No newline at end of file + } + + + + /* --------------------------------- */ + .f-section-acc .f-accordion-header { + @apply flex items-center justify-between gap-3; +} + +.f-accordion-header-right { + @apply flex items-center gap-3; +} + +.f-acc-chevron { + @apply opacity-60 text-sm; +} + +.f-floating-total { + @apply fixed bottom-5 right-5 z-[10000]; + @apply pointer-events-auto; +} + +/* kółko */ +.f-floating-total-circle { + @apply w-24 h-24 md:w-32 md:h-32 rounded-full; + @apply flex flex-col items-center justify-center text-center; + @apply shadow-xl ; + @apply bg-[--link-hover-light] ; + /* text-[--f-text] ; */ + /* border-[--f-border-color]; */ + @apply backdrop-blur-md; +} + +/* kwota */ +.f-floating-total-amount { + @apply text-lg md:text-xl font-bold leading-none; + color: hsla(45, 100%, 92%, 1); +} + +/* jednostka */ +.f-floating-total-unit { + @apply my-1 text-xs md:text-sm opacity-70; + color: hsla(45, 100%, 92%, 1); +} diff --git a/src/styles/sections.css b/src/styles/sections.css index 3561020..b1e0ff7 100644 --- a/src/styles/sections.css +++ b/src/styles/sections.css @@ -1,11 +1,13 @@ @layer components { .f-section-header { - @apply text-3xl md:text-4xl font-bold mb-6 text-[--f-header]; + @apply text-4xl md:text-5xl font-bold mb-3 text-[--f-header]; + + } .f-section { - @apply pt-10 pb-1 mx-2; + @apply pt-1 pb-1 mx-2; } .f-section-center { @@ -13,7 +15,7 @@ } .f-section-grid { - @apply grid items-center gap-5 max-w-7xl mx-auto; + @apply grid items-center gap-5 max-w-7xl mx-auto mt-8; } .f-section-grid-single { diff --git a/src/styles/theme.css b/src/styles/theme.css index f0f707c..f5b6ca0 100644 --- a/src/styles/theme.css +++ b/src/styles/theme.css @@ -8,7 +8,7 @@ --brand-light: hsl(var(--brand-hue) var(--brand-saturation) var(--brand-lightness)); --link-color-light: hsla(210, 100%, 40%, 1); - --link-hover-light: hsla(165, 80%, 35%, 1); + --link-hover-light: hsla(165, 80%, 25%, 1); /* --link-background-light: hsla(0 0% 50% 1); */