diff --git a/app/components/place-details.gjs b/app/components/place-details.gjs
index 360b63d..6983f74 100644
--- a/app/components/place-details.gjs
+++ b/app/components/place-details.gjs
@@ -26,6 +26,7 @@ export default class PlaceDetails extends Component {
@tracked showLists = false;
@tracked isPhotoUploadModalOpen = false;
@tracked isNostrConnectModalOpen = false;
+ @tracked newlyUploadedPhotoId = null;
@action
openPhotoUploadModal(e) {
@@ -40,8 +41,11 @@ export default class PlaceDetails extends Component {
}
@action
- closePhotoUploadModal() {
+ closePhotoUploadModal(eventId) {
this.isPhotoUploadModalOpen = false;
+ if (typeof eventId === 'string') {
+ this.newlyUploadedPhotoId = eventId;
+ }
}
@action
@@ -352,7 +356,11 @@ export default class PlaceDetails extends Component {
@onCancel={{this.cancelEditing}}
/>
{{else}}
-
{{this.type}} diff --git a/app/components/place-photo-upload.gjs b/app/components/place-photo-upload.gjs index 1e1858b..cda50bb 100644 --- a/app/components/place-photo-upload.gjs +++ b/app/components/place-photo-upload.gjs @@ -192,7 +192,7 @@ export default class PlacePhotoUpload extends Component { this.uploadedPhoto = null; if (this.args.onClose) { - this.args.onClose(); + this.args.onClose(event.id); } } catch (e) { this.error = 'Failed to publish: ' + e.message; diff --git a/app/components/place-photos-carousel.gjs b/app/components/place-photos-carousel.gjs index 0599739..73cf244 100644 --- a/app/components/place-photos-carousel.gjs +++ b/app/components/place-photos-carousel.gjs @@ -29,6 +29,24 @@ export default class PlacePhotosCarousel extends Component { return !this.canScrollRight; } + scrollToNewPhoto = modifier((element, [eventId]) => { + if (eventId && eventId !== this.lastEventId) { + this.lastEventId = eventId; + // Allow DOM to update first since the photo was *just* added to the store + setTimeout(() => { + const targetSlide = element.querySelector( + `[data-event-id="${eventId}"]` + ); + if (targetSlide) { + element.scrollTo({ + left: targetSlide.offsetLeft, + behavior: 'smooth', + }); + } + }, 100); + } + }); + setupCarousel = modifier((element) => { this.carouselElement = element; @@ -84,11 +102,16 @@ export default class PlacePhotosCarousel extends Component {