diff --git a/apps/web/src/app/QueueAll.jsx b/apps/web/src/app/QueueAll.jsx index 1260fde..0956375 100644 --- a/apps/web/src/app/QueueAll.jsx +++ b/apps/web/src/app/QueueAll.jsx @@ -20,8 +20,14 @@ import { LANE_LABEL } from '../lib/queue.js'; * undoing it, and it should undo *this* rather than empty the lane and take the * rest of the reader's queue with it. * + * Names either a topic or a single feed. Both post the same shape to the same + * endpoint and differ only in which query the server re-runs, so a feed page + * gets the control it was missing without a second component drifting away from + * this one. + * * @param {{ - * topic: string, + * topic?: string|null, + * feed?: string|null, * group?: string|null, * total: number, * queued: number, @@ -29,9 +35,20 @@ import { LANE_LABEL } from '../lib/queue.js'; * next: string, * }} props */ -export default function QueueAll({ topic, group = null, total, queued, lanes, next }) { +export default function QueueAll({ + topic = null, + feed = null, + group = null, + total, + queued, + lanes, + next, +}) { if (total === 0) return null; + // Which playlist this is, and therefore which pair of actions it posts. + const scope = feed ? 'feed' : 'topic'; + // "All of it" rather than "every single one": a playlist whose entries are // already in the queue for other reasons should not offer to add them again. const all = queued >= total; @@ -46,8 +63,12 @@ export default function QueueAll({ topic, group = null, total, queued, lanes, ne return (