build(frontend)!: knip drops --production; plain knip stays
The production pass (7ed2ac4e, E32) asked "is this export used by what
ships?". No real hit: its only findings were 37 exports a test imports,
answered with 36 `@internal` JSDoc tags (E34 S2) — test-only exports, not
defects. Since then it has only ever asked for another tag. The tags go
with it (36, no longer read by anything), and so do the production-only
`!…!` exclusions in knip.jsonc and their register rows. Plain knip (unused
files, exports and dependencies) keeps running in the gate.
This commit is contained in:
@@ -45,7 +45,6 @@ export function applySyncFilter(rows: ManagedChannel[], value: unknown): Managed
|
||||
/** The Tags column filter predicate (item B): the "No tag" sentinel keeps channels the user hasn't
|
||||
* personally tagged (empty `tag_ids`); it's exclusive with real tag picks (the chip row enforces that),
|
||||
* so when present it wins. Otherwise a channel passes if it carries ANY selected tag id. */
|
||||
/** @internal exported for channelColumns.dom.test.tsx */
|
||||
export function tagsColumnTest(c: ManagedChannel, values: string[]): boolean {
|
||||
if (values.includes(NO_TAG_SENTINEL)) return c.tag_ids.length === 0;
|
||||
return values.some((v) => c.tag_ids.includes(Number(v)));
|
||||
|
||||
@@ -22,7 +22,6 @@ import UserPicker from "./UserPicker";
|
||||
|
||||
const GiB = 1024 ** 3;
|
||||
|
||||
/** @internal exported for downloadAdmin.dom.test.tsx */
|
||||
export function QuotaModal({
|
||||
userId,
|
||||
email,
|
||||
|
||||
@@ -184,7 +184,6 @@ export function DetailKeywords({
|
||||
// The crew shows its first CREW_SHOWN names and a "Show N more" that opens the rest: the column beside the
|
||||
// text is the hero's tallest part, and twelve names ran it ~170px past the text (E31, the owner's call).
|
||||
// A list only a little longer than that shows whole: a toggle that hides one or two names saves no room.
|
||||
/** @internal exported for PlexInfo.dom.test.tsx */
|
||||
export const CREW_SHOWN = 6;
|
||||
const CREW_FOLD_OVER = CREW_SHOWN + 2;
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@ import { SURFACE } from "./surfaces";
|
||||
// Built on the same AnchoredPopover platform as ActionMenu/Combobox (arrows/typeahead/Escape/anchor-flip);
|
||||
// reusable anywhere a small, known set of options currently renders as a chip group. See FilterSelect.dom.test.
|
||||
|
||||
/** @internal exported for FilterSelect.dom.test.tsx */
|
||||
export interface FilterSelectOption {
|
||||
value: string;
|
||||
label: string;
|
||||
|
||||
@@ -12,7 +12,6 @@ import { startTransition, useEffect, useState } from "react";
|
||||
//
|
||||
// Not virtualization: every row still ends up in the DOM, so browser find, keyboard nav past the screen,
|
||||
// and the Back focus/scroll restore (which wait for the list to grow) keep working as they did.
|
||||
/** @internal exported for DataTable.progressive.dom.test.tsx */
|
||||
export const FIRST_ROWS = 30;
|
||||
const STEP_ROWS = 40;
|
||||
|
||||
|
||||
@@ -8,16 +8,12 @@
|
||||
// - ceiling MAX_LOOKAHEAD_ROWS: a tall window renders many rows, and an uncapped lookahead would
|
||||
// eagerly prefetch several pages on every mount / filter change — wasted work on the app's
|
||||
// heaviest query (the feed). The cap bounds that while still buffering a couple of screens ahead.
|
||||
/** @internal exported for readAhead.test.ts */
|
||||
export const PREFETCH_ROWS = 4;
|
||||
/** @internal exported for readAhead.test.ts */
|
||||
export const PREFETCH_VIEWPORTS = 2;
|
||||
/** @internal exported for readAhead.test.ts */
|
||||
export const MAX_LOOKAHEAD_ROWS = 40;
|
||||
|
||||
/** How many rows ahead of the last rendered row to keep buffered, for a viewport rendering
|
||||
* `renderedRows` rows. Clamped to [PREFETCH_ROWS, MAX_LOOKAHEAD_ROWS]. */
|
||||
/** @internal exported for readAhead.test.ts */
|
||||
export function readAheadLookahead(renderedRows: number): number {
|
||||
return Math.min(MAX_LOOKAHEAD_ROWS, Math.max(PREFETCH_ROWS, renderedRows * PREFETCH_VIEWPORTS));
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ import { CONTENT_ID } from "./landmarks";
|
||||
// back (`room - saving > FOLD_AT`): a page barely taller than the window would otherwise fold, lose its
|
||||
// scroll, land at the top, unfold, and so on, with every wheel tick;
|
||||
// - unfold only at the very top, not at the fold point: between the two the header keeps whatever it was.
|
||||
/** @internal exported for scrollFold.test.ts */
|
||||
export const FOLD_AT = 32;
|
||||
|
||||
interface ScrollPosition {
|
||||
@@ -21,7 +20,6 @@ interface ScrollPosition {
|
||||
}
|
||||
|
||||
// `saving` = the height the header gives back when it folds (measured while it is unfolded).
|
||||
/** @internal exported for scrollFold.test.ts */
|
||||
export function nextFolded(
|
||||
folded: boolean,
|
||||
{ top, room }: ScrollPosition,
|
||||
|
||||
Reference in New Issue
Block a user