- A tag counts the followed channels the Subscriptions tab shows: hidden ones are left out, and a subscribe, unsubscribe, hide or tag toggle refreshes the count. The Tag manager's row and its hover list count the same channels as the chip; /api/tags sends both counts under their names. - A chip's count keeps the chip's colour after a dot (a dimmed count fell under 4.5:1). A pick in the open "+N" fold closes it; a chip that leaves the list hands the focus to the one in its place. The fold is a dialog of toggle buttons, not an empty menu. - Upload: a folder name left by a press is made once the press is over, if the dialog is still open, instead of guessing a dismissal from Modal's markup. While the folder is made, its place holds the focus and a live region says so. - Share: an expired link has no Copy and a warn badge; the link made on open goes into the cached list, so a reopen makes no second one; the New link form survives the link made on open. - Watch: a repeated Enter sends one unlock while one is on its way. See all buttons are named with their rail. - An unsized clip of a rotated file gets the upright size its crop cut.
22 lines
841 B
TypeScript
22 lines
841 B
TypeScript
import type { QueryClient } from "@tanstack/react-query";
|
|
|
|
import { qk } from "./queryKeys";
|
|
|
|
/** Everything a subscribe or an unsubscribe changes: the channel itself, the manager's list and its
|
|
* counts, the feed and its facets (the channel's videos come or go), the two discovery lists (a
|
|
* subscribed channel leaves them), and the tags (a tag counts the followed channels it is on). ONE set for every site that makes the change: each used to keep
|
|
* its own list, and each list missed something. */
|
|
export function invalidateSubscription(qc: QueryClient, channelId: string): void {
|
|
for (const queryKey of [
|
|
qk.channel(channelId),
|
|
qk.channels(),
|
|
qk.myStatus(),
|
|
qk.feed(),
|
|
qk.feedSummary(),
|
|
qk.discoveredChannels(),
|
|
qk.watchedChannels(),
|
|
qk.tags(),
|
|
])
|
|
void qc.invalidateQueries({ queryKey });
|
|
}
|