Activities: support multiple photos on event creation (like market) #107

Open
opened 2026-06-16 09:45:42 +00:00 by padreug · 0 comments
Owner

From the 2026-06-10 design review.

Problem

Event creation accepts a single banner image (CreateEventDialog.vueImageUpload with :multiple="false" :max-files="1"). The market module already supports multiple (CreateProductDialog.vue:multiple="true" :max-files="5" :show-primary-button="true").

Why it's not a client-only change

NIP-52 calendar events carry a single image tag, and the webapp delegates publishing to the aiolabs/events extension (POST /events/api/v1/events; CreateEventRequest has banner?: string). Supporting a gallery needs:

  1. A schema decision — multiple image tags vs an imeta/gallery convention on the calendar event.
  2. aiolabs/events backend: accept an array of image URLs and publish them per the chosen convention.
  3. Webapp: switch the create form's ImageUpload to the market multi-image pattern, send the array, and render a gallery on the card/detail.

Proposed fix

Decide the on-event schema first (1), then implement backend (2) + frontend (3). The frontend half mirrors market and is small once the wire format is settled.

Deferred from the ui-tweaks-2 round as a backend-dependent item.

From the 2026-06-10 design review. ## Problem Event creation accepts a single banner image (`CreateEventDialog.vue` → `ImageUpload` with `:multiple="false" :max-files="1"`). The market module already supports multiple (`CreateProductDialog.vue` → `:multiple="true" :max-files="5" :show-primary-button="true"`). ## Why it's not a client-only change NIP-52 calendar events carry a **single** `image` tag, and the webapp delegates publishing to the `aiolabs/events` extension (`POST /events/api/v1/events`; `CreateEventRequest` has `banner?: string`). Supporting a gallery needs: 1. A schema decision — multiple `image` tags vs an `imeta`/gallery convention on the calendar event. 2. `aiolabs/events` backend: accept an array of image URLs and publish them per the chosen convention. 3. Webapp: switch the create form's `ImageUpload` to the market multi-image pattern, send the array, and render a gallery on the card/detail. ## Proposed fix Decide the on-event schema first (1), then implement backend (2) + frontend (3). The frontend half mirrors market and is small once the wire format is settled. _Deferred from the ui-tweaks-2 round as a backend-dependent item._
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiolabs/webapp#107
No description provided.