From d8b2b0af14621fb5b5def5a07ba8a105dc1e43c4 Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Thu, 29 Jan 2026 00:47:14 +0100 Subject: [PATCH] frontend: improve routing, admin UX, and API base handling --- frontend/astro.config.mjs | 8 ++++ frontend/src/components/AdminNav.astro | 4 +- .../components/voting/DelegationGraph.astro | 44 +++++++++-------- frontend/src/layouts/Layout.astro | 12 ++++- frontend/src/layouts/PublicLayout.astro | 6 +-- frontend/src/lib/api.ts | 14 +++++- frontend/src/pages/about.astro | 6 +-- frontend/src/pages/admin/approvals.astro | 46 ++++++++++++++++-- frontend/src/pages/admin/invitations.astro | 35 +++++++++++++- frontend/src/pages/admin/plugins.astro | 47 +++++++++++++++---- frontend/src/pages/admin/roles.astro | 44 +++++++++++++---- frontend/src/pages/admin/settings.astro | 34 +++++++------- frontend/src/pages/admin/voting.astro | 40 +++++++++++++++- frontend/src/pages/communities.astro | 5 +- .../src/pages/communities/[slug]/index.astro | 20 +++++++- .../communities/[slug]/proposals/new.astro | 25 ---------- .../pages/communities/[slug]/settings.astro | 5 +- .../communities/[slug]/voting-config.astro | 33 +++++++++++-- frontend/src/pages/delegations.astro | 33 +++++++++++-- frontend/src/pages/docs.astro | 2 +- frontend/src/pages/features.astro | 6 +-- frontend/src/pages/index.astro | 38 ++++++++++++++- frontend/src/pages/manifesto.astro | 4 +- frontend/src/pages/proposals/[id].astro | 13 +++-- frontend/src/pages/settings.astro | 12 ++++- frontend/src/pages/setup.astro | 14 ++++-- 26 files changed, 424 insertions(+), 126 deletions(-) diff --git a/frontend/astro.config.mjs b/frontend/astro.config.mjs index 57519a3..77bff2d 100644 --- a/frontend/astro.config.mjs +++ b/frontend/astro.config.mjs @@ -5,4 +5,12 @@ import node from '@astrojs/node'; // https://astro.build/config export default defineConfig({ adapter: node({ mode: 'standalone' }), + vite: { + server: { + proxy: { + '/api': 'http://127.0.0.1:3000', + '/health': 'http://127.0.0.1:3000', + }, + }, + }, }); diff --git a/frontend/src/components/AdminNav.astro b/frontend/src/components/AdminNav.astro index 9634294..8520954 100644 --- a/frontend/src/components/AdminNav.astro +++ b/frontend/src/components/AdminNav.astro @@ -1,14 +1,12 @@ --- interface Props { - currentPage; + currentPage: string; } const { currentPage } = Astro.props; const navItems = [ { href: '/admin/settings', label: 'Instance Settings', icon: '⚙️' }, - { href: '/admin/users', label: 'Users', icon: '👥' }, - { href: '/admin/communities', label: 'Communities', icon: '🏘️' }, { href: '/admin/approvals', label: 'Approvals', icon: '✅' }, { href: '/admin/invitations', label: 'Invitations', icon: '📨' }, { href: '/admin/roles', label: 'Roles & Permissions', icon: '🔐' }, diff --git a/frontend/src/components/voting/DelegationGraph.astro b/frontend/src/components/voting/DelegationGraph.astro index 1482ad5..ebdc55c 100644 --- a/frontend/src/components/voting/DelegationGraph.astro +++ b/frontend/src/components/voting/DelegationGraph.astro @@ -3,10 +3,11 @@ * DelegationGraph - Visual representation of delegation chains * Shows who delegates to whom with interactive exploration */ +import { API_BASE as apiBase } from '../../lib/api'; interface Props { - userId?; - communityId?; - compact?; + userId?: string; + communityId?: string; + compact?: boolean; } const { userId, communityId, compact = false } = Astro.props; @@ -54,35 +55,36 @@ const { userId, communityId, compact = false } = Astro.props; - diff --git a/frontend/src/pages/admin/voting.astro b/frontend/src/pages/admin/voting.astro index 00bb055..887cf86 100644 --- a/frontend/src/pages/admin/voting.astro +++ b/frontend/src/pages/admin/voting.astro @@ -574,6 +574,10 @@ import { API_BASE } from '../../lib/api';