const { useState, useEffect } = React;
// Функция для получения настроек сайта из HTML
function getSiteConfigFromHTML() {
const configElement = document.querySelector('#site-config site-header');
if (!configElement) {
return {
bgImage: 'https://picsum.photos/1920/1080?random=1',
title: 'Станция Сосновая',
subtitle: 'База отдыха'
};
}
return {
bgImage: configElement.getAttribute('data-bg-image') || 'https://picsum.photos/1920/1080?random=1',
title: configElement.getAttribute('data-title') || 'Станция Сосновая',
subtitle: configElement.getAttribute('data-subtitle') || 'База отдыха'
};
}
// Функция для получения данных карточек из HTML
function getCardDataFromHTML() {
const cardElements = document.querySelectorAll('#cards-data card-data');
return Array.from(cardElements).map(element => {
const images = element.getAttribute('data-images');
return {
title: element.getAttribute('data-title'),
short: element.getAttribute('data-short'),
images: images ? images.split(',').map(img => img.trim()) : [],
long: element.getAttribute('data-long')
};
});
}
// Функция для установки фонового изображения
function setHeaderBackground(bgImage) {
useEffect(() => {
const headerBg = document.querySelector('.header-bg');
if (headerBg && bgImage) {
headerBg.style.backgroundImage = `url('${bgImage}')`;
}
}, [bgImage]);
}
function Header() {
const [siteConfig, setSiteConfig] = useState({
bgImage: '',
title: 'Станция Сосновая',
subtitle: 'База отдыха'
});
useEffect(() => {
const config = getSiteConfigFromHTML();
setSiteConfig(config);
}, []);
// Устанавливаем фоновое изображение
useEffect(() => {
const headerBg = document.querySelector('.header-bg');
if (headerBg && siteConfig.bgImage) {
headerBg.style.backgroundImage = `url('${siteConfig.bgImage}')`;
}
}, [siteConfig.bgImage]);
return (
{siteConfig.title}
{siteConfig.subtitle}
);
}
function Card({ card, onCardClick }) {
return (
{card.short}
{card.long}