Refactor: remove unused code from date carousel

- Removed unused calculateDateOffset() method (19 lines)
- Removed unused loadSelectedDate() method that only logged
- Removed unused isCenter property from day objects
- Simplified localStorage save/load (removed offset parameter)
- Removed complex JSON parsing logic, now stores date string directly
- Code is cleaner and easier to maintain

Total: removed 82 lines of unused code

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-07 22:19:42 +03:00
parent 5198502fa3
commit 6bbd615a77

View File

@@ -56,27 +56,11 @@ class DateCarousel {
*/
init() {
this.calculateDaysCount();
this.loadSelectedDate(); // Загрузить выбранную дату из фильтра
this.render();
this.attachNavHandlers();
this.attachTodayHandler();
}
/**
* Загрузка выбранной даты из скрытых полей фильтра
*/
loadSelectedDate() {
// Просто логируем выбранную дату, но НЕ меняем centerDate
// Карусель остается там, где была (centerDate из localStorage или today)
if (this.minInput.value && this.maxInput.value &&
this.minInput.value === this.maxInput.value) {
console.log(`Selected date in filter: ${this.minInput.value}, but keeping current center`);
} else {
console.log('No filter active - keeping current center');
}
}
/**
* Расчёт количества дней на основе доступной ширины
*/
@@ -136,8 +120,7 @@ class DateCarousel {
days.push({
date: date,
label: this.getDateLabel(date),
isToday: date.getTime() === this.today.getTime(),
isCenter: i === 0
isToday: date.getTime() === this.today.getTime()
});
}
@@ -363,9 +346,8 @@ class DateCarousel {
// Устанавливаем сегодняшнюю дату как центральную
this.centerDate = today;
// При нажатии на "Сегодня" устанавливаем центральную дату на сегодня без смещения
// и сохраняем без смещения, чтобы календарь центрировался на сегодня
this.saveCenterDate(0);
// Сохраняем новую центральную дату
this.saveCenterDate();
// Очищаем выделение с других кнопок и обновляем визуальное состояние
this.render();
@@ -386,17 +368,13 @@ class DateCarousel {
}
/**
* Сохранение центральной даты и смещения в localStorage
* Сохранение центральной даты в localStorage
*/
saveCenterDate(offset = 0) {
saveCenterDate() {
const key = `date_carousel_center_${this.minInputId}`;
// Используем formatDate вместо toISOString для избежания проблем с часовыми поясами
const centerDateStr = this.formatDate(this.centerDate);
const saveData = {
centerDate: centerDateStr,
offset: offset
};
localStorage.setItem(key, JSON.stringify(saveData));
localStorage.setItem(key, centerDateStr);
}
/**
@@ -404,57 +382,21 @@ class DateCarousel {
*/
loadSavedCenterDate() {
const key = `date_carousel_center_${this.minInputId}`;
const savedDataStr = localStorage.getItem(key);
if (savedDataStr) {
try {
const savedData = JSON.parse(savedDataStr);
const savedDate = new Date(savedData.centerDate);
savedDate.setHours(0, 0, 0, 0);
return {
centerDate: savedDate,
offset: savedData.offset || 0
};
} catch (e) {
console.error('Error parsing saved date data', e);
// В случае ошибки возвращаем старый формат для совместимости
const savedDateStr = localStorage.getItem(key);
if (savedDateStr && !savedDateStr.includes('{')) {
if (savedDateStr) {
const savedDate = new Date(savedDateStr);
savedDate.setHours(0, 0, 0, 0);
return {
centerDate: savedDate,
offset: 0
};
}
return null;
// Проверяем, что дата валидна
if (!isNaN(savedDate.getTime())) {
return { centerDate: savedDate };
}
}
return null;
}
/**
* Вычисление смещения выбранной даты от центральной
*/
calculateDateOffset(selectedDate) {
// Генерируем дни с текущей центральной датой
const days = this.generateDays();
// Находим индекс выбранной даты
const selectedIndex = days.findIndex(day =>
day.date.getTime() === selectedDate.getTime()
);
if (selectedIndex !== -1) {
// Находим центральный индекс
const centerIndex = Math.floor(this.daysCount / 2);
// Вычисляем смещение от центра
return selectedIndex - centerIndex;
}
return 0; // Если дата не найдена, возвращаем 0
}
/**
* Сдвиг диапазона дней на N дней
*/