Skip to content

Show preview actions in compact list rows #46

Description

@hhkaos

Context

OTE Reader is starting to use <ote-events> as its main event renderer. The new host-app APIs cover the main integration needs: in-memory events, original event context, dynamic actions, sort="none", badges/classes, and custom empty states.

One UX gap remains for Feedly-style reader flows: in layout="list", host actions such as "save to collection", "mark read", or "open" are only available after expanding the row/detail view. For a compact chronological feed, users may expect quick actions to be visible directly on the row, especially on desktop hover.

Proposal

Add an optional way to render preview actions in compact list rows.

widget.eventActions = (context) => [
  {
    id: "save",
    label: "Save",
    icon: "bookmark",
    pressed: isSaved(context),
    placement: "preview",
    layouts: ["list"],
    onClick(_event, context) {
      saveToCollection(context.originalEvent?.id, context.feed?.url);
    },
  },
];

Current docs mention preview actions as primarily card-preview actions. This issue is about supporting the same concept in layout="list", probably rendered as a small trailing action cluster in .event-summary.

Acceptance Notes

  • Keep the list row compact and scannable.
  • On desktop, actions could appear on hover/focus to preserve a minimal UI.
  • On mobile/touch, actions should remain discoverable without hover.
  • Preserve keyboard accessibility.
  • Actions must continue to receive the full EventRenderContext.
  • This should not make <ote-events> own Reader state; it only renders host-provided actions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttool:embedEmbeddable widget (apps/embed)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions