Fix recursive link history updates for picture viewer

This commit is contained in:
Antoine Bartuccio 2024-09-30 14:42:29 +02:00
parent bb953a6139
commit a00a85a56a
3 changed files with 8 additions and 3 deletions

View File

@ -38,7 +38,7 @@
<h4 x-text="album"></h4>
<div class="photos">
<template x-for="picture in pictures">
<a :href="`/sas/picture/${picture.id}#pict`">
<a :href="`/sas/picture/${picture.id}`">
<div
class="photo"
:class="{not_moderated: !picture.is_moderated}"

View File

@ -137,7 +137,12 @@ document.addEventListener("alpine:init", () => {
this.current_picture = this.pictures.find(
(i) => i.id === first_picture_id,
);
this.$watch("current_picture", () => this.update_picture());
this.$watch("current_picture", (current, previous) => {
if (current === previous){ /* Avoid recursive updates */
return;
}
this.update_picture();
});
window.addEventListener("popstate", async (event) => {
if (!event.state || event.state.sas_picture_id === undefined) {
return;

View File

@ -63,7 +63,7 @@
<h4>{% trans %}Pictures{% endtrans %}</h4>
<div class="photos" :aria-busy="loading">
<template x-for="picture in pictures.results">
<a :href="`/sas/picture/${picture.id}#pict`">
<a :href="`/sas/picture/${picture.id}`">
<div
class="photo"
:class="{not_moderated: !picture.is_moderated}"