feat: restore heat pump pages, navigation links and blog posts
This commit is contained in:
@@ -18,10 +18,8 @@ export const metadata: Metadata = {
|
||||
}
|
||||
};
|
||||
|
||||
import { notFound } from 'next/navigation';
|
||||
|
||||
export default function PompyCieplaPage() {
|
||||
notFound();
|
||||
|
||||
const faqPompyJsonLd = {
|
||||
"@context": "https://schema.org",
|
||||
|
||||
@@ -65,11 +65,11 @@ export function Footer() {
|
||||
Klimatyzacja i Montaż
|
||||
</Link>
|
||||
</li>
|
||||
{/* <li>
|
||||
<li>
|
||||
<Link href="/pompy-ciepla" className="hover:text-accent transition-colors">
|
||||
Pompy Ciepła
|
||||
</Link>
|
||||
</li> */}
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<Link href="/sklep" className="hover:text-accent transition-colors">
|
||||
|
||||
@@ -202,12 +202,12 @@ export function Header() {
|
||||
sections={acSections}
|
||||
align="left"
|
||||
/>
|
||||
{/* <Link
|
||||
<Link
|
||||
href="/pompy-ciepla"
|
||||
className="text-sm font-medium text-primary hover:text-accent transition-colors"
|
||||
>
|
||||
Pompy ciepła
|
||||
</Link> */}
|
||||
</Link>
|
||||
<NavDropdown
|
||||
label="Miasta"
|
||||
sections={miastaSections}
|
||||
|
||||
@@ -133,7 +133,7 @@ export function MobileMenu({ isOpen, onClose }: MobileMenuProps) {
|
||||
</details>
|
||||
|
||||
{/* 2. Pompy Ciepła */}
|
||||
{/* <div className="border-b border-border py-3">
|
||||
<div className="border-b border-border py-3">
|
||||
<Link
|
||||
href="/pompy-ciepla"
|
||||
onClick={onClose}
|
||||
@@ -141,7 +141,7 @@ export function MobileMenu({ isOpen, onClose }: MobileMenuProps) {
|
||||
>
|
||||
Pompy ciepła
|
||||
</Link>
|
||||
</div> */}
|
||||
</div>
|
||||
|
||||
{/* Nowa sekcja: Miasta */}
|
||||
<div className="border-b border-border py-3">
|
||||
|
||||
@@ -19,7 +19,7 @@ export function BlogPreview() {
|
||||
const getCategoryLabel = (cat: string) => {
|
||||
const labels: Record<string, string> = {
|
||||
klimatyzacja: "Klimatyzacja",
|
||||
// "pompy-ciepla": "Pompy ciepła",
|
||||
"pompy-ciepla": "Pompy ciepła",
|
||||
porady: "Porady ogólne",
|
||||
};
|
||||
return labels[cat] || cat;
|
||||
|
||||
@@ -18,7 +18,7 @@ const POSTS_PER_PAGE = 6;
|
||||
const categories = [
|
||||
{ id: 'wszystkie', label: 'Wszystkie' },
|
||||
{ id: 'klimatyzacja', label: 'Klimatyzacja' },
|
||||
// { id: 'pompy-ciepla', label: 'Pompy ciepła' },
|
||||
{ id: 'pompy-ciepla', label: 'Pompy ciepła' },
|
||||
{ id: 'porady', label: 'Porady' },
|
||||
];
|
||||
|
||||
@@ -41,7 +41,7 @@ export function PostsGrid({ posts, featuredPost }: PostsGridProps) {
|
||||
|
||||
const categoryLabels: Record<string, string> = {
|
||||
'klimatyzacja': 'Klimatyzacja',
|
||||
// 'pompy-ciepla': 'Pompy Ciepła',
|
||||
'pompy-ciepla': 'Pompy Ciepła',
|
||||
'porady': 'Porady'
|
||||
};
|
||||
|
||||
|
||||
+52
-9
@@ -13,6 +13,51 @@ export interface 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',
|
||||
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 = () => activePosts;
|
||||
export const getPostBySlug = (slug: string) => activePosts.find((p) => p.slug === slug);
|
||||
export const getFeaturedPosts = (limit = 3) => activePosts.filter((p) => p.featured).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);
|
||||
export const getPosts = () => posts;
|
||||
export const getPostBySlug = (slug: string) => posts.find((p) => p.slug === slug);
|
||||
export const getFeaturedPosts = (limit = 3) => posts.filter((p) => p.featured).slice(0, limit);
|
||||
export const getPostsByCategory = (category: string) => posts.filter((p) => p.category === category);
|
||||
export const getRecentPosts = (limit = 6) => [...posts].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:
|
||||
export const getFeaturedPost = () => {
|
||||
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 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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user