diff --git a/packages/website/src/components/AvatarCard.tsx b/packages/website/src/components/AvatarCard.tsx index c8bb4e187..cc5d277ce 100644 --- a/packages/website/src/components/AvatarCard.tsx +++ b/packages/website/src/components/AvatarCard.tsx @@ -5,7 +5,6 @@ import { useRef } from "react"; import { useIntersection } from "../hooks/useIntersection"; import { useLocale } from "../hooks/useLocale"; import type { MaybeSkeletonComponentProps } from "../types/maybeSkeletonComponentProps"; -import { Flex } from "./Flex"; import { Skeleton } from "./Skeleton"; import { Text } from "./Text"; @@ -16,7 +15,9 @@ type GalleryCardProps = MaybeSkeletonComponentProps<{ export function AvatarCard(props: GalleryCardProps) { const src = alias( "api", - `/gallery/avatars/${!props.skeleton && `${props.avatar.id}${props.avatar.extension}`}`, + `/gallery/avatars/${ + !props.skeleton && `${props.avatar.id}${props.avatar.extension}` + }` ); const card = useRef(null!); const { unwrap } = useLocale(); @@ -26,12 +27,15 @@ export function AvatarCard(props: GalleryCardProps) { }); const content = ( - {props.skeleton && ( <> @@ -58,7 +62,7 @@ export function AvatarCard(props: GalleryCardProps) { )} - + ); if (props.skeleton) return content; @@ -71,7 +75,15 @@ export function AvatarCard(props: GalleryCardProps) { onOpenAutoFocus={(event) => event.preventDefault()} width="fit-content" > - +
@@ -83,17 +95,30 @@ export function AvatarCard(props: GalleryCardProps) { - +
- +
{unwrap(props.avatar.name!)} - +
- +
{unwrap(props.avatar.name!)} - +
); diff --git a/packages/website/src/components/AvatarsList/index.tsx b/packages/website/src/components/AvatarsList/index.tsx index fdb7057a9..932904c03 100644 --- a/packages/website/src/components/AvatarsList/index.tsx +++ b/packages/website/src/components/AvatarsList/index.tsx @@ -8,7 +8,6 @@ import { useLocale } from "../../hooks/useLocale"; import { Gallery } from "../../stores/gallery"; import type { MaybeSkeletonComponentProps } from "../../types/maybeSkeletonComponentProps"; import { AvatarCard } from "../AvatarCard"; -import { Flex } from "../Flex"; import { InlineSkeleton } from "../InlineSkeleton"; import { Text } from "../Text"; @@ -36,7 +35,7 @@ export function AvatarsList({ skeleton }: MaybeSkeletonComponentProps) { .go(search, gallery.avatars, { keys: [ ...locales.supported.map( - (supported) => `name.locales.${supported.locale}`, + (supported) => `name.locales.${supported.locale}` ), "id", ], @@ -57,7 +56,14 @@ export function AvatarsList({ skeleton }: MaybeSkeletonComponentProps) { )} - +
{!skeleton && filtered .slice(0, loadedCards) @@ -73,9 +79,9 @@ export function AvatarsList({ skeleton }: MaybeSkeletonComponentProps) { skeleton onIntersection={() => setLoadedCards((state) => state + 2)} /> - ), + ) )} - +
); } diff --git a/packages/website/src/components/CompareTankCard/index.tsx b/packages/website/src/components/CompareTankCard/index.tsx index 5b9a61b86..b59d030fc 100644 --- a/packages/website/src/components/CompareTankCard/index.tsx +++ b/packages/website/src/components/CompareTankCard/index.tsx @@ -7,7 +7,6 @@ import { CompareEphemeral } from "../../stores/compareEphemeral"; import { InsertionMarker } from "../Compare/IntersectionMarker"; import { insertionMarkers } from "../Compare/IntersectionMarker/constants"; import { TankControl } from "../Compare/TankControl"; -import { Flex } from "../Flex"; import { StickyColumnHeaderCell } from "../StickyColumnHeaderCell"; import { Text } from "../Text"; import styles from "./index.module.css"; @@ -58,7 +57,7 @@ export function CompareTankCard({ index, tank }: TankCardProps) { }; }); const closest = distances.reduce((a, b) => - a.distance < b.distance ? a : b, + a.distance < b.distance ? a : b ); dropIndex = closest.index; @@ -106,16 +105,25 @@ export function CompareTankCard({ index, tank }: TankCardProps) { return ( - +
- {unwrap(tank.name!)} - - +
+
); diff --git a/packages/website/src/components/Flex/index.module.css b/packages/website/src/components/Flex/index.module.css deleted file mode 100644 index 367d38bce..000000000 --- a/packages/website/src/components/Flex/index.module.css +++ /dev/null @@ -1,64 +0,0 @@ -.flex { - display: flex; - - &[data-column="true"] { - flex-direction: column; - } - &[data-wrap="true"] { - flex-wrap: wrap; - } - - &[data-justify="start"] { - justify-content: flex-start; - } - &[data-justify="center"] { - justify-content: center; - } - &[data-justify="end"] { - justify-content: flex-end; - } - &[data-justify="between"] { - justify-content: space-between; - } - - &[data-align="start"] { - align-items: flex-start; - } - &[data-align="center"] { - align-items: center; - } - &[data-align="end"] { - align-items: flex-end; - } - - &[data-gap="0"] { - gap: var(--space-0); - } - &[data-gap="1"] { - gap: var(--space-1); - } - &[data-gap="2"] { - gap: var(--space-2); - } - &[data-gap="3"] { - gap: var(--space-3); - } - &[data-gap="4"] { - gap: var(--space-4); - } - &[data-gap="5"] { - gap: var(--space-5); - } - &[data-gap="6"] { - gap: var(--space-6); - } - &[data-gap="7"] { - gap: var(--space-7); - } - &[data-gap="8"] { - gap: var(--space-8); - } - &[data-gap="9"] { - gap: var(--space-9); - } -} diff --git a/packages/website/src/components/Flex/index.tsx b/packages/website/src/components/Flex/index.tsx deleted file mode 100644 index d201933c7..000000000 --- a/packages/website/src/components/Flex/index.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import type { ComponentProps } from "react"; -import type { Space } from "../../types/space"; -import { classNames } from "../../ui/classNames"; -import styles from "./index.module.css"; - -interface Props extends ComponentProps<"div"> { - column?: boolean; - wrap?: boolean; - - align?: "start" | "center" | "end"; - justify?: "start" | "center" | "end" | "between"; - - gap?: Space; -} - -export function Flex({ - children, - column, - className, - gap, - justify, - align, - wrap, - ...props -}: Props) { - return ( -
- {children} -
- ); -} diff --git a/packages/website/src/components/RecentlyViewedTanks/index.tsx b/packages/website/src/components/RecentlyViewedTanks/index.tsx index 8aef642f9..28d05be48 100644 --- a/packages/website/src/components/RecentlyViewedTanks/index.tsx +++ b/packages/website/src/components/RecentlyViewedTanks/index.tsx @@ -5,7 +5,6 @@ import { useStrings } from "../../hooks/useStrings"; import { TankFilters } from "../../stores/tankFilters"; import { TankopediaPersistent } from "../../stores/tankopediaPersistent"; import { TankSort } from "../../stores/tankopediaSort"; -import { Flex } from "../Flex"; import { TankCard } from "../TankCard"; import { TankCardWrapper } from "../TankCardWrapper"; import { Text } from "../Text"; @@ -17,17 +16,17 @@ export function RecentlyViewedTanks() { const filters = TankFilters.use(); // non-reactive because it is a little weird that it updates instantly even before the page loads const recentlyViewed = TankopediaPersistent.state.recentlyViewed.filter( - (id) => id in tankDefinitions.tanks, + (id) => id in tankDefinitions.tanks ); const hasFilters = useMemo( () => Object.entries(filters).some(([key, value]) => { return !isEqual( value, - TankFilters.initial[key as keyof typeof TankFilters.initial], + TankFilters.initial[key as keyof typeof TankFilters.initial] ); }), - [filters], + [filters] ); const strings = useStrings(); @@ -38,7 +37,14 @@ export function RecentlyViewedTanks() { } return ( - +
{strings.website.common.tank_search.recent} @@ -48,6 +54,6 @@ export function RecentlyViewedTanks() { ))} - +
); } diff --git a/packages/website/src/components/TankCard/index.tsx b/packages/website/src/components/TankCard/index.tsx index 5aaaac71a..77e2599cb 100644 --- a/packages/website/src/components/TankCard/index.tsx +++ b/packages/website/src/components/TankCard/index.tsx @@ -8,7 +8,6 @@ import { useUnwrapper } from "../../hooks/useUnwrapper"; import { TankopediaPersistent } from "../../stores/tankopediaPersistent"; import type { MaybeSkeletonComponentProps } from "../../types/maybeSkeletonComponentProps"; import { ClassIcon } from "../ClassIcon"; -import { Flex } from "../Flex"; import { LinkI18nWrapper } from "../LinkI18nWrapper"; import { TankCardSkeleton } from "../TankCardSkeleton"; import { MAX_RECENTLY_VIEWED } from "../TankSearch/constants"; @@ -40,16 +39,19 @@ export const TankCard = (props: MaybeSkeletonComponentProps) => { props.tank.type === TankType.TANK_TYPE_COLLECTOR ? "blue" : props.tank.type === TankType.TANK_TYPE_PREMIUM - ? "amber" - : "gray"; + ? "amber" + : "gray"; const lowContrast = props.tank.type !== TankType.TANK_TYPE_RESEARCHABLE; const content = ( - { props.onTankSelect?.(props.tank); TankopediaPersistent.mutate((draft) => { @@ -59,13 +61,14 @@ export const TankCard = (props: MaybeSkeletonComponentProps) => { }); }} > - @@ -73,7 +76,7 @@ export const TankCard = (props: MaybeSkeletonComponentProps) => { alt={name} src={alias("api", `/tanks/${props.tank.id}/icons/big.webp`)} /> - + @@ -85,7 +88,7 @@ export const TankCard = (props: MaybeSkeletonComponentProps) => {
{props.discriminator}
)} -
+ ); if (provideLink) { diff --git a/packages/website/src/components/TankCardSkeleton/index.tsx b/packages/website/src/components/TankCardSkeleton/index.tsx index 1aa329156..9fb1892d3 100644 --- a/packages/website/src/components/TankCardSkeleton/index.tsx +++ b/packages/website/src/components/TankCardSkeleton/index.tsx @@ -1,4 +1,3 @@ -import { Flex } from "../Flex"; import { InlineSkeleton } from "../InlineSkeleton"; import { Skeleton } from "../Skeleton"; import styles from "./index.module.css"; @@ -9,9 +8,17 @@ type TankCardProps = { export const TankCardSkeleton = ({ compact }: TankCardProps) => { return ( - +
- +
); }; diff --git a/packages/website/src/components/TankSearchBar/index.tsx b/packages/website/src/components/TankSearchBar/index.tsx index 039fc2282..10b927549 100644 --- a/packages/website/src/components/TankSearchBar/index.tsx +++ b/packages/website/src/components/TankSearchBar/index.tsx @@ -9,7 +9,6 @@ import { import { useStrings } from "../../hooks/useStrings"; import { TankFilters } from "../../stores/tankFilters"; import type { MaybeSkeletonComponentProps } from "../../types/maybeSkeletonComponentProps"; -import { Flex } from "../Flex"; import { TankSearchSort } from "../TankSearchSort"; import { TextField } from "../TextField"; @@ -57,11 +56,11 @@ export function TankSearchBar({ window.location.href = `/tanks/${topResult.slug}`; } }, - [topResult], + [topResult] ); return ( - +
- +
); } diff --git a/packages/website/src/components/TankSearchNoResults/index.tsx b/packages/website/src/components/TankSearchNoResults/index.tsx index ad1873072..6ac3a7c6c 100644 --- a/packages/website/src/components/TankSearchNoResults/index.tsx +++ b/packages/website/src/components/TankSearchNoResults/index.tsx @@ -1,6 +1,5 @@ import { useLocale } from "../../hooks/useLocale"; import { TankFilters } from "../../stores/tankFilters"; -import { Flex } from "../Flex"; import { Link } from "../Link"; import { Text } from "../Text"; import styles from "./index.module.css"; @@ -13,7 +12,14 @@ export function TankSearchNoResults({ type = "filters" }: NoResultsProps) { const { strings } = useLocale(); return ( - +
{strings.website.common.tank_search.no_tanks_found.body}{" "} - +
); } diff --git a/packages/website/src/components/ToolBanner.astro b/packages/website/src/components/ToolBanner.astro index aa34bf307..d4a96b15f 100644 --- a/packages/website/src/components/ToolBanner.astro +++ b/packages/website/src/components/ToolBanner.astro @@ -4,7 +4,6 @@ import { api } from "../api/dynamic"; import type { Tool } from "../constants/tools"; import { Logo } from "../icons/Logo"; import { Back } from "./Back"; -import { Flex } from "./Flex"; import { Heading } from "./Heading"; import { IconButton } from "./IconButton"; @@ -112,7 +111,7 @@ const toolStrings = strings.tools[tool.id as keyof typeof strings.tools];
- +
@@ -120,7 +119,7 @@ const toolStrings = strings.tools[tool.id as keyof typeof strings.tools]; {toolStrings.name} - +