Skip to content

Commit 97680e2

Browse files
committed
[PROJ-18.16/compl] saving-last-sidebar-menu-btn
Saving "last/habit" selected after reloading page/app.. window.location. Worth noting: - that all this work/part.. needs to be captured. FS-dev: B-3 / JS basic
1 parent 1f6b1f0 commit 97680e2

File tree

1 file changed

+10
-1
lines changed
  • full-stack-dev/3-js-basic/18-proj-habit-tracker/18-16-saving-last-sidebar-menu-btn/js

1 file changed

+10
-1
lines changed

full-stack-dev/3-js-basic/18-proj-habit-tracker/18-16-saving-last-sidebar-menu-btn/js/index.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,8 @@ function rerender(activeHabbitId) {
212212
return;
213213
}
214214

215+
document.location.replace(document.location.pathname + '#' + activeHabbitId); // добавление хеш #id выбранной привычки к/в конец адресной строки/url
216+
215217
rerenderMenu(activeHabbit);
216218
rerenderHeaderContentEl(activeHabbit);
217219
rerenderHabbitDaysContentEl(activeHabbit);
@@ -339,7 +341,14 @@ function addNewHabbit(event) {
339341

340342
// запуск работы с sidebar/меню..
341343
if (habbits.length > 0) {
342-
rerender(habbits[0].id); // пока.. принудительно передаёт
344+
const hashIdFromURL = Number(document.location.hash.replace('#', '')); // получение из адресной строки "hash id" привычки
345+
const habbit = habbits.find((habbit) => habbit.id === hashIdFromURL); // поиск соответствия
346+
347+
if (habbit) {
348+
rerender(habbit.id); // отрисовка/передача привычки/id согласно хеша из url
349+
} else {
350+
rerender(habbits[0].id); // нет.. принудительная отрисовка/передача первой привычки согласно глобального habbits массива
351+
}
343352
}
344353

345354
// организация прослушек pop-up инпутов для корректировки классов ошибки (т.е. ввод данных, отмена обводки)

0 commit comments

Comments
 (0)