Type Alias GuildFishingLeaderboard

GuildFishingLeaderboard: {
    axes: FishingBoardAxis[];
    axis: FishingBoardAxis;
    maxRows: number;
    period: string;
    rows: FishingBoardRow[];
    scope: FishingBoardScope;
    scopes: FishingBoardScope[];
    stale: boolean;
    viewerRank: number | null;
    viewerRow: FishingBoardRow | null;
}

Type declaration

  • axes: FishingBoardAxis[]
  • axis: FishingBoardAxis
  • maxRows: number
  • period: string

    Which season these rows are, as YYYY-MM (UTC month).

    Render it as the board's label. Seasons are calendar months, so on the 1st of every month every season board legitimately resets to empty while the all-time board keeps its totals. An unlabelled empty board is indistinguishable from a broken one, and an empty state saying "no coins earned this season yet" answers the question the label raises.

    Nothing configures the length - a season is the UTC month and that is the whole definition.

  • rows: FishingBoardRow[]
  • scope: FishingBoardScope
  • scopes: FishingBoardScope[]
  • stale: boolean

    True while a rollover is in progress: these are the PREVIOUS season. Say so rather than hide it.

  • viewerRank: number | null

    Null when the viewer is not on the board, which is the common case.

  • viewerRow: FishingBoardRow | null

    The viewer's OWN row, for pinning below the visible entries. A rank with no score cannot be rendered, which is what viewerRank alone gives you.

    NULL WHEN THEY ARE ALREADY IN rows - render this or their entry there, never both. Also null when they have no score on this axis or the owner has excluded them.

    rank here is competition ranking (count(value > theirs) + 1), so ties share a place. The page ranks by array index, so for tied values the two can differ by one.