OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
 
master @ 86 LINES
 
[ HISTORY ]  [ UP ]
 

---
import "./ChallengeRun.scss";
import { formatShortDate } from "../../../lib/utils";
import { getDungeonIconUrl } from "../../../lib/dungeonIcons";
import TeamComposition from "../../Leaderboard/TeamComposition/TeamComposition.ast
ro";
import DungeonTime from "../../DungeonTime/DungeonTime.astro";
import type { TeamMember } from "../../../lib/types";

interface Props {
  dungeonName: string;
  dungeonSlug: string;
  durationMs: number;
  completedTimestamp: number;
  teamMembers: TeamMember[];
  showDungeonIcon?: boolean;
  showDungeonName?: boolean;
  rank?: number;
  bracket?: string;
  seasonId?: number;
}

const {
  dungeonName,
  dungeonSlug,
  durationMs,
  completedTimestamp,
  teamMembers,
  showDungeonIcon = true,
  showDungeonName = true,
  rank,
  bracket,
  seasonId = 3,
} = Astro.props;

const dungeonIcon = getDungeonIconUrl(dungeonSlug, dungeonName);
const bracketClass = bracket ? `bracket-${bracket}` : "";
---

<article class="challenge-run">
  {
    showDungeonIcon && dungeonIcon && (
      <a
        class="challenge-run__dungeon"
        href={`/challenge-mode/season${seasonId}/global/${dungeonSlug}`}
        title={dungeonName}
      >
        <img src={dungeonIcon} alt={dungeonName} loading="lazy" />
      </a>
    )
  }

  {
    rank && (
      <span
        class:list={["challenge-run__rank", "ranking-number", bracketClass]}
      >
        {rank}
      </span>
    )
  }

  {
    showDungeonName && (
      <span class="challenge-run__dungeon-name">{dungeonName}</span>
    )
  }

  <div class="challenge-run__team">
    <TeamComposition members={teamMembers} />
  </div>

  <DungeonTime
    class="challenge-run__duration"
    dungeonSlug={dungeonSlug}
    durationMs={durationMs}
  />

  <time
    class="challenge-run__date"
    datetime={new Date(completedTimestamp).toISOString()}
    title={new Date(completedTimestamp).toLocaleString()}
  >
    {formatShortDate(completedTimestamp)}
  </time>
</article>

---
import "./ChallengeRun.scss";
import { formatShortDate } from "../../../li
b/utils";
import { getDungeonIconUrl } from "../../../
lib/dungeonIcons";
import TeamComposition from "../../Leaderboa
rd/TeamComposition/TeamComposition.astro";
import DungeonTime from "../../DungeonTime/D
ungeonTime.astro";
import type { TeamMember } from "../../../li
b/types";

interface Props {
  dungeonName: string;
  dungeonSlug: string;
  durationMs: number;
  completedTimestamp: number;
  teamMembers: TeamMember[];
  showDungeonIcon?: boolean;
  showDungeonName?: boolean;
  rank?: number;
  bracket?: string;
  seasonId?: number;
}

const {
  dungeonName,
  dungeonSlug,
  durationMs,
  completedTimestamp,
  teamMembers,
  showDungeonIcon = true,
  showDungeonName = true,
  rank,
  bracket,
  seasonId = 3,
} = Astro.props;

const dungeonIcon = getDungeonIconUrl(dungeo
nSlug, dungeonName);
const bracketClass = bracket ? `bracket-${br
acket}` : "";
---

<article class="challenge-run">
  {
    showDungeonIcon && dungeonIcon && (
      <a
        class="challenge-run__dungeon"
        href={`/challenge-mode/season${seaso
nId}/global/${dungeonSlug}`}
        title={dungeonName}
      >
        <img src={dungeonIcon} alt={dungeonN
ame} loading="lazy" />
      </a>
    )
  }

  {
    rank && (
      <span
        class:list={["challenge-run__rank", 
"ranking-number", bracketClass]}
      >
        {rank}
      </span>
    )
  }

  {
    showDungeonName && (
      <span class="challenge-run__dungeon-na
me">{dungeonName}</span>
    )
  }

  <div class="challenge-run__team">
    <TeamComposition members={teamMembers} /
>
  </div>

  <DungeonTime
    class="challenge-run__duration"
    dungeonSlug={dungeonSlug}
    durationMs={durationMs}
  />

  <time
    class="challenge-run__date"
    datetime={new Date(completedTimestamp).t
oISOString()}
    title={new Date(completedTimestamp).toLo
caleString()}
  >
    {formatShortDate(completedTimestamp)}
  </time>
</article>
 
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET