Badges url via function
@@ -5,6 +5,7 @@ import { db } from "~/db";
|
||||
import type { All } from "~/db/models/badges.server";
|
||||
import styles from "~/styles/badges.css";
|
||||
import { jsonCached } from "~/utils/remix";
|
||||
import { badgeUrl } from "~/utils/urls";
|
||||
|
||||
export const links: LinksFunction = () => {
|
||||
return [{ rel: "stylesheet", href: styles }];
|
||||
@@ -35,8 +36,7 @@ export default function BadgesPageLayout() {
|
||||
.map((badge) => (
|
||||
<Link key={badge.id} to={String(badge.id)}>
|
||||
<img
|
||||
// xxx: from constants
|
||||
src={`/gif/badges/${badge.code}.gif`}
|
||||
src={badgeUrl({ code: badge.code, extension: "gif" })}
|
||||
alt={badge.displayName}
|
||||
title={badge.displayName}
|
||||
width="64"
|
||||
|
||||
@@ -7,7 +7,7 @@ import type { OwnersByBadge } from "~/db/models/badges.server";
|
||||
import type { Badge } from "~/db/types";
|
||||
import { jsonCached } from "~/utils/remix";
|
||||
import { discordFullName } from "~/utils/strings";
|
||||
import { BADGES_PAGE } from "~/utils/urls";
|
||||
import { BADGES_PAGE, badgeUrl } from "~/utils/urls";
|
||||
import type { BadgesLoaderData } from "../badges";
|
||||
|
||||
export interface BadgeDetailsLoaderData {
|
||||
@@ -38,7 +38,7 @@ export default function BadgeDetailsPage() {
|
||||
return (
|
||||
<div className="stack md items-center">
|
||||
<img
|
||||
src={`/gif/badges/${badge.code}.gif`}
|
||||
src={badgeUrl({ code: badge.code, extension: "gif" })}
|
||||
alt={badge.displayName}
|
||||
title={badge.displayName}
|
||||
width="200"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import type { Badge } from "~/db/types";
|
||||
|
||||
export const SENDOU_INK_DISCORD_URL = "https://discord.gg/sendou";
|
||||
export const SENDOU_INK_TWITTER_URL = "https://twitter.com/sendouink";
|
||||
export const SENDOU_INK_PATREON_URL = "https://patreon.com/sendou";
|
||||
@@ -13,3 +15,11 @@ export const STOP_IMPERSONATING_URL = "/auth/impersonate/stop";
|
||||
export const userPage = (discordId: string) => `/u/${discordId}`;
|
||||
export const impersonateUrl = (idToLogInAs: number) =>
|
||||
`/auth/impersonate?id=${idToLogInAs}`;
|
||||
|
||||
export const badgeUrl = ({
|
||||
code,
|
||||
extension,
|
||||
}: {
|
||||
code: Badge["code"];
|
||||
extension: "gif" | "avif" | "png";
|
||||
}) => `/badges/${code}.${extension}`;
|
||||
|
||||
|
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 185 KiB After Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 171 KiB After Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 340 KiB After Width: | Height: | Size: 340 KiB |
|
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 387 KiB After Width: | Height: | Size: 387 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB |
|
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 161 KiB |
|
Before Width: | Height: | Size: 327 KiB After Width: | Height: | Size: 327 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 248 KiB After Width: | Height: | Size: 248 KiB |
|
Before Width: | Height: | Size: 328 KiB After Width: | Height: | Size: 328 KiB |
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 416 KiB After Width: | Height: | Size: 416 KiB |
|
Before Width: | Height: | Size: 419 KiB After Width: | Height: | Size: 419 KiB |
|
Before Width: | Height: | Size: 400 KiB After Width: | Height: | Size: 400 KiB |
|
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 252 KiB |
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 273 KiB |
|
Before Width: | Height: | Size: 246 KiB After Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 237 KiB |
|
Before Width: | Height: | Size: 491 KiB After Width: | Height: | Size: 491 KiB |
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 328 KiB After Width: | Height: | Size: 328 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 212 KiB |
|
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 184 KiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB |
|
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 221 KiB |