From d72359e9a599fffcaa10f0bff6fc3bda41ada70e Mon Sep 17 00:00:00 2001 From: Thomas Rupprecht Date: Thu, 5 Jan 2023 00:24:13 +0100 Subject: [PATCH] improve popup styling --- src/popup.css | 10 ++++++++-- src/popup.js | 52 +++++++++++++++++++++++++++++++++------------------ 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/popup.css b/src/popup.css index 04f869f..f00dc8f 100644 --- a/src/popup.css +++ b/src/popup.css @@ -75,8 +75,14 @@ svg { cursor: pointer; } -#calendar > div > svg, #state > svg { - margin-right: 4px; +#state > svg, #calendar > .calendar-entry > svg, #calendar > .calendar-entry strong { + margin-right: 8px; +} +#calendar > .calendar-entry { + display: flex; +} +#calendar address { + display: inline; } #space-api { diff --git a/src/popup.js b/src/popup.js index 86bbb11..b1561ad 100644 --- a/src/popup.js +++ b/src/popup.js @@ -1,21 +1,21 @@ -const calendarSVG = ` - +const calendarSVG = + ` - -`; -const doorClosedSVG = ` - + ` +; +const doorClosedSVG = + ` - -`; -const doorOpenSVG = ` - + ` +; +const doorOpenSVG = + ` - -`; + ` +; const dateTimeFormat = Intl.DateTimeFormat([], {dateStyle: 'medium', timeStyle: 'short'}); @@ -79,6 +79,13 @@ function updateNextEvent(nextEvents) { const nextEventDateEvents = nextEvents.filter((nextEvent) => (nextEvent.begin.startsWith(nextEventDate))); nextEventDateEvents.forEach((nextEventDateEvent) => { + const calenderEntryElement = document.createElement('div'); + calenderEntryElement.classList.add('calendar-entry'); + calenderEntryElement.innerHTML = calendarSVG; + + const containerElement = document.createElement('div'); + calenderEntryElement.append(containerElement); + const strongElement = document.createElement('strong'); strongElement.textContent = nextEventDateEvent.name; @@ -87,14 +94,23 @@ function updateNextEvent(nextEvents) { timeElement.dateTime = beginDate.toISOString(); timeElement.textContent = dateTimeFormat.format(beginDate); - const divElement = document.createElement('div'); - divElement.innerHTML = calendarSVG; - divElement.append(strongElement, ' ', timeElement); + const titleElement = document.createElement('div'); + titleElement.append(strongElement, timeElement); + containerElement.append(titleElement); + if (nextEventDateEvent.location) { - const locationNode = document.createTextNode(` (${nextEventDateEvent.location})`); - divElement.append(locationNode); + const locationElement = document.createElement('div'); + + const addressElement = document.createElement('address'); + addressElement.textContent = nextEventDateEvent.location; + + const parenthesesOpenNode = document.createTextNode('('); + const parenthesesCloseNode = document.createTextNode(')'); + + locationElement.append(parenthesesOpenNode, addressElement, parenthesesCloseNode); + containerElement.append(locationElement); } - calendarElement.append(divElement); + calendarElement.append(calenderEntryElement); }); } }