feat: restore heat pump pages, navigation links and blog posts

This commit is contained in:
MichalC
2026-08-01 11:37:22 +02:00
parent 4969318096
commit 02cb49e180
7 changed files with 61 additions and 20 deletions
-2
View File
@@ -18,10 +18,8 @@ export const metadata: Metadata = {
} }
}; };
import { notFound } from 'next/navigation';
export default function PompyCieplaPage() { export default function PompyCieplaPage() {
notFound();
const faqPompyJsonLd = { const faqPompyJsonLd = {
"@context": "https://schema.org", "@context": "https://schema.org",
+2 -2
View File
@@ -65,11 +65,11 @@ export function Footer() {
Klimatyzacja i Montaż Klimatyzacja i Montaż
</Link> </Link>
</li> </li>
{/* <li> <li>
<Link href="/pompy-ciepla" className="hover:text-accent transition-colors"> <Link href="/pompy-ciepla" className="hover:text-accent transition-colors">
Pompy Ciepła Pompy Ciepła
</Link> </Link>
</li> */} </li>
<li> <li>
<Link href="/sklep" className="hover:text-accent transition-colors"> <Link href="/sklep" className="hover:text-accent transition-colors">
+2 -2
View File
@@ -202,12 +202,12 @@ export function Header() {
sections={acSections} sections={acSections}
align="left" align="left"
/> />
{/* <Link <Link
href="/pompy-ciepla" href="/pompy-ciepla"
className="text-sm font-medium text-primary hover:text-accent transition-colors" className="text-sm font-medium text-primary hover:text-accent transition-colors"
> >
Pompy ciepła Pompy ciepła
</Link> */} </Link>
<NavDropdown <NavDropdown
label="Miasta" label="Miasta"
sections={miastaSections} sections={miastaSections}
+2 -2
View File
@@ -133,7 +133,7 @@ export function MobileMenu({ isOpen, onClose }: MobileMenuProps) {
</details> </details>
{/* 2. Pompy Ciepła */} {/* 2. Pompy Ciepła */}
{/* <div className="border-b border-border py-3"> <div className="border-b border-border py-3">
<Link <Link
href="/pompy-ciepla" href="/pompy-ciepla"
onClick={onClose} onClick={onClose}
@@ -141,7 +141,7 @@ export function MobileMenu({ isOpen, onClose }: MobileMenuProps) {
> >
Pompy ciepła Pompy ciepła
</Link> </Link>
</div> */} </div>
{/* Nowa sekcja: Miasta */} {/* Nowa sekcja: Miasta */}
<div className="border-b border-border py-3"> <div className="border-b border-border py-3">
+1 -1
View File
@@ -19,7 +19,7 @@ export function BlogPreview() {
const getCategoryLabel = (cat: string) => { const getCategoryLabel = (cat: string) => {
const labels: Record<string, string> = { const labels: Record<string, string> = {
klimatyzacja: "Klimatyzacja", klimatyzacja: "Klimatyzacja",
// "pompy-ciepla": "Pompy ciepła", "pompy-ciepla": "Pompy ciepła",
porady: "Porady ogólne", porady: "Porady ogólne",
}; };
return labels[cat] || cat; return labels[cat] || cat;
+2 -2
View File
@@ -18,7 +18,7 @@ const POSTS_PER_PAGE = 6;
const categories = [ const categories = [
{ id: 'wszystkie', label: 'Wszystkie' }, { id: 'wszystkie', label: 'Wszystkie' },
{ id: 'klimatyzacja', label: 'Klimatyzacja' }, { id: 'klimatyzacja', label: 'Klimatyzacja' },
// { id: 'pompy-ciepla', label: 'Pompy ciepła' }, { id: 'pompy-ciepla', label: 'Pompy ciepła' },
{ id: 'porady', label: 'Porady' }, { id: 'porady', label: 'Porady' },
]; ];
@@ -41,7 +41,7 @@ export function PostsGrid({ posts, featuredPost }: PostsGridProps) {
const categoryLabels: Record<string, string> = { const categoryLabels: Record<string, string> = {
'klimatyzacja': 'Klimatyzacja', 'klimatyzacja': 'Klimatyzacja',
// 'pompy-ciepla': 'Pompy Ciepła', 'pompy-ciepla': 'Pompy Ciepła',
'porady': 'Porady' 'porady': 'Porady'
}; };
+52 -9
View File
@@ -13,6 +13,51 @@ export interface Post {
} }
export const posts: Post[] = [ export const posts: Post[] = [
{
slug: 'dofinansowanie-czyste-powietrze-2026',
title: 'Czyste Powietrze 2026 — ile możesz dostać na pompę ciepła?',
category: 'pompy-ciepla',
excerpt: 'Program Czyste Powietrze w 2026 roku oferuje rekordowe dopłaty. Dowiedz się, kto może skorzystać, jakie są progi dochodowe i jak złożyć wniosek.',
date: '2026-02-02T10:00:00Z',
author: 'Tomasz Kowalski',
image: '',
featured: true,
content: `
<h2>Rekordowe dopłaty w programie Czyste Powietrze 2026</h2>
<p>Program Czyste Powietrze na rok 2026 przeszedł kilka ważnych modyfikacji, które ułatwiają inwestycję w odnawialne źródła energii. Jeśli planujesz wymianę "kopciucha" na nowoczesną pompę ciepła, to idealny moment na działanie.</p>
<h3>Progi dofinansowania</h3>
<p>Kwota, jaką możesz otrzymać, zależy od Twoich dochodów:</p>
<ul>
<li><strong>Poziom podstawowy:</strong> dla osób z rocznym dochodem do 135 000 zł.</li>
<li><strong>Poziom podwyższony:</strong> wyższa dotacja dla osób z niższym dochodem na członka rodziny.</li>
<li><strong>Poziom najwyższy:</strong> nawet do 100% kosztów (do 135 000 zł) dla najuboższych.</li>
</ul>
<h3>Jak uniknąć błędów?</h3>
<p>Najczęstszym błędem jest zakup urządzenia, które nie figuruje na liście ZUM (Zielonych Urządzeń i Materiałów). Przed opłaceniem faktury zawsze sprawdzaj certyfikaty. Nasi specjaliści pomagają nie tylko w doborze i montażu urządzeń, ale również w kompleksowym przygotowaniu wniosków o dotację. Chcesz wiedzieć więcej? Odezwij się do nas!</p>
`
},
{
slug: 'pompy-ciepla-dolny-slask-dofinansowanie',
title: 'Pompy ciepła na Dolnym Śląsku — dofinansowanie i realizacje',
category: 'pompy-ciepla',
excerpt: 'Sprawdź, jak działają pompy ciepła na terenie Dolnego Śląska, jakie dofinansowania lokalne możesz uzyskać i jak dbamy o profesjonalny montaż.',
date: '2026-04-25T10:00:00Z',
author: 'Tomasz Kowalski',
image: '',
content: `
<h2>Dolny Śląsk to idealny region dla pomp ciepła</h2>
<p>Dzięki stosunkowo łagodnym zimom na nizinach Dolnego Śląska (Wrocław, Legnica, Lubin), powietrzne pompy ciepła osiągają u nas fenomenalne wyniki wydajnościowe (SCOP) przez cały sezon grzewczy. Nawet w rejonach przedgórskich (Wałbrzych, Jelenia Góra) nowoczesne instalacje świetnie radzą sobie bez wspomagania grzałkami.</p>
<h3>Wsparcie finansowe dla mieszkańców</h3>
<p>Poza ogólnopolskim programem "Czyste Powietrze", wiele dolnośląskich gmin i miast (m.in. Wrocław z programem KAWKA Plus) oferuje dodatkowe dotacje na likwidację pieców węglowych. Połączenie lokalnych funduszy z rządowymi potrafi sfinansować nawet do 80-90% całej inwestycji.</p>
<h3>Zaufaj lokalnym ekspertom</h3>
<ul>
<li>Znamy specyfikę dolnośląskiego budownictwa.</li>
<li>Zapewniamy szybki serwis gwarancyjny (nasza baza to okolice Wrocławia/Legnicy).</li>
<li>Pomagamy z biurokracją we wrocławskim i lokalnych urzędach.</li>
</ul>
<p>Chcesz dołączyć do grona ekologicznych domów w naszym województwie? Zostaw kontakt, a przeanalizujemy Twoje możliwości dotacyjne!</p>
`
},
{ {
slug: 'jaki-klimatyzator-wybrac-do-mieszkania', slug: 'jaki-klimatyzator-wybrac-do-mieszkania',
title: 'Jaki klimatyzator wybrać do mieszkania? Kompletny poradnik 2026', title: 'Jaki klimatyzator wybrać do mieszkania? Kompletny poradnik 2026',
@@ -1658,20 +1703,18 @@ export const posts: Post[] = [
} }
]; ];
const activePosts = posts.filter(p => p.category !== 'pompy-ciepla'); export const getPosts = () => posts;
export const getPostBySlug = (slug: string) => posts.find((p) => p.slug === slug);
export const getPosts = () => activePosts; export const getFeaturedPosts = (limit = 3) => posts.filter((p) => p.featured).slice(0, limit);
export const getPostBySlug = (slug: string) => activePosts.find((p) => p.slug === slug); export const getPostsByCategory = (category: string) => posts.filter((p) => p.category === category);
export const getFeaturedPosts = (limit = 3) => activePosts.filter((p) => p.featured).slice(0, limit); export const getRecentPosts = (limit = 6) => [...posts].sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()).slice(0, limit);
export const getPostsByCategory = (category: string) => activePosts.filter((p) => p.category === category);
export const getRecentPosts = (limit = 6) => [...activePosts].sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()).slice(0, limit);
// Dodane z powrotem funkcje wywoływane w komponentach, które nie zostały uwzględnione w prompcie: // Dodane z powrotem funkcje wywoływane w komponentach, które nie zostały uwzględnione w prompcie:
export const getFeaturedPost = () => { export const getFeaturedPost = () => {
const dayIndex = Math.floor(Date.now() / (1000 * 60 * 60 * 24)); const dayIndex = Math.floor(Date.now() / (1000 * 60 * 60 * 24));
return activePosts[dayIndex % activePosts.length] || activePosts[0]; return posts[dayIndex % posts.length] || posts[0];
}; };
export const getLatestPosts = (limit = 3) => getRecentPosts(limit); export const getLatestPosts = (limit = 3) => getRecentPosts(limit);
export const getRelatedPosts = (slug: string, category: string, limit = 2) => { export const getRelatedPosts = (slug: string, category: string, limit = 2) => {
return activePosts.filter(p => p.slug !== slug && p.category === category).slice(0, limit); return posts.filter(p => p.slug !== slug && p.category === category).slice(0, limit);
}; };