From 86eecd202a29bf9ee66d9a5b5f7665c710e5d58f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Mon, 4 Nov 2024 10:36:43 -0600 Subject: [PATCH] feat: reset button --- docs/changelogs/1.25.0.md | 6 +++ package.json | 2 +- .../src/components/Embeds/breakdown.tsx | 38 +++++++++++++++---- .../website/src/components/TanksEmbed.tsx | 14 +++++-- 4 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 docs/changelogs/1.25.0.md diff --git a/docs/changelogs/1.25.0.md b/docs/changelogs/1.25.0.md new file mode 100644 index 000000000..e3c474310 --- /dev/null +++ b/docs/changelogs/1.25.0.md @@ -0,0 +1,6 @@ +# BlitzKit 1.25.0 + +## Features + +- Added embeds + - This tool is intended diff --git a/package.json b/package.json index 8b88e9aad..e87feb0f0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "blitzkit", "private": true, - "version": "1.24.0", + "version": "1.25.0", "description": "🎉 Tools for everything World of Tanks Blitz", "type": "module", "types": "./types.d.ts", diff --git a/packages/website/src/components/Embeds/breakdown.tsx b/packages/website/src/components/Embeds/breakdown.tsx index e07c04568..984c784fe 100644 --- a/packages/website/src/components/Embeds/breakdown.tsx +++ b/packages/website/src/components/Embeds/breakdown.tsx @@ -7,6 +7,8 @@ import { type IndividualTankStats, } from '@blitzkit/core'; import strings from '@blitzkit/core/lang/en-US.json'; +import { ReloadIcon } from '@radix-ui/react-icons'; +import { ContextMenu } from '@radix-ui/themes'; import { useEffect, useMemo, useState } from 'react'; import { breakdownConfig } from '../../constants/embeds'; import { EmbedBreakdownPersistent } from '../../stores/embedBreakdownPersistent'; @@ -46,6 +48,7 @@ export function BreakdownRenderer() { function BreakdownRendererContent() { const { useEmbedState } = useEmbedStateCurry(); const params = new URLSearchParams(window.location.search); + const mutateEmbedBreakdownPersistent = EmbedBreakdownPersistent.useMutation(); const id = Number(params.get('id')); const tankStatsA = EmbedBreakdownPersistent.use((state) => state[id] ?? []); const [tankStatsB, setTankStatsB] = useState([]); @@ -70,14 +73,35 @@ function BreakdownRendererContent() { }, []); return ( - - {useEmbedState('showTotal') && } + + + + {useEmbedState('showTotal') && } - {diff.slice(0, useEmbedState('listMaxTanks')).map((diff) => { - const tank = tankDefinitions.tanks[diff.tank_id]; + {diff.slice(0, useEmbedState('listMaxTanks')).map((diff) => { + const tank = tankDefinitions.tanks[diff.tank_id]; - return ; - })} - + return ; + })} + + + + + { + const newA = await getTankStats(idToRegion(id), id); + + if (newA === null) return; + + mutateEmbedBreakdownPersistent((draft) => { + draft[id] = newA; + }); + }} + > + Reset + + + ); } diff --git a/packages/website/src/components/TanksEmbed.tsx b/packages/website/src/components/TanksEmbed.tsx index 8eaa7de7d..76e6bbafb 100644 --- a/packages/website/src/components/TanksEmbed.tsx +++ b/packages/website/src/components/TanksEmbed.tsx @@ -7,7 +7,7 @@ import { } from '@blitzkit/core'; import strings from '@blitzkit/core/lang/en-US.json'; import { amberDark, blueDark } from '@radix-ui/colors'; -import { Flex, Text } from '@radix-ui/themes'; +import { Flex, Text, type FlexProps } from '@radix-ui/themes'; import { times } from 'lodash-es'; import type { ReactNode } from 'react'; import { breakdownConfig } from '../constants/embeds'; @@ -18,17 +18,23 @@ import { ClassLight } from './ClassIcon/components/ClassLight'; import { ClassMedium } from './ClassIcon/components/ClassMedium'; import { ClassTankDestroyer } from './ClassIcon/components/ClassTankDestroyer'; -interface BreakdownEmbedWrapperProps { +type BreakdownEmbedWrapperProps = FlexProps & { children: ReactNode; -} +}; export function BreakdownEmbedWrapper({ children, + ...props }: BreakdownEmbedWrapperProps) { const { useEmbedState } = useEmbedStateCurry(); return ( - + {children} );