diff --git a/src/components/AmbassadorCard.tsx b/src/components/AmbassadorCard.tsx
index 25e8bbff..f30bddef 100644
--- a/src/components/AmbassadorCard.tsx
+++ b/src/components/AmbassadorCard.tsx
@@ -1,5 +1,5 @@
import type { CreateTypes } from "canvas-confetti";
-import { type Ref, useCallback, useEffect, useRef } from "react";
+import { type Ref, useCallback, useEffect, useRef, useState } from "react";
import Confetti from "react-canvas-confetti";
import { createPortal } from "react-dom";
@@ -16,6 +16,7 @@ import IconBack from "./icons/IconBack";
import IconExternal from "./icons/IconExternal";
import IconInfo from "./icons/IconInfo";
+import Dogear from "./Dogear";
import Ring from "./Ring";
import TiltCard from "./TiltCard";
import Tooltip from "./Tooltip";
@@ -48,6 +49,9 @@ export default function AmbassadorCard(props: AmbassadorCardProps) {
} = props;
const ambassador = useAmbassador(ambassadorKey);
+ const [flipped, setFlipped] = useState(false);
+ const flipCard = useCallback(() => setFlipped((prev) => !prev), []);
+
const mod =
window?.Twitch?.ext?.viewer?.role === "broadcaster" ||
window?.Twitch?.ext?.viewer?.role === "moderator";
@@ -130,9 +134,19 @@ export default function AmbassadorCard(props: AmbassadorCardProps) {
!disableCardEffects && "mb-4",
className,
)}
+ style={
+ ambassador.fact
+ ? {
+ clipPath:
+ "polygon(0 0, calc(100% - 2.5rem) 0, 100% 2.5rem, 100% 100%, 0 100%)",
+ }
+ : undefined
+ }
ref={callbackRef}
{...extras}
>
+ {ambassador.fact &&
)}
-
+ Show this card to everyone by using{" "}
+ !{ambassador.commands[0]} in chat.
+
{ambassador.species.name}
- Show this card to everyone by using{" "}
- !{ambassador.commands[0]} in chat.
+ {ambassador.species.scientificName}{" "}
+
+ ({ambassador.species.class.title})
+
{ambassador.species.name}
-- {ambassador.species.scientificName}{" "} - - ({ambassador.species.class.title}) - -
-{ambassador.sex || "Unknown"}
++ {age[0] === "~" && ( + + ~ + + )} + {age.slice(age[0] === "~" ? 1 : 0)} +
++ {birth[0] === "~" && ( + + ~ + + )} + {birth.slice(birth[0] === "~" ? 1 : 0)} +
+{ambassador.story}
+{ambassador.sex || "Unknown"}
+{ambassador.mission}
- {age[0] === "~" && (
-
- ~
-
+ IUCN:{" "}
+ {ambassador.species.iucn.id &&
+ ambassador.species.iucn.assessment ? (
+
+
+ {ambassador.species.iucn.title}
+ {" "}
+
{ambassador.species.native}
+- {birth[0] === "~" && ( - - ~ - + Wild:{" "} + {typeof ambassador.species.lifespan.wild === "string" ? ( + ambassador.species.lifespan.wild + ) : ( + <> + + ~ + + {stringifyLifespan(ambassador.species.lifespan.wild)} years + > + )} +
++ Captivity:{" "} + {typeof ambassador.species.lifespan.captivity === "string" ? ( + ambassador.species.lifespan.captivity + ) : ( + <> + + ~ + + {stringifyLifespan(ambassador.species.lifespan.captivity)}{" "} + years + > )} - {birth.slice(birth[0] === "~" ? 1 : 0)}
{ambassador.story}
-{ambassador.mission}
-
- IUCN:{" "}
- {ambassador.species.iucn.id &&
- ambassador.species.iucn.assessment ? (
-
-
- {ambassador.species.iucn.title}
- {" "}
-
{ambassador.species.native}
-- Wild:{" "} - {typeof ambassador.species.lifespan.wild === "string" ? ( - ambassador.species.lifespan.wild - ) : ( - <> - - ~ - - {stringifyLifespan(ambassador.species.lifespan.wild)} years - > - )} -
-- Captivity:{" "} - {typeof ambassador.species.lifespan.captivity === "string" ? ( - ambassador.species.lifespan.captivity - ) : ( - <> - - ~ - - {stringifyLifespan(ambassador.species.lifespan.captivity)}{" "} - years - > - )} -
-+ {ambassador.arrival + ? formatDate(ambassador.arrival, false) + : "Unknown"} +
+
+ Learn more about {ambassador.name} on the{" "}
-
- {ambassador.enclosure.title}
- {" "}
+ Alveus Sanctuary website{" "}
- {ambassador.arrival - ? formatDate(ambassador.arrival, false) - : "Unknown"} -
-
- Learn more about {ambassador.name} on the{" "}
-
- Alveus Sanctuary website{" "}
+ {flipped && (
+
+ Did you know?
+
+ {ambassador.fact}
+
+ {ambassador.name}
+
+