From 127ffc787ef891cb3b8f371694211a7b29130811 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com>
Date: Tue, 2 Jul 2024 20:07:16 -0500
Subject: [PATCH] feat: sticky tank cards
---
.../tank-performance/components/Table.tsx | 21 +++++++++++++++++++
src/app/tools/tank-performance/page.tsx | 17 ++-------------
src/components/StickyTableRoot.tsx | 17 +++++++++++++++
src/components/TankRowHeaderCell.tsx | 9 +++++++-
4 files changed, 48 insertions(+), 16 deletions(-)
create mode 100644 src/app/tools/tank-performance/components/Table.tsx
create mode 100644 src/components/StickyTableRoot.tsx
diff --git a/src/app/tools/tank-performance/components/Table.tsx b/src/app/tools/tank-performance/components/Table.tsx
new file mode 100644
index 000000000..30bde3187
--- /dev/null
+++ b/src/app/tools/tank-performance/components/Table.tsx
@@ -0,0 +1,21 @@
+'use client';
+
+import { Flex } from '@radix-ui/themes';
+import { Suspense } from 'react';
+import { StickyTableRoot } from '../../../../components/StickyTableRoot';
+import { BodyLoader } from './BodyLoader';
+import { Header } from './Header';
+import { Tanks } from './Tanks';
+
+export function TankTable() {
+ return (
+
+
+
+ }>
+
+
+
+
+ );
+}
diff --git a/src/app/tools/tank-performance/page.tsx b/src/app/tools/tank-performance/page.tsx
index 1a12405fe..859dfe7b8 100644
--- a/src/app/tools/tank-performance/page.tsx
+++ b/src/app/tools/tank-performance/page.tsx
@@ -1,27 +1,14 @@
-import { Flex, Table } from '@radix-ui/themes';
-import { Suspense } from 'react';
import PageWrapper from '../../../components/PageWrapper';
import { FilterControl } from '../tankopedia/components/FilterControl';
-import { BodyLoader } from './components/BodyLoader';
-import { Header } from './components/Header';
import { Info } from './components/Info';
-import { Tanks } from './components/Tanks';
+import { TankTable } from './components/Table';
export default function Page() {
return (
-
-
-
-
-
- }>
-
-
-
-
+
);
}
diff --git a/src/components/StickyTableRoot.tsx b/src/components/StickyTableRoot.tsx
new file mode 100644
index 000000000..f7615fc2e
--- /dev/null
+++ b/src/components/StickyTableRoot.tsx
@@ -0,0 +1,17 @@
+'use client';
+
+import { Table } from '@radix-ui/themes';
+import { RootProps } from '@radix-ui/themes/dist/cjs/components/table';
+import { useEffect, useRef } from 'react';
+
+export function StickyTableRoot(props: RootProps) {
+ const table = useRef(null);
+
+ useEffect(() => {
+ table.current
+ ?.querySelector('table')
+ ?.style.setProperty('overflow', 'auto');
+ }, []);
+
+ return ;
+}
diff --git a/src/components/TankRowHeaderCell.tsx b/src/components/TankRowHeaderCell.tsx
index 7b8fbe7e5..ecc0ea732 100644
--- a/src/components/TankRowHeaderCell.tsx
+++ b/src/components/TankRowHeaderCell.tsx
@@ -13,7 +13,14 @@ export function TankRowHeaderCell({ tank }: TankRowHeaderCellProps) {
const Icon = classIcons[tank.class];
return (
-
+
![{tank.name}]()