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