Files
Alma-vid/CONTACTS_CONFIG.md
Madara0330E 4adbf791ea Centralize and update contact information across app
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.
2025-07-16 23:16:00 +05:00

4.4 KiB
Raw Permalink Blame History

Конфигурация контактной информации

Этот файл содержит всю контактную информацию агентства недвижимости АЛМА-ВИД в централизованном виде.

Расположение файла

src/config/contacts.js

Структура конфигурации

Основные контакты

  • phone - номер телефона с отображаемым текстом и ссылкой для набора
  • email - электронная почта с отображаемым текстом и ссылкой mailto

Адреса

  • address.main - основной адрес офиса (для карт и контактов)
  • address.office - рабочий адрес офиса (для страницы "Наш офис")

Координаты

  • coordinates - координаты для отображения на Яндекс.Картах

Социальные сети

  • social.vk - ВКонтакте
  • social.telegram - Telegram
  • social.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" />

Обновленные страницы

Все следующие страницы теперь используют централизованную конфигурацию:

  1. Header - номер телефона и социальные сети
  2. Footer - социальные сети
  3. Home - заголовок страницы, карта с координатами и balloon
  4. Office - заголовок страницы, контактная информация, карта
  5. Services - заголовок страницы, ссылка на ВКонтакте
  6. About - заголовок страницы, название компании
  7. Objects - заголовок страницы
  8. Apartament - карта с координатами и balloon

Преимущества централизованной конфигурации

  1. Единое место для изменений - все контакты изменяются в одном файле
  2. Консистентность - одинаковое отображение на всех страницах
  3. Легкость обслуживания - не нужно искать и изменять контакты по всему проекту
  4. Типизация - структурированные данные с понятным API
  5. Переиспользование - легко добавлять контакты на новые страницы

Как изменить контактную информацию

  1. Откройте файл src/config/contacts.js
  2. Измените нужные значения
  3. Сохраните файл
  4. Изменения автоматически применятся ко всем страницам