import type { ConfigResponse } from '../../../../../packages/api-contracts/src/index.js'; import { conversationModes, type ConversationMode, type SubredditConfig } from './subreddit-model.js'; interface SubredditBulkBarProps { selected: readonly SubredditConfig[]; /** True when a bulk write is in flight. */ isBusy: boolean; /** Set when removing the selection is not allowed, explaining why. */ removeBlockedReason?: string; tones: ConfigResponse['tones']; onClear(): void; onRemove(): void; onSetEnabled(enabled: boolean): void; onSetPolicy(mode: ConversationMode): void; onSetTone(tone: ConfigResponse['tones'][number]): void; } /** * Acts on many subreddits at once. With dozens configured, opening each row to * change one shared field is the slowest possible path. */ export function SubredditBulkBar({ isBusy, onClear, onRemove, onSetEnabled, onSetPolicy, onSetTone, removeBlockedReason, selected, tones, }: SubredditBulkBarProps) { const pausedCount = selected.filter((subreddit) => !subreddit.enabled).length; const pollingCount = selected.length - pausedCount; return (