ui: raise in-game emoji button above the hand + gender = male/female/unknown
- GameTable reactions button (and its tray) moved up from the bottom-right so it no longer overlaps the player's cards on mobile portrait. - Gender options are now Male / Female / Unknown — removed "other" from the Gender type, GENDER_META, and the profile picker; the empty value renders as «نامشخص» / "Unknown". Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -800,7 +800,7 @@ function Reactions() {
|
|||||||
initial={{ opacity: 0, y: 12, scale: 0.95 }}
|
initial={{ opacity: 0, y: 12, scale: 0.95 }}
|
||||||
animate={{ opacity: 1, y: 0, scale: 1 }}
|
animate={{ opacity: 1, y: 0, scale: 1 }}
|
||||||
exit={{ opacity: 0, y: 12, scale: 0.95 }}
|
exit={{ opacity: 0, y: 12, scale: 0.95 }}
|
||||||
className="absolute bottom-20 ltr:right-4 rtl:left-4 z-50 glass rounded-2xl p-2 w-[min(270px,86vw)]"
|
className="absolute bottom-60 ltr:right-3 rtl:left-3 z-50 glass rounded-2xl p-2 w-[min(270px,86vw)]"
|
||||||
>
|
>
|
||||||
<div className="flex gap-1 p-1 rounded-xl bg-navy-900/70 mb-2">
|
<div className="flex gap-1 p-1 rounded-xl bg-navy-900/70 mb-2">
|
||||||
<button
|
<button
|
||||||
@@ -852,10 +852,10 @@ function Reactions() {
|
|||||||
)}
|
)}
|
||||||
</AnimatePresence>
|
</AnimatePresence>
|
||||||
|
|
||||||
{/* button */}
|
{/* button — raised above the hand so it doesn't overlap the cards on mobile */}
|
||||||
<button
|
<button
|
||||||
onClick={() => setOpen((o) => !o)}
|
onClick={() => setOpen((o) => !o)}
|
||||||
className="absolute bottom-[max(1rem,env(safe-area-inset-bottom))] ltr:right-4 rtl:left-4 z-50 glass rounded-full min-h-12 min-w-12 grid place-items-center hover:bg-navy-800 transition"
|
className="absolute bottom-44 ltr:right-3 rtl:left-3 z-50 glass rounded-full min-h-12 min-w-12 grid place-items-center hover:bg-navy-800 transition"
|
||||||
title={t("reactions.title")}
|
title={t("reactions.title")}
|
||||||
>
|
>
|
||||||
<SmilePlus className="size-5 text-gold-400" />
|
<SmilePlus className="size-5 text-gold-400" />
|
||||||
|
|||||||
@@ -407,7 +407,7 @@ function Stat({ label, value }: { label: string; value: string | number }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const GENDERS: Gender[] = ["male", "female", "other", ""];
|
const GENDERS: Gender[] = ["male", "female", ""];
|
||||||
const VIS_OPTIONS: { id: SocialVisibility; icon: React.ReactNode; key: string }[] = [
|
const VIS_OPTIONS: { id: SocialVisibility; icon: React.ReactNode; key: string }[] = [
|
||||||
{ id: "public", icon: <Eye className="size-3.5" />, key: "profile.visPublic" },
|
{ id: "public", icon: <Eye className="size-3.5" />, key: "profile.visPublic" },
|
||||||
{ id: "friends", icon: <Users className="size-3.5" />, key: "profile.visFriends" },
|
{ id: "friends", icon: <Users className="size-3.5" />, key: "profile.visFriends" },
|
||||||
|
|||||||
+1
-1
@@ -737,7 +737,7 @@ const en: Dict = {
|
|||||||
"profile.cardBack": "Card back",
|
"profile.cardBack": "Card back",
|
||||||
"profile.social": "Social & contact",
|
"profile.social": "Social & contact",
|
||||||
"profile.gender": "Gender",
|
"profile.gender": "Gender",
|
||||||
"profile.genderNone": "Unspecified",
|
"profile.genderNone": "Unknown",
|
||||||
"profile.socialLinks": "Social media",
|
"profile.socialLinks": "Social media",
|
||||||
"profile.socialsVisibility": "Show socials to",
|
"profile.socialsVisibility": "Show socials to",
|
||||||
"profile.visPublic": "Everyone",
|
"profile.visPublic": "Everyone",
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export interface PlayerStats {
|
|||||||
export type PlanId = "free" | "pro";
|
export type PlanId = "free" | "pro";
|
||||||
|
|
||||||
/** Player-stated gender (empty = unspecified / not shown). */
|
/** Player-stated gender (empty = unspecified / not shown). */
|
||||||
export type Gender = "" | "male" | "female" | "other";
|
export type Gender = "" | "male" | "female";
|
||||||
|
|
||||||
/** Who may see a player's social links. */
|
/** Who may see a player's social links. */
|
||||||
export type SocialVisibility = "public" | "friends" | "hidden";
|
export type SocialVisibility = "public" | "friends" | "hidden";
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ export const GENDER_META: Record<
|
|||||||
> = {
|
> = {
|
||||||
male: { symbol: "♂", color: "#5aa6e0", faLabel: "آقا", enLabel: "Male" },
|
male: { symbol: "♂", color: "#5aa6e0", faLabel: "آقا", enLabel: "Male" },
|
||||||
female: { symbol: "♀", color: "#ff7aa8", faLabel: "خانم", enLabel: "Female" },
|
female: { symbol: "♀", color: "#ff7aa8", faLabel: "خانم", enLabel: "Female" },
|
||||||
other: { symbol: "⚧", color: "#c77dff", faLabel: "دیگر", enLabel: "Other" },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The social platforms a player can share, with link prefixes + brand colours. */
|
/** The social platforms a player can share, with link prefixes + brand colours. */
|
||||||
|
|||||||
Reference in New Issue
Block a user