mirror of
https://github.com/danilt2000/Alma-vid.git
synced 2025-12-08 19:29:26 +02:00
Introduced a centralized contacts configuration in src/config/contacts.js, added a useContacts hook, and a reusable ContactInfo component. Updated Header, Footer, Home, Office, Services, About, Objects, and Apartament pages to use the new contact data source. Added documentation in CONTACTS_CONFIG.md and included the AlmaVid logo asset.
4.4 KiB
4.4 KiB
Конфигурация контактной информации
Этот файл содержит всю контактную информацию агентства недвижимости АЛМА-ВИД в централизованном виде.
Расположение файла
src/config/contacts.js
Структура конфигурации
Основные контакты
phone- номер телефона с отображаемым текстом и ссылкой для набораemail- электронная почта с отображаемым текстом и ссылкой mailto
Адреса
address.main- основной адрес офиса (для карт и контактов)address.office- рабочий адрес офиса (для страницы "Наш офис")
Координаты
coordinates- координаты для отображения на Яндекс.Картах
Социальные сети
social.vk- ВКонтактеsocial.telegram- Telegramsocial.instagram- Instagram
Название компании
companyName- полное названиеcompanyNameShort- сокращенное название
Использование
В компонентах
import { CONTACTS } from '../../config/contacts';
// Использование телефона
<a href={CONTACTS.phone.link}>{CONTACTS.phone.display}</a>
// Использование email
<a href={CONTACTS.email.link}>{CONTACTS.email.display}</a>
// Использование соцсетей
<a href={CONTACTS.social.vk.url}>{CONTACTS.social.vk.name}</a>
// Координаты для карт
<Map defaultState={{ center: CONTACTS.coordinates, zoom: 12 }}>
<Placemark
geometry={CONTACTS.coordinates}
properties={{
balloonContent: CONTACTS.getBalloonContent(),
hintContent: `Офис ${CONTACTS.companyNameShort}`
}}
/>
</Map>
С помощью хука useContacts
import { useContacts } from "../../hooks/useContacts";
function MyComponent() {
const contacts = useContacts();
return (
<div>
<a href={contacts.getPhoneLink()}>{contacts.phone.display}</a>
<a href={contacts.getSocialLink("vk")}>{contacts.getSocialName("vk")}</a>
</div>
);
}
Компонент ContactInfo
import { ContactInfo } from '../../components/ContactInfo/ContactInfo';
// Базовый вариант
<ContactInfo />
// Inline вариант
<ContactInfo variant="inline" />
// Полный вариант со всей информацией
<ContactInfo variant="full" />
Обновленные страницы
Все следующие страницы теперь используют централизованную конфигурацию:
- Header - номер телефона и социальные сети
- Footer - социальные сети
- Home - заголовок страницы, карта с координатами и balloon
- Office - заголовок страницы, контактная информация, карта
- Services - заголовок страницы, ссылка на ВКонтакте
- About - заголовок страницы, название компании
- Objects - заголовок страницы
- Apartament - карта с координатами и balloon
Преимущества централизованной конфигурации
- Единое место для изменений - все контакты изменяются в одном файле
- Консистентность - одинаковое отображение на всех страницах
- Легкость обслуживания - не нужно искать и изменять контакты по всему проекту
- Типизация - структурированные данные с понятным API
- Переиспользование - легко добавлять контакты на новые страницы
Как изменить контактную информацию
- Откройте файл
src/config/contacts.js - Измените нужные значения
- Сохраните файл
- Изменения автоматически применятся ко всем страницам