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:
@@ -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);
|
||||
const savedDateStr = 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('{')) {
|
||||
const savedDate = new Date(savedDateStr);
|
||||
savedDate.setHours(0, 0, 0, 0);
|
||||
return {
|
||||
centerDate: savedDate,
|
||||
offset: 0
|
||||
};
|
||||
}
|
||||
return null;
|
||||
if (savedDateStr) {
|
||||
const savedDate = new Date(savedDateStr);
|
||||
savedDate.setHours(0, 0, 0, 0);
|
||||
|
||||
// Проверяем, что дата валидна
|
||||
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 дней
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user