From 292df5f5d9cca1f148c4b18453f1f55513a5e2b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sat, 14 Sep 2024 13:24:24 -0500 Subject: [PATCH] feat: migrated home page --- .vscode/settings.json | 1 + bun.lockb | Bin 416328 -> 425620 bytes packages/core/src/blitzkit/index.ts | 96 ++++++------- packages/core/src/index.ts | 18 +-- .../core/src/protobuf/lookupProtobufType.ts | 4 +- packages/core/src/types/proto.d.ts | 4 + packages/website-legacy/package.json | 2 +- .../src/app/components/ToolCard.tsx | 128 ----------------- packages/website-legacy/src/app/page.tsx | 136 +++++++++--------- .../website-legacy/src/app/tools/layout.tsx | 2 +- .../src/components/Navbar/index.tsx | 2 +- packages/website-legacy/tsconfig.json | 2 +- packages/website/astro.config.mjs | 13 +- packages/website/package.json | 16 ++- packages/website/public/favicon.png | Bin 0 -> 692 bytes packages/website/public/favicon.svg | 9 -- .../website/src/components/ToolCard.astro | 136 ++++++++++++++++++ .../src/constants/tools.ts} | 2 +- packages/website/src/layouts/RootLayout.astro | 57 ++++++++ packages/website/src/pages/index.astro | 111 ++++++++++++-- packages/website/tsconfig.json | 6 +- 21 files changed, 457 insertions(+), 288 deletions(-) create mode 100644 packages/core/src/types/proto.d.ts delete mode 100644 packages/website-legacy/src/app/components/ToolCard.tsx create mode 100644 packages/website/public/favicon.png delete mode 100644 packages/website/public/favicon.svg create mode 100644 packages/website/src/components/ToolCard.astro rename packages/{website-legacy/src/constants/tools.tsx => website/src/constants/tools.ts} (98%) create mode 100644 packages/website/src/layouts/RootLayout.astro diff --git a/.vscode/settings.json b/.vscode/settings.json index 1c67db08c..26fe90b8d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,6 +11,7 @@ "apcr", "applypatches", "artefacts", + "astrojs", "atgm", "Avearges", "AYUV", diff --git a/bun.lockb b/bun.lockb index 463da21e8e9167fa71b46c7d127e843f0580fea0..8f65d7598478725a8392ce106211dd26b472ca33 100644 GIT binary patch delta 45030 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 L;q?4fUB&+Z!tCqz delta 39544 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 diff --git a/packages/core/src/blitzkit/index.ts b/packages/core/src/blitzkit/index.ts index 4aca0ecfd..6efb3af1c 100644 --- a/packages/core/src/blitzkit/index.ts +++ b/packages/core/src/blitzkit/index.ts @@ -1,49 +1,49 @@ export * from './assertSecret'; -export * from './asset'; -export * from './availableProvisions'; -export * from './averageDefinitions'; -export * from './camouflageDefinitions'; -export * from './checkConsumableProvisionInclusivity'; -export * from './coefficient'; -export * from './consumableDefinitions'; -export * from './context'; -export * from './createDefaultSkills'; -export * from './degressiveStat'; -export * from './discoveredIdDefinitions'; -export * from './emblemURL'; -export * from './equipmentDefinitions'; -export * from './eventManager'; -export * from './fetchCdonLz4'; -export * from './flagUserActivity'; -export * from './gameDefinitions'; -export * from './getArchivedLatestSeasonNumber'; -export * from './getArchivedRatingInfo'; -export * from './getArchivedRatingLeaderboard'; -export * from './getArchivedRatingMidnightLeaderboard'; -export * from './getTimeDaysAgo'; -export * from './isExplosive'; -export * from './linkBlitzAndDiscord'; -export * from './mapDefinitions'; -export * from './modelDefinitions'; -export * from './normalizeBoundingBox'; -export * from './parseBkni'; -export * from './patientFetch'; -export * from './patientFetchJSON'; -export * from './progressiveStat'; -export * from './provisionDefinitions'; -export * from './resolveDpm'; -export * from './resolvePenetrationCoefficient'; -export * from './reviews'; -export * from './skillDefinitions'; -export * from './sum'; -export * from './superCompress'; -export * from './superDecompress'; -export * from './tankDefinitions'; -export * from './tankIcon'; -export * from './tankNames'; -export * from './unionBoundingBox'; -export * from './uniqueGuns'; -export * from './unwrapBlitzkitResponse'; -export * from './votes'; -export * from './withCORSProxy'; -export * from './youtubers'; +// export * from './asset'; +// export * from './availableProvisions'; +// export * from './averageDefinitions'; +// export * from './camouflageDefinitions'; +// export * from './checkConsumableProvisionInclusivity'; +// export * from './coefficient'; +// export * from './consumableDefinitions'; +// export * from './context'; +// export * from './createDefaultSkills'; +// export * from './degressiveStat'; +// export * from './discoveredIdDefinitions'; +// export * from './emblemURL'; +// export * from './equipmentDefinitions'; +// export * from './eventManager'; +// export * from './fetchCdonLz4'; +// export * from './flagUserActivity'; +// export * from './gameDefinitions'; +// export * from './getArchivedLatestSeasonNumber'; +// export * from './getArchivedRatingInfo'; +// export * from './getArchivedRatingLeaderboard'; +// export * from './getArchivedRatingMidnightLeaderboard'; +// export * from './getTimeDaysAgo'; +// export * from './isExplosive'; +// export * from './linkBlitzAndDiscord'; +// export * from './mapDefinitions'; +// export * from './modelDefinitions'; +// export * from './normalizeBoundingBox'; +// export * from './parseBkni'; +// export * from './patientFetch'; +// export * from './patientFetchJSON'; +// export * from './progressiveStat'; +// export * from './provisionDefinitions'; +// export * from './resolveDpm'; +// export * from './resolvePenetrationCoefficient'; +// export * from './reviews'; +// export * from './skillDefinitions'; +// export * from './sum'; +// export * from './superCompress'; +// export * from './superDecompress'; +// export * from './tankDefinitions'; +// export * from './tankIcon'; +// export * from './tankNames'; +// export * from './unionBoundingBox'; +// export * from './uniqueGuns'; +// export * from './unwrapBlitzkitResponse'; +// export * from './votes'; +// export * from './withCORSProxy'; +// export * from './youtubers'; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 2c230d7c4..2f009f28c 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,11 +1,11 @@ -export * from './blitz'; +// export * from './blitz'; export * from './blitzkit'; -export * from './blitzstars'; -export * from './databases'; +// export * from './blitzstars'; +// export * from './databases'; export * from './imgur'; -export * from './math'; -export * from './patreon'; -export * from './protobuf'; -export * from './statistics'; -export * from './streams'; -export * from './types'; +// export * from './math'; +// export * from './patreon'; +// export * from './protobuf'; +// export * from './statistics'; +// export * from './streams'; +// export * from './types'; diff --git a/packages/core/src/protobuf/lookupProtobufType.ts b/packages/core/src/protobuf/lookupProtobufType.ts index 79264852a..9c76f2676 100644 --- a/packages/core/src/protobuf/lookupProtobufType.ts +++ b/packages/core/src/protobuf/lookupProtobufType.ts @@ -1,4 +1,4 @@ -import { parse } from 'protobufjs'; +import protobuf from 'protobufjs'; import average_definitions from '../../protos/average_definitions.proto'; import reviews from '../../protos/reviews.proto'; @@ -7,5 +7,5 @@ export type ProtoSource = keyof typeof protos; const protos = { reviews, average_definitions }; export function lookupProtobufType(source: ProtoSource, type: string) { - return parse(protos[source]).root.lookupType(type); + return protobuf.parse(protos[source]).root.lookupType(type); } diff --git a/packages/core/src/types/proto.d.ts b/packages/core/src/types/proto.d.ts new file mode 100644 index 000000000..aa9769548 --- /dev/null +++ b/packages/core/src/types/proto.d.ts @@ -0,0 +1,4 @@ +declare module '*.proto' { + const value: string; + export default value; +} diff --git a/packages/website-legacy/package.json b/packages/website-legacy/package.json index c6afb377f..b3a7306d8 100644 --- a/packages/website-legacy/package.json +++ b/packages/website-legacy/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@radix-ui/themes": "^3.1.3", + "@radix-ui/react-icons": "^1.3.0", "@blitzkit/core": "workspace:*", "fuzzysort": "^2.0.4", "@nivo/bar": "^0.87.0", "three": "0.159.0", "lodash": "^4.17.21", "next": "^14.2.7", - "@radix-ui/react-icons": "^1.3.0", "three-stdlib": "^2.32.2", "@react-three/drei": "^9.111.5", "@react-three/fiber": "^8.17.6", diff --git a/packages/website-legacy/src/app/components/ToolCard.tsx b/packages/website-legacy/src/app/components/ToolCard.tsx deleted file mode 100644 index 644c48cc3..000000000 --- a/packages/website-legacy/src/app/components/ToolCard.tsx +++ /dev/null @@ -1,128 +0,0 @@ -import { assertSecret, imgur, ImgurSize } from '@blitzkit/core'; -import { CaretRightIcon } from '@radix-ui/react-icons'; -import { - Box, - Button, - Code, - Flex, - FlexProps, - Heading, - Text, -} from '@radix-ui/themes'; -import { Link } from '../../components/Link'; -import { Tool } from '../../constants/tools'; - -type ToolCardProps = FlexProps & { - tool: Tool; -}; - -export function ToolCard({ tool, style, ...props }: ToolCardProps) { - const size = tool.significant - ? ImgurSize.HugeThumbnail - : ImgurSize.LargeThumbnail; - const unavailableOnBranch = tool.branches?.every( - (branch) => branch !== assertSecret(process.env.NEXT_PUBLIC_ASSET_BRANCH), - ); - - return ( - - - - - - - - {tool.title} - - - {unavailableOnBranch ? ( - <> - Unavailable on{' '} - - {assertSecret(process.env.NEXT_PUBLIC_ASSET_BRANCH)} - - - ) : ( - tool.description - )} - - - - {!unavailableOnBranch && ( - - )} - - - - ); -} diff --git a/packages/website-legacy/src/app/page.tsx b/packages/website-legacy/src/app/page.tsx index f537b2340..326237588 100644 --- a/packages/website-legacy/src/app/page.tsx +++ b/packages/website-legacy/src/app/page.tsx @@ -10,97 +10,97 @@ import { sessionTool, tankopediaTool, tankPerformanceTool, -} from '../constants/tools'; +} from '../../../website/src/constants/tools'; import { useAdExempt } from '../hooks/useAdExempt'; import { Hero } from './components/Hero'; import { Plugs } from './components/Plugs'; -import { ToolCard } from './components/ToolCard'; +import { ToolCard } from '../../../website/src/components/ToolCard'; export default function Page() { const exempt = useAdExempt(); return ( <> - + - + - - - + + + - - {/* */} - - + + {/* */} + + + + + {!exempt && ( + + + )} - {!exempt && ( - - - - )} + + + {/* */} + + - - - {/* */} - + {!exempt && ( + + + )} - {!exempt && ( - - - - )} + + + + - - - - + {!exempt && } - {!exempt && } + Other cool projects - Other cool projects - - - - - + + + + -
+
); } diff --git a/packages/website-legacy/src/app/tools/layout.tsx b/packages/website-legacy/src/app/tools/layout.tsx index 3f96570f9..bbbb7e8c7 100644 --- a/packages/website-legacy/src/app/tools/layout.tsx +++ b/packages/website-legacy/src/app/tools/layout.tsx @@ -4,7 +4,7 @@ import { imgur, ImgurSize } from '@blitzkit/core'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { ReactNode } from 'react'; -import { TOOLS } from '../../constants/tools'; +import { TOOLS } from '../../../../website/src/constants/tools'; export default function Layout({ children }: { children: ReactNode }) { const pathname = usePathname(); diff --git a/packages/website-legacy/src/components/Navbar/index.tsx b/packages/website-legacy/src/components/Navbar/index.tsx index 003058c28..2ebbafce1 100644 --- a/packages/website-legacy/src/components/Navbar/index.tsx +++ b/packages/website-legacy/src/components/Navbar/index.tsx @@ -30,7 +30,7 @@ import { import { usePathname } from 'next/navigation'; import { Fragment, Suspense, useState } from 'react'; import { BRANCH_NAMES } from '../../app/components/Hero/constants'; -import { homeTool, TOOLS } from '../../constants/tools'; +import { homeTool, TOOLS } from '../../../../website/src/constants/tools'; import * as App from '../../stores/app'; import { Link } from '../Link'; import { PatreonIcon } from '../PatreonIcon'; diff --git a/packages/website-legacy/tsconfig.json b/packages/website-legacy/tsconfig.json index b85067d35..fb7e7fe17 100644 --- a/packages/website-legacy/tsconfig.json +++ b/packages/website-legacy/tsconfig.json @@ -12,5 +12,5 @@ ".next/types/**/*.ts", "../../dist/website/types/**/*.ts", "dist/website/types/**/*.ts" - ] +, "../website/src/components/ToolCard.tsx", "../website/src/constants/tools.tsx" ] } diff --git a/packages/website/astro.config.mjs b/packages/website/astro.config.mjs index e762ba5cf..a894c6f5e 100644 --- a/packages/website/astro.config.mjs +++ b/packages/website/astro.config.mjs @@ -1,5 +1,14 @@ // @ts-check + +import react from '@astrojs/react'; +import { vanillaExtractPlugin } from '@vanilla-extract/vite-plugin'; +import purgecss from 'astro-purgecss'; import { defineConfig } from 'astro/config'; -// https://astro.build/config -export default defineConfig({}); +export default defineConfig({ + integrations: [react(), purgecss()], + vite: { plugins: [vanillaExtractPlugin()] }, + + devToolbar: { enabled: false }, + outDir: '../../dist/website', +}); diff --git a/packages/website/package.json b/packages/website/package.json index a6a4b2244..f53c81947 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -1,7 +1,6 @@ { "name": "@blitzkit/website", "type": "module", - "version": "0.0.1", "scripts": { "dev": "astro dev", "start": "astro dev", @@ -10,8 +9,19 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.6", "@astrojs/check": "^0.9.3", - "typescript": "^5.6.2" + "@astrojs/react": "^3.6.2", + "@blitzkit/core": "workspace:*", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^3.1.3", + "@vanilla-extract/css": "^1.15.5", + "astro": "^4.15.6", + "astro-purgecss": "^4.6.0", + "purgecss": "^6.0.0", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@vanilla-extract/vite-plugin": "^4.0.15" } } diff --git a/packages/website/public/favicon.png b/packages/website/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7b326ae1e07a383eb837d1e3cc2679136727cc25 GIT binary patch literal 692 zcmV;l0!#ggP);)pcsy?smV^H|xR3qCa%tz&YPJzweyiIS2ShasDdE!xwZ# z>rk@BjQK|&@bDmaYi*YySe%jQQ>qWLY;taTvs|_bSSPaM5JD$m!vTWy0TKoyYB%Sv z8yoW-8y#QU#Xhq03D^ali2@iE0Fg)0-rroSk!`)r_zhE-ncD{><6L#YC(huZ%^U zz7#`c`8EWDd$4ow0n9#rhV*9(5ANK?qx<(zuyT@`%^|EV#_KzXcs&?%p|Z?_;h_Pz zy<0Idp1@FS6ub2xI**^k)q%5enDlk-B!EIjY8p<(r#@wwr4T{z)tn1scW05K5~xkB zDDimFdbk6lH?LtOot9O_H}DF`GEFALiS;#dEu_gv6poTEl-5WS*cS?+wxJP|!*N)a zC2MV^wH%$HTkS_bl~CL=`5 literal 0 HcmV?d00001 diff --git a/packages/website/public/favicon.svg b/packages/website/public/favicon.svg deleted file mode 100644 index f157bd1c5..000000000 --- a/packages/website/public/favicon.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/packages/website/src/components/ToolCard.astro b/packages/website/src/components/ToolCard.astro new file mode 100644 index 000000000..d82413ddb --- /dev/null +++ b/packages/website/src/components/ToolCard.astro @@ -0,0 +1,136 @@ +--- +import { assertSecret, imgur, ImgurSize } from '@blitzkit/core'; +import { CaretRightIcon } from '@radix-ui/react-icons'; +import { Box, Button, Code, Flex, Heading, Link, Text } from '@radix-ui/themes'; +import type { Tool } from '../constants/tools'; + +interface Props { + tool: Tool; +} + +const { tool } = Astro.props; +const disabled = tool.branches?.every( + (branch) => branch !== assertSecret(process.env.PUBLIC_ASSET_BRANCH), +); +--- + + + + + + + + + + + {tool.title} + + + { + disabled ? ( + <> + Unavailable on{' '} + {assertSecret(process.env.PUBLIC_ASSET_BRANCH)} + + ) : ( + tool.description + ) + } + + + + { + !disabled && ( + + ) + } + + + diff --git a/packages/website-legacy/src/constants/tools.tsx b/packages/website/src/constants/tools.ts similarity index 98% rename from packages/website-legacy/src/constants/tools.tsx rename to packages/website/src/constants/tools.ts index 150274549..45edd3f9e 100644 --- a/packages/website-legacy/src/constants/tools.tsx +++ b/packages/website/src/constants/tools.ts @@ -1,5 +1,5 @@ import { Button } from '@radix-ui/themes'; -import { ComponentProps } from 'react'; +import type { ComponentProps } from 'react'; export interface Tool { id: string; diff --git a/packages/website/src/layouts/RootLayout.astro b/packages/website/src/layouts/RootLayout.astro new file mode 100644 index 000000000..44b75c3c6 --- /dev/null +++ b/packages/website/src/layouts/RootLayout.astro @@ -0,0 +1,57 @@ +--- +import { Flex, Theme } from '@radix-ui/themes'; +import '@radix-ui/themes/styles.css'; +const { pathname } = Astro.url; + +const isRoot = pathname === '/'; +--- + + + + + + + { + isRoot && ( + <> + BlitzKit + + + ) + } + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/website/src/pages/index.astro b/packages/website/src/pages/index.astro index 7ec71a517..e9d511483 100644 --- a/packages/website/src/pages/index.astro +++ b/packages/website/src/pages/index.astro @@ -1,16 +1,101 @@ --- +import { Flex, Heading } from '@radix-ui/themes'; +import ToolCard from '../components/ToolCard.astro'; +import { + compareTool, + discordTool, + moreTool, + ratingTool, + sessionTool, + tankopediaTool, + tankPerformanceTool, +} from '../constants/tools'; +import RootLayout from '../layouts/RootLayout.astro'; +--- ---- + + - - - - - - - Astro - - -

Astro

- - + + + + + + + + {/* */} + + + + + + + + + {/* */} + + + + + + + + + + + + + Other cool projects + + + + + + + + +
+
diff --git a/packages/website/tsconfig.json b/packages/website/tsconfig.json index 77da9dd00..032ad645d 100644 --- a/packages/website/tsconfig.json +++ b/packages/website/tsconfig.json @@ -1,3 +1,7 @@ { - "extends": "astro/tsconfigs/strict" + "extends": "astro/tsconfigs/strict", + "compilerOptions": { + "jsx": "react-jsx", + "jsxImportSource": "react" + } } \ No newline at end of file