From 6a21c9aaac2b583b95fbf31cf9eda0e038329146 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com>
Date: Thu, 5 Jun 2025 12:42:40 -0500
Subject: [PATCH] feat: docs
---
.gitmodules | 3 ++
.vscode/settings.json | 1 +
.../src/components/Avatars/Group.tsx | 2 +-
.../src/components/Avatars/Popup.tsx | 11 ++---
.../website-ue/src/components/RewardBadge.tsx | 42 +++++++++++++++++++
.../pages/api/currencies/[currency].webp.ts | 21 ++++++++++
submodules/blitzkit-closed | 2 +-
submodules/blitzkit-internal | 1 +
8 files changed, 76 insertions(+), 7 deletions(-)
create mode 100644 packages/website-ue/src/components/RewardBadge.tsx
create mode 100644 packages/website-ue/src/pages/api/currencies/[currency].webp.ts
create mode 160000 submodules/blitzkit-internal
diff --git a/.gitmodules b/.gitmodules
index 481aa1bbc..018fd3a9d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,3 +4,6 @@
[submodule "submodules/CUE4Parse"]
path = submodules/CUE4Parse
url = https://github.com/FabianFG/CUE4Parse
+[submodule "submodules/blitzkit-internal"]
+ path = submodules/blitzkit-internal
+ url = https://github.com/blitzkit/internal
diff --git a/.vscode/settings.json b/.vscode/settings.json
index e0a3622e9..395a3610c 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -51,6 +51,7 @@
"CUBEMAP",
"CUBETEXCOORD",
"customperiod",
+ "Datacard",
"datasource",
"Dava",
"dbid",
diff --git a/packages/website-ue/src/components/Avatars/Group.tsx b/packages/website-ue/src/components/Avatars/Group.tsx
index e562a8b10..ee8e637c8 100644
--- a/packages/website-ue/src/components/Avatars/Group.tsx
+++ b/packages/website-ue/src/components/Avatars/Group.tsx
@@ -1,4 +1,4 @@
-import type { BlitzKitAvatar } from '@protos/blitzkit_static_all_avatars_component';
+import type { BlitzKitAvatar } from '@protos/blitzkit';
import { Dialog } from '@radix-ui/themes';
import type { MaybeSkeletonComponentProps } from '../../types/maybeSkeletonComponentProps';
import { Content } from './Content';
diff --git a/packages/website-ue/src/components/Avatars/Popup.tsx b/packages/website-ue/src/components/Avatars/Popup.tsx
index 35cde9458..7492f633a 100644
--- a/packages/website-ue/src/components/Avatars/Popup.tsx
+++ b/packages/website-ue/src/components/Avatars/Popup.tsx
@@ -9,6 +9,7 @@ import {
import { Badge, Box, Button, Dialog, Flex, Link, Text } from '@radix-ui/themes';
import { Var } from '../../core/radix/var';
import { useLocale } from '../../hooks/useLocale';
+import { RewardBadge } from '../RewardBadge';
import { GRADE_COLORS } from './Colors';
import type { AvatarGroupProps } from './Group';
@@ -79,11 +80,11 @@ export function Popup({ name, avatars }: AvatarGroupProps) {
)}
{avatar.sale && (
-
- {JSON.stringify(
- avatar.sale.reward_list[0].currency_reward?.amount,
- )}
-
+
)}
diff --git a/packages/website-ue/src/components/RewardBadge.tsx b/packages/website-ue/src/components/RewardBadge.tsx
new file mode 100644
index 000000000..fdd8bdef3
--- /dev/null
+++ b/packages/website-ue/src/components/RewardBadge.tsx
@@ -0,0 +1,42 @@
+import type { StandardReward } from '@protos/blitz_static_standard_reward';
+import { Badge, type BadgeProps } from '@radix-ui/themes';
+import { useLocale } from '../hooks/useLocale';
+
+interface RewardBadgeProps {
+ reward: StandardReward;
+}
+
+export function RewardBadge({
+ reward,
+ ...props
+}: RewardBadgeProps & BadgeProps) {
+ const { locale } = useLocale();
+
+ if (reward.reward_list.length !== 1) {
+ throw new Error('reward_list must be length 1');
+ }
+
+ const reward0 = reward.reward_list[0];
+
+ Object.entries(reward0).forEach(([key, value]) => {
+ if (key !== 'currency_reward' && value !== undefined) {
+ throw new Error(`unsupported reward type: ${key}`);
+ }
+ });
+
+ return (
+
+ {reward0.currency_reward && (
+ <>
+
+ {reward0.currency_reward.amount.toLocaleString(locale)}
+ >
+ )}
+
+ );
+}
diff --git a/packages/website-ue/src/pages/api/currencies/[currency].webp.ts b/packages/website-ue/src/pages/api/currencies/[currency].webp.ts
new file mode 100644
index 000000000..9fc8f36e8
--- /dev/null
+++ b/packages/website-ue/src/pages/api/currencies/[currency].webp.ts
@@ -0,0 +1,21 @@
+import { StuffUIComponent } from '@protos/blitz_static_stuff_ui_component';
+import type { APIRoute, GetStaticPaths } from 'astro';
+import { api } from 'packages/website-ue/src/core/blitzkit/api';
+
+export const getStaticPaths: GetStaticPaths = () => {
+ return api.metadata
+ .filter((item) => item.startsWith('CurrencyEntity.'))
+ .map((item) => ({
+ params: { currency: item.undiscriminatedId() },
+ props: { ui: item.get(StuffUIComponent, 'UIComponent') },
+ }));
+};
+
+export const GET: APIRoute<{ ui: StuffUIComponent }> = async ({ props }) => {
+ console.log(props.ui.icon);
+
+ const response = await fetch(props.ui.icon);
+ const buffer = await response.arrayBuffer();
+
+ return new Response(buffer, { headers: response.headers });
+};
diff --git a/submodules/blitzkit-closed b/submodules/blitzkit-closed
index cba6a7bfa..ef7759471 160000
--- a/submodules/blitzkit-closed
+++ b/submodules/blitzkit-closed
@@ -1 +1 @@
-Subproject commit cba6a7bfabdb6d6c7419553774166aa459d52d52
+Subproject commit ef77594716be5a3aabd1edcd60874b57c381fec7
diff --git a/submodules/blitzkit-internal b/submodules/blitzkit-internal
new file mode 160000
index 000000000..14adb2e45
--- /dev/null
+++ b/submodules/blitzkit-internal
@@ -0,0 +1 @@
+Subproject commit 14adb2e4566376bf0acba4524fd09456a49e6152