From 23221497d5e9415b052cc8b6ca14fc5bf3f2d833 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Fri, 27 Mar 2026 13:11:31 -0700 Subject: [PATCH] Switch to absolute imports --- frontend/bun.lock | 7 +++ frontend/package.json | 1 + frontend/src/App.tsx | 26 ++++----- frontend/src/components/AppShell.tsx | 7 ++- frontend/src/components/Navbar.tsx | 3 +- frontend/src/components/PricingTable.tsx | 2 +- frontend/src/components/RelayDetailCard.tsx | 10 ++-- frontend/src/components/RelayForm.tsx | 4 +- frontend/src/components/ResourceState.tsx | 2 +- frontend/src/index.tsx | 4 +- frontend/src/lib/api.ts | 56 +++++++++---------- frontend/src/lib/hooks.ts | 19 +------ frontend/src/lib/state.ts | 2 +- frontend/src/pages/Account.tsx | 8 +-- frontend/src/pages/Home.tsx | 17 +++--- frontend/src/pages/admin/AdminRelayDetail.tsx | 12 ++-- frontend/src/pages/admin/AdminRelayEdit.tsx | 14 ++--- frontend/src/pages/admin/AdminRelayList.tsx | 8 +-- .../src/pages/admin/AdminTenantDetail.tsx | 10 ++-- frontend/src/pages/admin/AdminTenantList.tsx | 9 +-- frontend/src/pages/relays/RelayDetail.tsx | 14 ++--- frontend/src/pages/relays/RelayEdit.tsx | 14 ++--- frontend/src/pages/relays/RelayList.tsx | 8 +-- frontend/src/pages/relays/RelayNew.tsx | 4 +- frontend/src/views/Login.tsx | 2 +- frontend/tsconfig.app.json | 4 ++ frontend/vite.config.ts | 6 ++ 27 files changed, 140 insertions(+), 133 deletions(-) diff --git a/frontend/bun.lock b/frontend/bun.lock index af2f34e..765efe7 100644 --- a/frontend/bun.lock +++ b/frontend/bun.lock @@ -10,6 +10,7 @@ "@tailwindcss/vite": "^4.2.1", "@tanstack/solid-query": "^5.90.23", "@types/qrcode": "^1.5.6", + "@welshman/lib": "^0.8.9", "applesauce-accounts": "^5.1.0", "applesauce-common": "^5.1.0", "applesauce-core": "^5.1.0", @@ -263,12 +264,16 @@ "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + "@types/events": ["@types/events@3.0.3", "", {}, "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g=="], + "@types/node": ["@types/node@24.10.13", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg=="], "@types/offscreencanvas": ["@types/offscreencanvas@2019.7.3", "", {}, "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A=="], "@types/qrcode": ["@types/qrcode@1.5.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw=="], + "@welshman/lib": ["@welshman/lib@0.8.9", "", { "dependencies": { "@scure/base": "^1.1.6", "@types/events": "^3.0.3", "events": "^3.3.0" } }, "sha512-Gk9MXaJNuLL9EguP2RnoaGaQy6x0BrneZfj9gL5t6ZNIF+1g+maJssKDbCRjdDPeuNQbRhh7AlSGSQUJuhkq6Q=="], + "@yr/monotone-cubic-spline": ["@yr/monotone-cubic-spline@1.0.3", "", {}, "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA=="], "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], @@ -341,6 +346,8 @@ "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], diff --git a/frontend/package.json b/frontend/package.json index cf1b044..34cdf3f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,6 +14,7 @@ "@tailwindcss/vite": "^4.2.1", "@tanstack/solid-query": "^5.90.23", "@types/qrcode": "^1.5.6", + "@welshman/lib": "^0.8.9", "applesauce-accounts": "^5.1.0", "applesauce-common": "^5.1.0", "applesauce-core": "^5.1.0", diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 80ea6c4..503f6d1 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,19 +1,19 @@ import { createEffect, Show } from "solid-js" import { Router, Route, useLocation, useNavigate } from "@solidjs/router" import type { Component } from "solid-js" -import AppShell from "./components/AppShell" -import Home from "./pages/Home" -import RelayList from "./pages/relays/RelayList" -import RelayNew from "./pages/relays/RelayNew" -import RelayDetail from "./pages/relays/RelayDetail" -import RelayEdit from "./pages/relays/RelayEdit" -import Account from "./pages/Account" -import AdminTenantList from "./pages/admin/AdminTenantList" -import AdminTenantDetail from "./pages/admin/AdminTenantDetail" -import AdminRelayList from "./pages/admin/AdminRelayList" -import AdminRelayDetail from "./pages/admin/AdminRelayDetail" -import AdminRelayEdit from "./pages/admin/AdminRelayEdit" -import { identity } from "./lib/hooks" +import AppShell from "@/components/AppShell" +import Home from "@/pages/Home" +import RelayList from "@/pages/relays/RelayList" +import RelayNew from "@/pages/relays/RelayNew" +import RelayDetail from "@/pages/relays/RelayDetail" +import RelayEdit from "@/pages/relays/RelayEdit" +import Account from "@/pages/Account" +import AdminTenantList from "@/pages/admin/AdminTenantList" +import AdminTenantDetail from "@/pages/admin/AdminTenantDetail" +import AdminRelayList from "@/pages/admin/AdminRelayList" +import AdminRelayDetail from "@/pages/admin/AdminRelayDetail" +import AdminRelayEdit from "@/pages/admin/AdminRelayEdit" +import { identity } from "@/lib/state" function Layout(props: { children?: any }) { const location = useLocation() diff --git a/frontend/src/components/AppShell.tsx b/frontend/src/components/AppShell.tsx index 4f12bb9..e607031 100644 --- a/frontend/src/components/AppShell.tsx +++ b/frontend/src/components/AppShell.tsx @@ -1,9 +1,10 @@ import { A, useLocation } from "@solidjs/router" import { createEffect, createMemo, createSignal, For, onCleanup, Show } from "solid-js" import Fuse from "fuse.js" -import { account, eventStore, identity, primeProfiles, useProfilePicture, useTenantRelays, type Relay } from "../lib/hooks" -import serverIcon from "../assets/server.svg" -import Modal from "./Modal" +import { primeProfiles, useProfilePicture, useTenantRelays, type Relay } from "@/lib/hooks" +import { account, eventStore, identity } from "@/lib/state" +import serverIcon from "@/assets/server.svg" +import Modal from "@/components/Modal" type Profile = { name?: string diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx index 01ac36d..7466802 100644 --- a/frontend/src/components/Navbar.tsx +++ b/frontend/src/components/Navbar.tsx @@ -1,6 +1,7 @@ import { Show } from "solid-js" import { A } from "@solidjs/router" -import { PLATFORM_NAME, useProfilePicture, account } from "../lib/hooks" +import { useProfilePicture } from "@/lib/hooks" +import { PLATFORM_NAME, account } from "@/lib/state" export default function Navbar() { const picture = useProfilePicture(() => account()?.pubkey) diff --git a/frontend/src/components/PricingTable.tsx b/frontend/src/components/PricingTable.tsx index 9e81716..76bd348 100644 --- a/frontend/src/components/PricingTable.tsx +++ b/frontend/src/components/PricingTable.tsx @@ -1,6 +1,6 @@ import { A } from "@solidjs/router" import { For } from "solid-js" -import { RELAY_PLANS, type RelayPlanId } from "../lib/relayPlans" +import { RELAY_PLANS, type RelayPlanId } from "@/lib/relayPlans" function CheckIcon() { return ( diff --git a/frontend/src/components/RelayDetailCard.tsx b/frontend/src/components/RelayDetailCard.tsx index 30ea4c7..1d7fab6 100644 --- a/frontend/src/components/RelayDetailCard.tsx +++ b/frontend/src/components/RelayDetailCard.tsx @@ -1,10 +1,10 @@ import { A } from "@solidjs/router" import { Show, createEffect, createSignal, onCleanup } from "solid-js" -import type { Relay } from "../lib/api" -import menuDotsIcon from "../assets/menu-dots-2.svg" -import Modal from "./Modal" -import PricingTable from "./PricingTable" -import { RELAY_PLAN_IDS, type RelayPlanId } from "../lib/relayPlans" +import type { Relay } from "@/lib/api" +import menuDotsIcon from "@/assets/menu-dots-2.svg" +import Modal from "@/components/Modal" +import PricingTable from "@/components/PricingTable" +import { RELAY_PLAN_IDS, type RelayPlanId } from "@/lib/relayPlans" function Field(props: { label: string; children: any }) { return ( diff --git a/frontend/src/components/RelayForm.tsx b/frontend/src/components/RelayForm.tsx index 06fa11b..11c1dcf 100644 --- a/frontend/src/components/RelayForm.tsx +++ b/frontend/src/components/RelayForm.tsx @@ -1,6 +1,6 @@ import { createEffect, createSignal } from "solid-js" -import type { Relay } from "../lib/hooks" -import { slugify } from "../lib/slugify" +import type { Relay } from "@/lib/hooks" +import { slugify } from "@/lib/slugify" export type RelayFormValues = { info_name: string diff --git a/frontend/src/components/ResourceState.tsx b/frontend/src/components/ResourceState.tsx index 968d8ad..a40b5da 100644 --- a/frontend/src/components/ResourceState.tsx +++ b/frontend/src/components/ResourceState.tsx @@ -1,5 +1,5 @@ import { Show } from "solid-js" -import LoadingState from "./LoadingState" +import LoadingState from "@/components/LoadingState" type ResourceStateProps = { loading: boolean diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx index d99664d..1ed2d30 100644 --- a/frontend/src/index.tsx +++ b/frontend/src/index.tsx @@ -1,8 +1,8 @@ /* @refresh reload */ import { render } from "solid-js/web" import "./index.css" -import App from "./App" -import { PLATFORM_NAME } from "./lib/hooks" +import App from "@/App" +import { PLATFORM_NAME } from "@/lib/state" const root = document.getElementById("root")! diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 0d9acbd..0f41f3d 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1,4 +1,4 @@ -import { account } from "./hooks" +import { account } from "@/lib/state" const API_URL = import.meta.env.VITE_API_URL @@ -51,33 +51,6 @@ export type Relay = { push_enabled: number } -export type Tenant = { - pubkey: string - nwc_url: string - created_at: number - billing_anchor: number -} - -export type Invoice = { - id: string - tenant: string - status: string - created_at: number - attempted_at: number - error: string - closed_at: number - sent_at: number - paid_at: number - bolt11: string - period_start: number - period_end: number -} - -export type Identity = { - pubkey: string - is_admin: boolean -} - export type CreateRelayInput = { tenant?: string subdomain: string @@ -109,6 +82,33 @@ export type UpdateRelayInput = { push_enabled?: number } +export type Tenant = { + pubkey: string + nwc_url: string + created_at: number + billing_anchor: number +} + +export type Invoice = { + id: string + tenant: string + status: string + created_at: number + attempted_at: number + error: string + closed_at: number + sent_at: number + paid_at: number + bolt11: string + period_start: number + period_end: number +} + +export type Identity = { + pubkey: string + is_admin: boolean +} + export async function makeAuth(): Promise { const current = account() if (!current) return undefined diff --git a/frontend/src/lib/hooks.ts b/frontend/src/lib/hooks.ts index e9aae78..eb4b432 100644 --- a/frontend/src/lib/hooks.ts +++ b/frontend/src/lib/hooks.ts @@ -19,23 +19,8 @@ import { type Relay, type Tenant, type UpdateRelayInput, -} from "./api" -import { account, eventStore, pool } from "./state" - -export { - PLATFORM_NAME, - accountManager, - account, - setAccount, - identity, - refetchIdentity, - setIdentity, - eventStore, - pool, - type EventSigner, - type SignedEvent, - type UnsignedEvent, -} from "./state" +} from "@/lib/api" +import { account, eventStore, pool } from "@/lib/state" export function useProfilePicture(pubkey: () => string | undefined) { const [picture, setPicture] = createSignal() diff --git a/frontend/src/lib/state.ts b/frontend/src/lib/state.ts index 7f99917..218b0e2 100644 --- a/frontend/src/lib/state.ts +++ b/frontend/src/lib/state.ts @@ -6,7 +6,7 @@ import { EventStore } from "applesauce-core" import { createEventLoaderForStore } from "applesauce-loaders/loaders" import { RelayPool } from "applesauce-relay" import { NostrConnectSigner } from "applesauce-signers" -import { getIdentity } from "./api" +import { getIdentity } from "@/lib/api" export type UnsignedEvent = { kind: number diff --git a/frontend/src/pages/Account.tsx b/frontend/src/pages/Account.tsx index e4fa3ed..652c08a 100644 --- a/frontend/src/pages/Account.tsx +++ b/frontend/src/pages/Account.tsx @@ -1,8 +1,8 @@ import { createEffect, createMemo, createSignal, For, Show } from "solid-js" -import PageContainer from "../components/PageContainer" -import LoadingState from "../components/LoadingState" -import useMinLoading from "../components/useMinLoading" -import { updateActiveTenantBilling, useTenant, useTenantInvoices } from "../lib/hooks" +import PageContainer from "@/components/PageContainer" +import LoadingState from "@/components/LoadingState" +import useMinLoading from "@/components/useMinLoading" +import { updateActiveTenantBilling, useTenant, useTenantInvoices } from "@/lib/hooks" export default function Account() { const [tenant, { refetch: refetchTenant }] = useTenant() diff --git a/frontend/src/pages/Home.tsx b/frontend/src/pages/Home.tsx index 1e69483..b7da713 100644 --- a/frontend/src/pages/Home.tsx +++ b/frontend/src/pages/Home.tsx @@ -1,13 +1,14 @@ import { A, useNavigate } from "@solidjs/router" import { createSignal } from "solid-js" -import CheckIcon from "../components/CheckIcon" -import ExternalLinkIcon from "../components/ExternalLinkIcon" -import PricingTable from "../components/PricingTable" -import RelayForm, { type RelayFormValues } from "../components/RelayForm" -import Modal from "../components/Modal" -import Login from "../views/Login" -import { account, createRelayForActiveTenant } from "../lib/hooks" -import { slugify } from "../lib/slugify" +import CheckIcon from "@/components/CheckIcon" +import ExternalLinkIcon from "@/components/ExternalLinkIcon" +import PricingTable from "@/components/PricingTable" +import RelayForm, { type RelayFormValues } from "@/components/RelayForm" +import Modal from "@/components/Modal" +import Login from "@/views/Login" +import { createRelayForActiveTenant } from "@/lib/hooks" +import { account } from "@/lib/state" +import { slugify } from "@/lib/slugify" export default function Home() { const navigate = useNavigate() diff --git a/frontend/src/pages/admin/AdminRelayDetail.tsx b/frontend/src/pages/admin/AdminRelayDetail.tsx index ed38459..23c0665 100644 --- a/frontend/src/pages/admin/AdminRelayDetail.tsx +++ b/frontend/src/pages/admin/AdminRelayDetail.tsx @@ -1,11 +1,11 @@ import { useParams } from "@solidjs/router" import { createSignal, Show } from "solid-js" -import BackLink from "../../components/BackLink" -import PageContainer from "../../components/PageContainer" -import RelayDetailCard from "../../components/RelayDetailCard" -import ResourceState from "../../components/ResourceState" -import useMinLoading from "../../components/useMinLoading" -import { deactivateRelayById, updateRelayById, useRelay, type Relay } from "../../lib/hooks" +import BackLink from "@/components/BackLink" +import PageContainer from "@/components/PageContainer" +import RelayDetailCard from "@/components/RelayDetailCard" +import ResourceState from "@/components/ResourceState" +import useMinLoading from "@/components/useMinLoading" +import { deactivateRelayById, updateRelayById, useRelay, type Relay } from "@/lib/hooks" export default function AdminRelayDetail() { const params = useParams() diff --git a/frontend/src/pages/admin/AdminRelayEdit.tsx b/frontend/src/pages/admin/AdminRelayEdit.tsx index 01ca183..518a280 100644 --- a/frontend/src/pages/admin/AdminRelayEdit.tsx +++ b/frontend/src/pages/admin/AdminRelayEdit.tsx @@ -1,12 +1,12 @@ import { useNavigate, useParams } from "@solidjs/router" import { Show, createSignal } from "solid-js" -import RelayForm, { type RelayFormValues } from "../../components/RelayForm" -import { slugify } from "../../lib/slugify" -import BackLink from "../../components/BackLink" -import PageContainer from "../../components/PageContainer" -import ResourceState from "../../components/ResourceState" -import useMinLoading from "../../components/useMinLoading" -import { updateRelayById, useRelay } from "../../lib/hooks" +import RelayForm, { type RelayFormValues } from "@/components/RelayForm" +import { slugify } from "@/lib/slugify" +import BackLink from "@/components/BackLink" +import PageContainer from "@/components/PageContainer" +import ResourceState from "@/components/ResourceState" +import useMinLoading from "@/components/useMinLoading" +import { updateRelayById, useRelay } from "@/lib/hooks" export default function AdminRelayEdit() { const navigate = useNavigate() diff --git a/frontend/src/pages/admin/AdminRelayList.tsx b/frontend/src/pages/admin/AdminRelayList.tsx index 1b9ed83..979eb01 100644 --- a/frontend/src/pages/admin/AdminRelayList.tsx +++ b/frontend/src/pages/admin/AdminRelayList.tsx @@ -1,10 +1,10 @@ import { A } from "@solidjs/router" import Fuse from "fuse.js" import { createMemo, createSignal, For, Show } from "solid-js" -import PageContainer from "../../components/PageContainer" -import ResourceState from "../../components/ResourceState" -import useMinLoading from "../../components/useMinLoading" -import { useAdminRelays } from "../../lib/hooks" +import PageContainer from "@/components/PageContainer" +import ResourceState from "@/components/ResourceState" +import useMinLoading from "@/components/useMinLoading" +import { useAdminRelays } from "@/lib/hooks" export default function AdminRelayList() { const [query, setQuery] = createSignal("") diff --git a/frontend/src/pages/admin/AdminTenantDetail.tsx b/frontend/src/pages/admin/AdminTenantDetail.tsx index 8439887..4a62d3a 100644 --- a/frontend/src/pages/admin/AdminTenantDetail.tsx +++ b/frontend/src/pages/admin/AdminTenantDetail.tsx @@ -1,10 +1,10 @@ import { useParams, A } from "@solidjs/router" import { For, Show } from "solid-js" -import BackLink from "../../components/BackLink" -import PageContainer from "../../components/PageContainer" -import ResourceState from "../../components/ResourceState" -import useMinLoading from "../../components/useMinLoading" -import { useAdminTenant, useAdminTenantRelays } from "../../lib/hooks" +import BackLink from "@/components/BackLink" +import PageContainer from "@/components/PageContainer" +import ResourceState from "@/components/ResourceState" +import useMinLoading from "@/components/useMinLoading" +import { useAdminTenant, useAdminTenantRelays } from "@/lib/hooks" export default function AdminTenantDetail() { const params = useParams() diff --git a/frontend/src/pages/admin/AdminTenantList.tsx b/frontend/src/pages/admin/AdminTenantList.tsx index ba77c76..274e21b 100644 --- a/frontend/src/pages/admin/AdminTenantList.tsx +++ b/frontend/src/pages/admin/AdminTenantList.tsx @@ -2,10 +2,11 @@ import { A } from "@solidjs/router" import Fuse from "fuse.js" import { createEffect, createMemo, createSignal, For, onCleanup, Show } from "solid-js" import { getProfilePicture } from "applesauce-core/helpers/profile" -import PageContainer from "../../components/PageContainer" -import ResourceState from "../../components/ResourceState" -import useMinLoading from "../../components/useMinLoading" -import { eventStore, primeProfiles, useAdminTenants } from "../../lib/hooks" +import PageContainer from "@/components/PageContainer" +import ResourceState from "@/components/ResourceState" +import useMinLoading from "@/components/useMinLoading" +import { primeProfiles, useAdminTenants } from "@/lib/hooks" +import { eventStore } from "@/lib/state" function shortenPubkey(pubkey: string) { if (pubkey.length <= 16) return pubkey diff --git a/frontend/src/pages/relays/RelayDetail.tsx b/frontend/src/pages/relays/RelayDetail.tsx index f700ed4..5f72d19 100644 --- a/frontend/src/pages/relays/RelayDetail.tsx +++ b/frontend/src/pages/relays/RelayDetail.tsx @@ -1,12 +1,12 @@ import { useParams } from "@solidjs/router" import { createMemo, createResource, createSignal, Show } from "solid-js" -import type { RelayPlanId } from "../../lib/relayPlans" -import BackLink from "../../components/BackLink" -import PageContainer from "../../components/PageContainer" -import RelayDetailCard from "../../components/RelayDetailCard" -import ResourceState from "../../components/ResourceState" -import useMinLoading from "../../components/useMinLoading" -import { deactivateRelayById, getRelayMembers, updateRelayById, updateRelayPlanById, useRelay, type Relay } from "../../lib/hooks" +import type { RelayPlanId } from "@/lib/relayPlans" +import BackLink from "@/components/BackLink" +import PageContainer from "@/components/PageContainer" +import RelayDetailCard from "@/components/RelayDetailCard" +import ResourceState from "@/components/ResourceState" +import useMinLoading from "@/components/useMinLoading" +import { deactivateRelayById, getRelayMembers, updateRelayById, updateRelayPlanById, useRelay, type Relay } from "@/lib/hooks" export default function RelayDetail() { const params = useParams() diff --git a/frontend/src/pages/relays/RelayEdit.tsx b/frontend/src/pages/relays/RelayEdit.tsx index c537f65..88688dc 100644 --- a/frontend/src/pages/relays/RelayEdit.tsx +++ b/frontend/src/pages/relays/RelayEdit.tsx @@ -1,12 +1,12 @@ import { useNavigate, useParams } from "@solidjs/router" import { Show, createSignal } from "solid-js" -import RelayForm, { type RelayFormValues } from "../../components/RelayForm" -import { slugify } from "../../lib/slugify" -import BackLink from "../../components/BackLink" -import PageContainer from "../../components/PageContainer" -import ResourceState from "../../components/ResourceState" -import useMinLoading from "../../components/useMinLoading" -import { updateRelayById, useRelay } from "../../lib/hooks" +import RelayForm, { type RelayFormValues } from "@/components/RelayForm" +import { slugify } from "@/lib/slugify" +import BackLink from "@/components/BackLink" +import PageContainer from "@/components/PageContainer" +import ResourceState from "@/components/ResourceState" +import useMinLoading from "@/components/useMinLoading" +import { updateRelayById, useRelay } from "@/lib/hooks" export default function RelayEdit() { const navigate = useNavigate() diff --git a/frontend/src/pages/relays/RelayList.tsx b/frontend/src/pages/relays/RelayList.tsx index 3ece2f4..e993e51 100644 --- a/frontend/src/pages/relays/RelayList.tsx +++ b/frontend/src/pages/relays/RelayList.tsx @@ -1,10 +1,10 @@ import { A } from "@solidjs/router" import Fuse from "fuse.js" import { createMemo, createSignal, For, Show } from "solid-js" -import PageContainer from "../../components/PageContainer" -import ResourceState from "../../components/ResourceState" -import useMinLoading from "../../components/useMinLoading" -import { useTenantRelays } from "../../lib/hooks" +import PageContainer from "@/components/PageContainer" +import ResourceState from "@/components/ResourceState" +import useMinLoading from "@/components/useMinLoading" +import { useTenantRelays } from "@/lib/hooks" export default function RelayList() { const [relays] = useTenantRelays() diff --git a/frontend/src/pages/relays/RelayNew.tsx b/frontend/src/pages/relays/RelayNew.tsx index 6fe06b5..e29a72e 100644 --- a/frontend/src/pages/relays/RelayNew.tsx +++ b/frontend/src/pages/relays/RelayNew.tsx @@ -1,7 +1,7 @@ import { Show, createSignal } from "solid-js" import { useNavigate } from "@solidjs/router" -import { slugify } from "../../lib/slugify" -import { createRelayForActiveTenant } from "../../lib/hooks" +import { slugify } from "@/lib/slugify" +import { createRelayForActiveTenant } from "@/lib/hooks" const PLANS = [ { id: "free", label: "Free", price: 0, members: "Up to 10", blossom: false, livekit: false }, diff --git a/frontend/src/views/Login.tsx b/frontend/src/views/Login.tsx index b0de972..9972765 100644 --- a/frontend/src/views/Login.tsx +++ b/frontend/src/views/Login.tsx @@ -4,7 +4,7 @@ import { ExtensionAccount, NostrConnectAccount, PasswordAccount, PrivateKeyAccou import { PasswordSigner } from "applesauce-signers" import QrScanner from "qr-scanner" import QRCode from "qrcode" -import { accountManager, identity, PLATFORM_NAME } from "../lib/hooks" +import { accountManager, identity, PLATFORM_NAME } from "@/lib/state" const NIP46_RELAYS = ['wss://bucket.coracle.social', 'wss://ephemeral.snowflare.cc'] diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json index c0b480e..3c0e6d4 100644 --- a/frontend/tsconfig.app.json +++ b/frontend/tsconfig.app.json @@ -16,6 +16,10 @@ "noEmit": true, "jsx": "preserve", "jsxImportSource": "solid-js", + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + }, /* Linting */ "strict": true, diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index a894405..5781af2 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -1,7 +1,13 @@ import { defineConfig } from 'vite' import solid from 'vite-plugin-solid' import tailwindcss from '@tailwindcss/vite' +import { fileURLToPath, URL } from 'node:url' export default defineConfig({ plugins: [tailwindcss(), solid()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, })