Zmiany nazw offers
This commit is contained in:
BIN
public/logo.webp
BIN
public/logo.webp
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 6.4 KiB |
BIN
public/logo.webp1
Normal file
BIN
public/logo.webp1
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
src/data/ServicesRange.db-shm
Normal file
BIN
src/data/ServicesRange.db-shm
Normal file
Binary file not shown.
0
src/data/ServicesRange.db-wal
Normal file
0
src/data/ServicesRange.db-wal
Normal file
@@ -1,6 +1,6 @@
|
|||||||
import { useEffect, useMemo, useState } from "preact/hooks";
|
import { useEffect, useMemo, useState } from "preact/hooks";
|
||||||
import "../../styles/modal.css";
|
import "../../styles/modal.css";
|
||||||
import "../../styles/offers-table.css";
|
import "../../styles/addons.css";
|
||||||
|
|
||||||
function formatFeatureValue(val) {
|
function formatFeatureValue(val) {
|
||||||
if (val === true || val === "true") return "✓";
|
if (val === true || val === "true") return "✓";
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { useEffect, useState } from "preact/hooks";
|
import { useEffect, useState } from "preact/hooks";
|
||||||
import Markdown from "../Markdown.jsx";
|
import Markdown from "../Markdown.jsx";
|
||||||
import OffersSwitches from "../OffersSwitches.jsx";
|
import OffersSwitches from "../Switches.jsx";
|
||||||
import InternetAddonsModal from "./InternetAddonsModal.jsx";
|
import InternetAddonsModal from "./InternetAddonsModal.jsx";
|
||||||
import "../../styles/offers-table.css";
|
import "../../styles/addons.css";
|
||||||
|
|
||||||
function formatMoney(amount, currency = "PLN") {
|
function formatMoney(amount, currency = "PLN") {
|
||||||
if (typeof amount !== "number" || Number.isNaN(amount)) return "";
|
if (typeof amount !== "number" || Number.isNaN(amount)) return "";
|
||||||
|
|||||||
@@ -23,12 +23,10 @@ export default function OffersSwitches({ switches = [] }) {
|
|||||||
|
|
||||||
const [selected, setSelected] = useState(initialSelected);
|
const [selected, setSelected] = useState(initialSelected);
|
||||||
|
|
||||||
// gdy switches się zmienią (np. hot reload) – zresetuj sensownie
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setSelected(initialSelected);
|
setSelected(initialSelected);
|
||||||
}, [initialSelected]);
|
}, [initialSelected]);
|
||||||
|
|
||||||
// globalny stan + event (tak jak masz teraz)
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const labels = buildLabels(switches, selected);
|
const labels = buildLabels(switches, selected);
|
||||||
|
|
||||||
@@ -66,7 +64,6 @@ export default function OffersSwitches({ switches = [] }) {
|
|||||||
<div class="f-switch-group" key={sw.id}>
|
<div class="f-switch-group" key={sw.id}>
|
||||||
{/* (opcjonalnie) etykieta */}
|
{/* (opcjonalnie) etykieta */}
|
||||||
{/* <div class="f-switch-label">{sw.etykieta}</div> */}
|
{/* <div class="f-switch-label">{sw.etykieta}</div> */}
|
||||||
|
|
||||||
{sw.opcje?.map((op) => (
|
{sw.opcje?.map((op) => (
|
||||||
<button
|
<button
|
||||||
key={`${sw.id}:${op.id}`}
|
key={`${sw.id}:${op.id}`}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useEffect, useMemo, useState } from "preact/hooks";
|
import { useEffect, useMemo, useState } from "preact/hooks";
|
||||||
import "../../styles/modal.css";
|
import "../../styles/modal.css";
|
||||||
import "../../styles/offers-table.css";
|
import "../../styles/addons.css";
|
||||||
|
|
||||||
function formatFeatureValue(val) {
|
function formatFeatureValue(val) {
|
||||||
if (val === true || val === "true") return "✓";
|
if (val === true || val === "true") return "✓";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useEffect, useMemo, useState } from "preact/hooks";
|
import { useEffect, useMemo, useState } from "preact/hooks";
|
||||||
import "../../styles/modal.css";
|
import "../../styles/modal.css";
|
||||||
import "../../styles/offers-table.css";
|
import "../../styles/addons.css";
|
||||||
|
|
||||||
function formatFeatureValue(val) {
|
function formatFeatureValue(val) {
|
||||||
if (val === true || val === "true") return "✓";
|
if (val === true || val === "true") return "✓";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { useEffect, useState } from "preact/hooks";
|
import { useEffect, useState } from "preact/hooks";
|
||||||
import "../../styles/offers-table.css";
|
import "../../styles/addons.css";
|
||||||
|
|
||||||
import OffersSwitches from "../OffersSwitches.jsx";
|
import OffersSwitches from "../Switches.jsx";
|
||||||
import JamboxChannelsModal from "./JamboxChannelsModal.jsx";
|
import JamboxChannelsModal from "./JamboxChannelsModal.jsx";
|
||||||
import JamboxAddonsModal from "./JamboxAddonsModalCompact.jsx";
|
import JamboxAddonsModal from "./JamboxAddonsModalCompact.jsx";
|
||||||
import Markdown from "../Markdown.jsx";
|
import Markdown from "../Markdown.jsx";
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useEffect, useMemo, useState } from "preact/hooks";
|
import { useEffect, useMemo, useState } from "preact/hooks";
|
||||||
import "../../styles/modal.css";
|
import "../../styles/modal.css";
|
||||||
import "../../styles/offers-table.css";
|
import "../../styles/addons.css";
|
||||||
import "../../styles/channels-search.css";
|
import "../../styles/channels-search.css";
|
||||||
|
|
||||||
export default function JamboxChannelsModal({ isOpen, onClose, pkg }) {
|
export default function JamboxChannelsModal({ isOpen, onClose, pkg }) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import Markdown from "../../islands/Markdown.jsx";
|
import Markdown from "../../islands/Markdown.jsx";
|
||||||
import "../../styles/offers-table.css";
|
import "../../styles/addons.css";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {{ klucz: string, label: string, value: (string|number) }} PhoneParam
|
* @typedef {{ klucz: string, label: string, value: (string|number) }} PhoneParam
|
||||||
|
|||||||
@@ -295,20 +295,16 @@
|
|||||||
@apply w-24 h-24 md:w-32 md:h-32 rounded-full;
|
@apply w-24 h-24 md:w-32 md:h-32 rounded-full;
|
||||||
@apply flex flex-col items-center justify-center text-center;
|
@apply flex flex-col items-center justify-center text-center;
|
||||||
@apply shadow-xl ;
|
@apply shadow-xl ;
|
||||||
@apply bg-[--link-hover-light] ;
|
@apply bg-[--f-addons-background] ;
|
||||||
/* text-[--f-text] ; */
|
|
||||||
/* border-[--f-border-color]; */
|
|
||||||
@apply backdrop-blur-md;
|
@apply backdrop-blur-md;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* kwota */
|
/* kwota */
|
||||||
.f-floating-total-amount {
|
.f-floating-total-amount {
|
||||||
@apply text-lg md:text-xl font-bold leading-none;
|
@apply text-lg md:text-xl font-bold leading-none text-[--f-addons-text];
|
||||||
color: hsla(45, 100%, 92%, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* jednostka */
|
/* jednostka */
|
||||||
.f-floating-total-unit {
|
.f-floating-total-unit {
|
||||||
@apply my-1 text-xs md:text-sm opacity-70;
|
@apply my-1 text-xs md:text-sm opacity-70 text-[--f-addons-text];
|
||||||
color: hsla(45, 100%, 92%, 1);
|
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
@import "./footer.css";
|
@import "./footer.css";
|
||||||
@import "./cookie.css";
|
@import "./cookie.css";
|
||||||
@import "./contact.css";
|
@import "./contact.css";
|
||||||
@import "./offers-switches.css";
|
@import "./switches.css";
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-family: 'Nunito', sans-serif;
|
font-family: 'Nunito', sans-serif;
|
||||||
|
|||||||
@@ -53,6 +53,11 @@
|
|||||||
--link-hover-dark: hsla(45, 80%, 70%, 1);
|
--link-hover-dark: hsla(45, 80%, 70%, 1);
|
||||||
--cookie-accept-dark: hsla(120, 60%, 45%, 1);
|
--cookie-accept-dark: hsla(120, 60%, 45%, 1);
|
||||||
--f-navbar-height: 84px;
|
--f-navbar-height: 84px;
|
||||||
|
|
||||||
|
/* Wyrózznienie ceny */
|
||||||
|
--f-addons-text: hsla(45, 100%, 92%, 1);
|
||||||
|
--f-addons-background: hsla(165, 80%, 25%, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
|
|||||||
Reference in New Issue
Block a user