Skip to content

Commit 1cb844c

Browse files
committed
highlight features related to media
1 parent b2c07a0 commit 1cb844c

5 files changed

Lines changed: 35 additions & 23 deletions

File tree

src/content/mediabrief.liquid

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ pagination:
55
alias: media
66
permalink: "media/{{ media.n2id | slugify }}_insert.html"
77
---
8-
<li class="list-row m-auto">
8+
99
<a href="media/{{ media.n2id | slugify }}" class="grid justify-items-center text-center">
1010
<img width="250" height="250" src="public/media/{{media.file}}"/>
1111
<div class="font-semibold">{{media.name}}</div>
1212
<div class="text-xs">{{media.caption}}</div>
13-
</a>
14-
</li>
13+
</a>

src/js/main.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,10 @@ const displayFeatureInfo = async function (id, props) {
146146
if (types.includes('demo_archive')) {
147147
const imageLinks = await Promise.all(
148148
relatedRecordsByType['demo_archive'].map(async (r) => {
149+
const lids = links[id].map(l => l.tid)
149150
const insertHtmlResponse = await fetch(`media/${r.tid}_insert.html`)
150151
const insertHtml = await insertHtmlResponse.text()
151-
return `<li>${insertHtml}</li>`
152+
return `<li x-data @mouseenter="$dispatch('hover', '${lids}')" @mouseleave="$dispatch('unhover')" class="list-row m-auto">${insertHtml}</li>`
152153
})
153154
)
154155
relatedHtml += `<ul class="list bg-base-100 rounded-box shadow-md my-3">
@@ -285,7 +286,7 @@ Alpine.effect(() => {
285286
})
286287

287288
Alpine.effect(() => {
288-
const hoverId = Alpine.store('styles').hoverId
289+
const hoverChanged = Alpine.store('styles').hoverChanged
289290
vectorLayer.changed()
290291
})
291292

src/js/styles.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ const styleFeature = function (feature) {
194194
}
195195
if (feature.getId() == Alpine.store('styles').selectedId) {
196196
return selectedStyles[getGenericType(feature)]
197-
} else if (feature.getId() == Alpine.store('styles').hoverId) {
197+
} else if (Alpine.store('styles').shouldHover(feature.getId())) {
198198
return hoverStyles[getGenericType(feature)]
199199
} else if (!displayed.includes(type)) {
200200
return new Style({})
@@ -214,21 +214,33 @@ window.Alpine = Alpine
214214
Alpine.store('styles', {
215215
data: styles,
216216
display: Object.keys(styles),
217-
hoverId: -1,
217+
hoverIds: [],
218+
hoverChanged: 0,
218219
selectedId: -1,
219220
entries() {
220221
return Object.keys(this.data)
221222
},
222223
count() {
223224
return Object.keys(this.data).length
224225
},
225-
setHover(id) {
226-
if(id != this.hoverId) {
227-
this.hoverId = id
226+
_setHover(ids) {
227+
this.hoverIds = ids
228+
this.hoverChanged++
229+
},
230+
setHover(ids) {
231+
if(Array.isArray(ids)) {
232+
this._setHover(ids)
233+
} else if (!(this.hoverIds.length == 1 && this.hoverIds[0] == ids)) {
234+
this._setHover(ids.split(','))
228235
}
229236
},
230237
unsetHover() {
231-
this.hoverId = -1
238+
if(this.hoverIds.length > 0) {
239+
this._setHover([])
240+
}
241+
},
242+
shouldHover(id) {
243+
return this.hoverIds.includes(id)
232244
},
233245
setSelected(id) {
234246
if(id != this.selectedId) {

src/public/bundle.js

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/public/bundle.js.map

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)