From: PhiTux Date: Sun, 6 Apr 2025 11:00:20 +0000 (+0200) Subject: css-fixes and sidenav closes on selected searchresult X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=fc98c630a4d92359aa79d80c410c824ac8fce472;p=DailyTxT.git css-fixes and sidenav closes on selected searchresult --- diff --git a/frontend/src/lib/Datepicker.svelte b/frontend/src/lib/Datepicker.svelte index b2dbaf7..c6a10f6 100644 --- a/frontend/src/lib/Datepicker.svelte +++ b/frontend/src/lib/Datepicker.svelte @@ -2,6 +2,8 @@ import { cal, selectedDate, readingDate } from '$lib/calendarStore.js'; import { onMount } from 'svelte'; import { fly } from 'svelte/transition'; + import * as bootstrap from 'bootstrap'; + import { offcanvasIsOpen } from '$lib/helpers.js'; let days = $state([]); @@ -69,12 +71,30 @@ $cal.currentYear += increment; }; + let oc; + const onDateClick = (date) => { $selectedDate = date; + + // close offcanvas/sidenav if open + if (oc) { + const bsOffcanvas = bootstrap.Offcanvas.getInstance(oc); + if ($offcanvasIsOpen) { + bsOffcanvas.hide(); + } + } }; onMount(() => { days = updateCalendar(); + + oc = document.querySelector('.offcanvas'); + oc.addEventListener('hidden.bs.offcanvas', () => { + $offcanvasIsOpen = false; + }); + oc.addEventListener('shown.bs.offcanvas', () => { + $offcanvasIsOpen = true; + }); }); let months = Array.from({ length: 12 }, (_, i) => diff --git a/frontend/src/lib/Sidenav.svelte b/frontend/src/lib/Sidenav.svelte index a20eb7a..25e42d5 100644 --- a/frontend/src/lib/Sidenav.svelte +++ b/frontend/src/lib/Sidenav.svelte @@ -8,6 +8,7 @@ import { onMount } from 'svelte'; import * as bootstrap from 'bootstrap'; import Tag from './Tag.svelte'; + import { offcanvasIsOpen } from '$lib/helpers.js'; let { searchForString, searchForTag } = $props(); @@ -17,6 +18,14 @@ (popoverTriggerEl) => new bootstrap.Popover(popoverTriggerEl, { html: true, trigger: 'focus' }) ); + + oc = document.querySelector('.offcanvas'); + oc.addEventListener('hidden.bs.offcanvas', () => { + $offcanvasIsOpen = false; + }); + oc.addEventListener('shown.bs.offcanvas', () => { + $offcanvasIsOpen = true; + }); }); let searchInput = $state(null); @@ -128,6 +137,19 @@ $searchTag = {}; $searchResults = []; } + + let oc; + function selectDate(date) { + $selectedDate = date; + + // close offcanvas/sidenav if open + if (oc) { + const bsOffcanvas = bootstrap.Offcanvas.getInstance(oc); + if ($offcanvasIsOpen) { + bsOffcanvas.hide(); + } + } + } @@ -228,7 +250,8 @@