From 8c76a6748990e6571d70bed46afefa433c4bd762 Mon Sep 17 00:00:00 2001 From: Joe <98909677+moonclavedev@users.noreply.github.com> Date: Sun, 30 Mar 2025 22:16:26 -0700 Subject: [PATCH 1/2] [ux] Experiment network selection as global state --- astro.config.mjs | 4 +- src/components/NetworkProvider.astro | 31 +++++++++++++ src/components/NetworkSelect.astro | 66 ++++++++++++++++++++++++++++ src/config/networks.ts | 3 ++ src/globals.css | 1 + src/middlewares/network-redirect.ts | 42 ++++++++++++++++++ src/starlight-overrides/Head.astro | 2 + src/starlight-overrides/Header.astro | 2 + src/styles/network-select.css | 24 ++++++++++ src/vercel-middleware.ts | 2 + 10 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 src/components/NetworkProvider.astro create mode 100644 src/components/NetworkSelect.astro create mode 100644 src/config/networks.ts create mode 100644 src/middlewares/network-redirect.ts create mode 100644 src/styles/network-select.css diff --git a/astro.config.mjs b/astro.config.mjs index ace34cb6..a4d1669c 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -13,6 +13,7 @@ import sitemap from "@astrojs/sitemap"; import partytown from "@astrojs/partytown"; import node from "@astrojs/node"; import react from "@astrojs/react"; +// Removed astro-iconify import import Icons from "unplugin-icons/vite"; import starlightLlmsTxt from "starlight-llms-txt"; import { sidebar } from "./astro.sidebar.ts"; @@ -95,7 +96,7 @@ export default defineConfig({ }, components: { Head: "./src/starlight-overrides/Head.astro", - // Header: "./src/starlight-overrides/Header.astro", + Header: "./src/starlight-overrides/Header.astro", LanguageSelect: "./src/starlight-overrides/LanguageSelect.astro", MobileMenuToggle: "./src/starlight-overrides/MobileMenuToggle.astro", PageFrame: "./src/starlight-overrides/PageFrame.astro", @@ -161,6 +162,7 @@ export default defineConfig({ experimentalReactChildren: true, include: ["**/GraphQLEditor.tsx"], }), + // Removed astro-iconify integration ], adapter: process.env.VERCEL ? vercel({ diff --git a/src/components/NetworkProvider.astro b/src/components/NetworkProvider.astro new file mode 100644 index 00000000..c1cd47bb --- /dev/null +++ b/src/components/NetworkProvider.astro @@ -0,0 +1,31 @@ +--- +import { DEFAULT_NETWORK } from "../config/networks"; +--- + + diff --git a/src/components/NetworkSelect.astro b/src/components/NetworkSelect.astro new file mode 100644 index 00000000..6d137fdc --- /dev/null +++ b/src/components/NetworkSelect.astro @@ -0,0 +1,66 @@ +--- +import Select from "@astrojs/starlight/components/Select.astro"; +import { MOVE_REFERENCE_BRANCHES } from "../content.config"; +import { DEFAULT_NETWORK } from "../config/networks"; + +const networks = MOVE_REFERENCE_BRANCHES.map(network => ({ + label: network.label, + value: network.name, + selected: network.name === DEFAULT_NETWORK +})); +--- + + +