mirror of
https://github.com/danilt2000/Alma-vid.git
synced 2025-12-09 19:49:28 +02:00
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.
This commit is contained in:
122
CONTACTS_CONFIG.md
Normal file
122
CONTACTS_CONFIG.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Конфигурация контактной информации
|
||||
|
||||
Этот файл содержит всю контактную информацию агентства недвижимости АЛМА-ВИД в централизованном виде.
|
||||
|
||||
## Расположение файла
|
||||
|
||||
`src/config/contacts.js`
|
||||
|
||||
## Структура конфигурации
|
||||
|
||||
### Основные контакты
|
||||
|
||||
- `phone` - номер телефона с отображаемым текстом и ссылкой для набора
|
||||
- `email` - электронная почта с отображаемым текстом и ссылкой mailto
|
||||
|
||||
### Адреса
|
||||
|
||||
- `address.main` - основной адрес офиса (для карт и контактов)
|
||||
- `address.office` - рабочий адрес офиса (для страницы "Наш офис")
|
||||
|
||||
### Координаты
|
||||
|
||||
- `coordinates` - координаты для отображения на Яндекс.Картах
|
||||
|
||||
### Социальные сети
|
||||
|
||||
- `social.vk` - ВКонтакте
|
||||
- `social.telegram` - Telegram
|
||||
- `social.instagram` - Instagram
|
||||
|
||||
### Название компании
|
||||
|
||||
- `companyName` - полное название
|
||||
- `companyNameShort` - сокращенное название
|
||||
|
||||
## Использование
|
||||
|
||||
### В компонентах
|
||||
|
||||
```jsx
|
||||
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
|
||||
|
||||
```jsx
|
||||
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
|
||||
|
||||
```jsx
|
||||
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. Изменения автоматически применятся ко всем страницам
|
||||
Reference in New Issue
Block a user