mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 20:19:49 +02:00
fix: remove tooltips in tank filters
This commit is contained in:
1 parent
2c0965f437
commit
f6cf4a87f9
1 file changed
+13
-89
@@ -6,10 +6,9 @@ import {
|
|||||||
TIER_ROMAN_NUMERALS,
|
TIER_ROMAN_NUMERALS,
|
||||||
type Tier,
|
type Tier,
|
||||||
} from '@blitzkit/core';
|
} from '@blitzkit/core';
|
||||||
import strings from '@blitzkit/core/lang/en-US.json';
|
|
||||||
import { useStore } from '@nanostores/react';
|
import { useStore } from '@nanostores/react';
|
||||||
import { ReloadIcon } from '@radix-ui/react-icons';
|
import { ReloadIcon } from '@radix-ui/react-icons';
|
||||||
import { Box, Flex, IconButton, Text, Tooltip } from '@radix-ui/themes';
|
import { Box, Flex, IconButton, Text } from '@radix-ui/themes';
|
||||||
import { times } from 'lodash-es';
|
import { times } from 'lodash-es';
|
||||||
import { $tankFilters, initialTankFilters } from '../../../stores/tankFilters';
|
import { $tankFilters, initialTankFilters } from '../../../stores/tankFilters';
|
||||||
import { classIcons } from '../../ClassIcon';
|
import { classIcons } from '../../ClassIcon';
|
||||||
@@ -40,7 +39,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
const selected = tankFilters.tiers?.includes(tier);
|
const selected = tankFilters.tiers?.includes(tier);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip key={tier} content={`Tier ${tier}`}>
|
|
||||||
<IconButton
|
<IconButton
|
||||||
key={tier}
|
key={tier}
|
||||||
variant={selected ? 'solid' : 'soft'}
|
variant={selected ? 'solid' : 'soft'}
|
||||||
@@ -54,16 +52,12 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
tankFilters.tiers.filter((t) => t !== tier),
|
tankFilters.tiers.filter((t) => t !== tier),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$tankFilters.setKey('tiers', [
|
$tankFilters.setKey('tiers', [...tankFilters.tiers, tier]);
|
||||||
...tankFilters.tiers,
|
|
||||||
tier,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Text size="2">{TIER_ROMAN_NUMERALS[tier]}</Text>
|
<Text size="2">{TIER_ROMAN_NUMERALS[tier]}</Text>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</Flex>
|
</Flex>
|
||||||
@@ -73,7 +67,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
const selected = tankFilters.tiers?.includes(tier);
|
const selected = tankFilters.tiers?.includes(tier);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip key={tier} content={`Tier ${tier}`}>
|
|
||||||
<IconButton
|
<IconButton
|
||||||
key={tier}
|
key={tier}
|
||||||
variant={selected ? 'solid' : 'soft'}
|
variant={selected ? 'solid' : 'soft'}
|
||||||
@@ -87,16 +80,12 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
tankFilters.tiers.filter((t) => t !== tier),
|
tankFilters.tiers.filter((t) => t !== tier),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$tankFilters.setKey('tiers', [
|
$tankFilters.setKey('tiers', [...tankFilters.tiers, tier]);
|
||||||
...tankFilters.tiers,
|
|
||||||
tier,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Text size="2">{TIER_ROMAN_NUMERALS[tier]}</Text>
|
<Text size="2">{TIER_ROMAN_NUMERALS[tier]}</Text>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</Flex>
|
</Flex>
|
||||||
@@ -114,30 +103,13 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
const selected = tankFilters.nations?.includes(nation);
|
const selected = tankFilters.nations?.includes(nation);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip
|
|
||||||
content={
|
|
||||||
strings.common.nations[
|
|
||||||
nation as keyof typeof strings.common.nations
|
|
||||||
]
|
|
||||||
}
|
|
||||||
key={nation}
|
|
||||||
>
|
|
||||||
<IconButton
|
<IconButton
|
||||||
|
key={nation}
|
||||||
variant={selected ? 'solid' : 'soft'}
|
variant={selected ? 'solid' : 'soft'}
|
||||||
color={selected ? undefined : 'gray'}
|
color={selected ? undefined : 'gray'}
|
||||||
highContrast
|
highContrast
|
||||||
radius="none"
|
radius="none"
|
||||||
onClick={() =>
|
onClick={() => {
|
||||||
// mutateTankFilters((draft) => {
|
|
||||||
// if (draft.nations?.includes(nation)) {
|
|
||||||
// draft.nations = draft.nations?.filter(
|
|
||||||
// (n) => n !== nation,
|
|
||||||
// );
|
|
||||||
// } else {
|
|
||||||
// draft.nations = [...(draft.nations ?? []), nation];
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
{
|
|
||||||
if (tankFilters.nations.includes(nation)) {
|
if (tankFilters.nations.includes(nation)) {
|
||||||
$tankFilters.setKey(
|
$tankFilters.setKey(
|
||||||
'nations',
|
'nations',
|
||||||
@@ -149,15 +121,13 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
nation,
|
nation,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}}
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
style={{ width: '1em', height: '1em' }}
|
style={{ width: '1em', height: '1em' }}
|
||||||
src={asset(`flags/circle/${nation}.webp`)}
|
src={asset(`flags/circle/${nation}.webp`)}
|
||||||
/>
|
/>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</Flex>
|
</Flex>
|
||||||
@@ -168,14 +138,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
const selected = tankFilters.nations?.includes(nation);
|
const selected = tankFilters.nations?.includes(nation);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip
|
|
||||||
content={
|
|
||||||
strings.common.nations[
|
|
||||||
nation as keyof typeof strings.common.nations
|
|
||||||
]
|
|
||||||
}
|
|
||||||
key={nation}
|
|
||||||
>
|
|
||||||
<IconButton
|
<IconButton
|
||||||
key={nation}
|
key={nation}
|
||||||
style={{ flex: 1 }}
|
style={{ flex: 1 }}
|
||||||
@@ -183,17 +145,7 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
color={selected ? undefined : 'gray'}
|
color={selected ? undefined : 'gray'}
|
||||||
highContrast
|
highContrast
|
||||||
radius="none"
|
radius="none"
|
||||||
onClick={() =>
|
onClick={() => {
|
||||||
// mutateTankFilters((draft) => {
|
|
||||||
// if (draft.nations?.includes(nation)) {
|
|
||||||
// draft.nations = draft.nations?.filter(
|
|
||||||
// (n) => n !== nation,
|
|
||||||
// );
|
|
||||||
// } else {
|
|
||||||
// draft.nations = [...(draft.nations ?? []), nation];
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
{
|
|
||||||
if (tankFilters.nations.includes(nation)) {
|
if (tankFilters.nations.includes(nation)) {
|
||||||
$tankFilters.setKey(
|
$tankFilters.setKey(
|
||||||
'nations',
|
'nations',
|
||||||
@@ -205,15 +157,13 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
nation,
|
nation,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}}
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
style={{ width: '1em', height: '1em' }}
|
style={{ width: '1em', height: '1em' }}
|
||||||
src={asset(`flags/circle/${nation}.webp`)}
|
src={asset(`flags/circle/${nation}.webp`)}
|
||||||
/>
|
/>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</Flex>
|
</Flex>
|
||||||
@@ -229,11 +179,8 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
const selected = tankFilters.classes?.includes(tankClass);
|
const selected = tankFilters.classes?.includes(tankClass);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip
|
|
||||||
content={strings.common.tank_class_medium[tankClass]}
|
|
||||||
key={tankClass}
|
|
||||||
>
|
|
||||||
<IconButton
|
<IconButton
|
||||||
|
key={tankClass}
|
||||||
variant={selected ? 'solid' : 'soft'}
|
variant={selected ? 'solid' : 'soft'}
|
||||||
radius="none"
|
radius="none"
|
||||||
color={selected ? undefined : 'gray'}
|
color={selected ? undefined : 'gray'}
|
||||||
@@ -254,7 +201,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
>
|
>
|
||||||
<Icon style={{ width: '1em', height: '1em' }} />
|
<Icon style={{ width: '1em', height: '1em' }} />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</Flex>
|
</Flex>
|
||||||
@@ -264,7 +210,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
style={{ borderRadius: 'var(--radius-full)' }}
|
style={{ borderRadius: 'var(--radius-full)' }}
|
||||||
direction={compact ? 'column' : { sm: 'row', initial: 'column' }}
|
direction={compact ? 'column' : { sm: 'row', initial: 'column' }}
|
||||||
>
|
>
|
||||||
<Tooltip content="Researchable">
|
|
||||||
<IconButton
|
<IconButton
|
||||||
variant={
|
variant={
|
||||||
tankFilters.types?.includes(TankType.RESEARCHABLE)
|
tankFilters.types?.includes(TankType.RESEARCHABLE)
|
||||||
@@ -294,8 +239,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
>
|
>
|
||||||
<ResearchedIcon style={{ width: '1em', height: '1em' }} />
|
<ResearchedIcon style={{ width: '1em', height: '1em' }} />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
<Tooltip content="Premium">
|
|
||||||
<IconButton
|
<IconButton
|
||||||
variant={
|
variant={
|
||||||
tankFilters.types?.includes(TankType.PREMIUM) ? 'solid' : 'soft'
|
tankFilters.types?.includes(TankType.PREMIUM) ? 'solid' : 'soft'
|
||||||
@@ -330,8 +273,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
<ResearchedIcon style={{ width: '1em', height: '1em' }} />
|
<ResearchedIcon style={{ width: '1em', height: '1em' }} />
|
||||||
</Text>
|
</Text>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
<Tooltip content="Collector">
|
|
||||||
<IconButton
|
<IconButton
|
||||||
variant={
|
variant={
|
||||||
tankFilters.types?.includes(TankType.COLLECTOR) ? 'solid' : 'soft'
|
tankFilters.types?.includes(TankType.COLLECTOR) ? 'solid' : 'soft'
|
||||||
@@ -366,7 +307,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
<ResearchedIcon style={{ width: '1em', height: '1em' }} />
|
<ResearchedIcon style={{ width: '1em', height: '1em' }} />
|
||||||
</Text>
|
</Text>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
<Flex
|
<Flex
|
||||||
@@ -374,7 +314,6 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
style={{ borderRadius: 'var(--radius-full)' }}
|
style={{ borderRadius: 'var(--radius-full)' }}
|
||||||
direction={compact ? 'column' : { sm: 'row', initial: 'column' }}
|
direction={compact ? 'column' : { sm: 'row', initial: 'column' }}
|
||||||
>
|
>
|
||||||
<Tooltip content="Include test tank">
|
|
||||||
<IconButton
|
<IconButton
|
||||||
variant={tankFilters.testing === 'include' ? 'solid' : 'soft'}
|
variant={tankFilters.testing === 'include' ? 'solid' : 'soft'}
|
||||||
radius="none"
|
radius="none"
|
||||||
@@ -388,47 +327,32 @@ export function FilterControl({ compact }: FilterControlProps) {
|
|||||||
style={{ width: '1em', height: '1em', color: 'currentColor' }}
|
style={{ width: '1em', height: '1em', color: 'currentColor' }}
|
||||||
/>
|
/>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
<Tooltip content="Exclude test tank">
|
|
||||||
<IconButton
|
<IconButton
|
||||||
variant={tankFilters.testing === 'exclude' ? 'solid' : 'soft'}
|
variant={tankFilters.testing === 'exclude' ? 'solid' : 'soft'}
|
||||||
radius="none"
|
radius="none"
|
||||||
color={tankFilters.testing === 'exclude' ? undefined : 'gray'}
|
color={tankFilters.testing === 'exclude' ? undefined : 'gray'}
|
||||||
highContrast
|
highContrast
|
||||||
onClick={() =>
|
onClick={() => {
|
||||||
// mutateTankFilters((draft) => {
|
|
||||||
// draft.testing = 'exclude';
|
|
||||||
// })
|
|
||||||
{
|
|
||||||
$tankFilters.setKey('testing', 'exclude');
|
$tankFilters.setKey('testing', 'exclude');
|
||||||
}
|
}}
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<ScienceOffIcon
|
<ScienceOffIcon
|
||||||
style={{ width: '1em', height: '1em', color: 'currentColor' }}
|
style={{ width: '1em', height: '1em', color: 'currentColor' }}
|
||||||
/>
|
/>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
<Tooltip content="Only test tank">
|
|
||||||
<IconButton
|
<IconButton
|
||||||
variant={tankFilters.testing === 'only' ? 'solid' : 'soft'}
|
variant={tankFilters.testing === 'only' ? 'solid' : 'soft'}
|
||||||
radius="none"
|
radius="none"
|
||||||
color={tankFilters.testing === 'only' ? undefined : 'gray'}
|
color={tankFilters.testing === 'only' ? undefined : 'gray'}
|
||||||
highContrast
|
highContrast
|
||||||
onClick={() =>
|
onClick={() => {
|
||||||
// mutateTankFilters((draft) => {
|
|
||||||
// draft.testing = 'only';
|
|
||||||
// })
|
|
||||||
{
|
|
||||||
$tankFilters.setKey('testing', 'only');
|
$tankFilters.setKey('testing', 'only');
|
||||||
}
|
}}
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<ScienceIcon
|
<ScienceIcon
|
||||||
style={{ width: '1em', height: '1em', color: 'currentColor' }}
|
style={{ width: '1em', height: '1em', color: 'currentColor' }}
|
||||||
/>
|
/>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Tooltip>
|
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
<Box>
|
<Box>
|
||||||
|
|||||||
Reference in new issue
Block a user