mirror of
https://github.com/hzrd149/nostrudel.git
synced 2025-03-17 21:31:43 +01:00
update dependencies
This commit is contained in:
parent
ceebb30517
commit
70ce289fa8
118
package.json
118
package.json
@ -16,56 +16,56 @@
|
||||
"build-icons": "node ./scripts/build-icons.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@cashu/cashu-ts": "^1.1.0",
|
||||
"@chakra-ui/anatomy": "^2.2.2",
|
||||
"@cashu/cashu-ts": "2.0.0-rc1",
|
||||
"@chakra-ui/anatomy": "^2.3.4",
|
||||
"@chakra-ui/breakpoint-utils": "^2.0.8",
|
||||
"@chakra-ui/icons": "^2.1.1",
|
||||
"@chakra-ui/icons": "^2.2.4",
|
||||
"@chakra-ui/media-query": "^3.3.0",
|
||||
"@chakra-ui/react": "^2.8.2",
|
||||
"@chakra-ui/react": "^2.10.3",
|
||||
"@chakra-ui/shared-utils": "^2.0.4",
|
||||
"@chakra-ui/styled-system": "^2.9.2",
|
||||
"@chakra-ui/theme-tools": "^2.1.2",
|
||||
"@codemirror/autocomplete": "^6.17.0",
|
||||
"@chakra-ui/styled-system": "^2.12.0",
|
||||
"@chakra-ui/theme-tools": "^2.2.6",
|
||||
"@codemirror/autocomplete": "^6.18.2",
|
||||
"@codemirror/lang-json": "^6.0.1",
|
||||
"@codemirror/language": "^6.10.2",
|
||||
"@codemirror/view": "^6.28.6",
|
||||
"@emotion/react": "^11.11.1",
|
||||
"@emotion/styled": "^11.11.0",
|
||||
"@codemirror/language": "^6.10.3",
|
||||
"@codemirror/view": "^6.34.2",
|
||||
"@emotion/react": "^11.13.3",
|
||||
"@emotion/styled": "^11.13.0",
|
||||
"@fedimint/core-web": "^0.0.7",
|
||||
"@getalby/bitcoin-connect": "^3.6.2",
|
||||
"@getalby/bitcoin-connect-react": "^3.6.2",
|
||||
"@noble/ciphers": "^1.0.0",
|
||||
"@noble/curves": "^1.3.0",
|
||||
"@noble/hashes": "^1.3.2",
|
||||
"@noble/secp256k1": "^1.7.0",
|
||||
"@scure/base": "^1.1.6",
|
||||
"@noble/curves": "^1.6.0",
|
||||
"@noble/hashes": "^1.5.0",
|
||||
"@noble/secp256k1": "^1.7.1",
|
||||
"@scure/base": "^1.1.9",
|
||||
"@snort/worker-relay": "^1.3.0",
|
||||
"@uiw/codemirror-theme-github": "^4.23.0",
|
||||
"@uiw/react-codemirror": "^4.23.0",
|
||||
"@uiw/codemirror-theme-github": "^4.23.6",
|
||||
"@uiw/react-codemirror": "^4.23.6",
|
||||
"@webscopeio/react-textarea-autocomplete": "^4.9.2",
|
||||
"applesauce-channel": "next",
|
||||
"applesauce-content": "next",
|
||||
"applesauce-core": "next",
|
||||
"applesauce-lists": "next",
|
||||
"applesauce-net": "next",
|
||||
"applesauce-react": "next",
|
||||
"applesauce-lists": "next",
|
||||
"applesauce-signer": "next",
|
||||
"bech32": "^2.0.0",
|
||||
"blossom-client-sdk": "^0.7.0",
|
||||
"blossom-drive-sdk": "^0.4.0",
|
||||
"blossom-drive-sdk": "^0.4.1",
|
||||
"blurhash": "^2.0.5",
|
||||
"chart.js": "^4.4.1",
|
||||
"cheerio": "^1.0.0-rc.12",
|
||||
"chroma-js": "^2.4.2",
|
||||
"chart.js": "^4.4.6",
|
||||
"cheerio": "^1.0.0",
|
||||
"chroma-js": "^2.6.0",
|
||||
"codemirror-json-schema": "^0.6.1",
|
||||
"dayjs": "^1.11.9",
|
||||
"debug": "^4.3.4",
|
||||
"dayjs": "^1.11.13",
|
||||
"debug": "^4.3.7",
|
||||
"easymde": "^2.18.0",
|
||||
"emoji-regex": "^10.3.0",
|
||||
"emojilib": "^3",
|
||||
"framer-motion": "^10.16.0",
|
||||
"emoji-regex": "^10.4.0",
|
||||
"emojilib": "^3.0.12",
|
||||
"framer-motion": "^10.18.0",
|
||||
"handlebars": "^4.7.8",
|
||||
"hls.js": "^1.4.14",
|
||||
"hls.js": "^1.5.17",
|
||||
"i18n-iso-countries": "^7.12.0",
|
||||
"idb": "^8.0.0",
|
||||
"identicon.js": "^2.3.3",
|
||||
@ -74,73 +74,73 @@
|
||||
"json-stringify-deterministic": "^1.0.12",
|
||||
"leaflet": "^1.9.4",
|
||||
"leaflet.locatecontrol": "^0.79.0",
|
||||
"light-bolt11-decoder": "^3.0.0",
|
||||
"light-bolt11-decoder": "^3.2.0",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"match-sorter": "^6.3.1",
|
||||
"nanoid": "^5.0.4",
|
||||
"match-sorter": "^8.0.0",
|
||||
"nanoid": "^5.0.8",
|
||||
"ngeohash": "^0.6.3",
|
||||
"nostr-idb": "^2.1.6",
|
||||
"nostr-tools": "^2.7.2",
|
||||
"nostr-idb": "^2.2.0",
|
||||
"nostr-tools": "^2.10.1",
|
||||
"nostr-wasm": "^0.1.0",
|
||||
"prettier": "^3.2.5",
|
||||
"react": "^18.2.0",
|
||||
"prettier": "^3.3.3",
|
||||
"react": "^18.3.1",
|
||||
"react-chartjs-2": "^5.2.0",
|
||||
"react-diff-viewer-continued": "^3.4.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-error-boundary": "^4.0.11",
|
||||
"react-force-graph-2d": "^1.25.4",
|
||||
"react-force-graph-3d": "^1.24.2",
|
||||
"react-hook-form": "^7.51.5",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-error-boundary": "^4.1.2",
|
||||
"react-force-graph-2d": "^1.25.7",
|
||||
"react-force-graph-3d": "^1.24.5",
|
||||
"react-hook-form": "^7.53.1",
|
||||
"react-markdown": "^9.0.1",
|
||||
"react-mosaic-component": "^6.1.0",
|
||||
"react-photo-album": "^2.3.0",
|
||||
"react-photo-album": "^2.4.1",
|
||||
"react-qr-barcode-scanner": "^2.0.0",
|
||||
"react-router-dom": "^6.21.1",
|
||||
"react-router-dom": "^6.27.0",
|
||||
"react-simplemde-editor": "^5.2.0",
|
||||
"react-singleton-hook": "^4.0.1",
|
||||
"react-use": "^17.4.0",
|
||||
"react-use": "^17.5.1",
|
||||
"react-virtualized-auto-sizer": "^1.0.24",
|
||||
"react-window": "^1.8.10",
|
||||
"remark-gfm": "^4.0.0",
|
||||
"remark-wiki-link": "^2.0.1",
|
||||
"rxjs": "^7.8.1",
|
||||
"three": "^0.160.0",
|
||||
"three-spritetext": "^1.8.2",
|
||||
"three-stdlib": "^2.29.11",
|
||||
"three": "^0.170.0",
|
||||
"three-spritetext": "^1.9.0",
|
||||
"three-stdlib": "^2.34.0",
|
||||
"tiny-lru": "^11.2.11",
|
||||
"unified": "^11.0.5",
|
||||
"webln": "^0.3.2",
|
||||
"workbox-core": "7.0.0",
|
||||
"workbox-precaching": "7.0.0",
|
||||
"workbox-routing": "7.0.0",
|
||||
"yet-another-react-lightbox": "^3.17.3",
|
||||
"yet-another-react-lightbox": "^3.21.6",
|
||||
"zen-observable": "^0.10.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@changesets/cli": "^2.27.1",
|
||||
"@types/chroma-js": "^2.4.3",
|
||||
"@changesets/cli": "^2.27.9",
|
||||
"@types/chroma-js": "^2.4.4",
|
||||
"@types/debug": "^4.1.12",
|
||||
"@types/dom-serial": "^1.0.6",
|
||||
"@types/identicon.js": "^2.3.4",
|
||||
"@types/identicon.js": "^2.3.5",
|
||||
"@types/json-schema": "^7.0.15",
|
||||
"@types/leaflet": "^1.9.8",
|
||||
"@types/leaflet.locatecontrol": "^0.74.4",
|
||||
"@types/leaflet": "^1.9.14",
|
||||
"@types/leaflet.locatecontrol": "^0.74.6",
|
||||
"@types/lodash.throttle": "^4.1.9",
|
||||
"@types/ngeohash": "^0.6.8",
|
||||
"@types/react": "^18.2.45",
|
||||
"@types/react-dom": "^18.2.18",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"@types/react-window": "^1.8.8",
|
||||
"@types/three": "^0.160.0",
|
||||
"@types/webscopeio__react-textarea-autocomplete": "^4.7.5",
|
||||
"@types/zen-observable": "^0.8.7",
|
||||
"@vitejs/plugin-react": "^4.2.1",
|
||||
"@vitejs/plugin-react": "^4.3.3",
|
||||
"camelcase": "^8.0.0",
|
||||
"eventemitter3": "^5.0.1",
|
||||
"typescript": "^5.5.3",
|
||||
"vite": "^5.2.10",
|
||||
"typescript": "^5.6.3",
|
||||
"vite": "^5.4.10",
|
||||
"vite-plugin-pwa": "^0.19.8",
|
||||
"workbox-build": "^7.0.0",
|
||||
"workbox-window": "^7.0.0"
|
||||
"workbox-build": "^7.3.0",
|
||||
"workbox-window": "^7.3.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"@types/react": "^18.2.22",
|
||||
|
4102
pnpm-lock.yaml
generated
4102
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -83,7 +83,6 @@ export default class ChunkedRequest {
|
||||
this.process.active = true;
|
||||
await new Promise<number>((res) => {
|
||||
const sub = this.relay.subscribe(filters, {
|
||||
// @ts-expect-error
|
||||
id: this.id + "-" + this.lastChunkIdx++,
|
||||
onevent: (event) => {
|
||||
this.handleEvent(event);
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { useAsync } from "react-use";
|
||||
import { Box, Button, ButtonGroup, Card, CardProps, Heading, IconButton, Link, Spinner, Text } from "@chakra-ui/react";
|
||||
import { Token, getEncodedToken, CashuMint, CashuWallet } from "@cashu/cashu-ts";
|
||||
import { Token, getEncodedToken, CheckStateEnum } from "@cashu/cashu-ts";
|
||||
|
||||
import { CopyIconButton } from "../copy-icon-button";
|
||||
import useUserProfile from "../../hooks/use-user-profile";
|
||||
@ -39,15 +39,12 @@ export default function InlineCachuCard({
|
||||
encoded = encoded || getEncodedToken(token);
|
||||
const { value: spendable, loading } = useAsync(async () => {
|
||||
if (!token) return;
|
||||
for (const entry of token.token) {
|
||||
const wallet = await getMintWallet(entry.mint);
|
||||
const spent = await wallet.checkProofsSpent(entry.proofs);
|
||||
if (spent.length !== entry.proofs.length) return true;
|
||||
}
|
||||
return false;
|
||||
const wallet = await getMintWallet(token.mint);
|
||||
const status = await wallet.checkProofsStates(token.proofs);
|
||||
return status.some((s) => s.state !== CheckStateEnum.UNSPENT);
|
||||
}, [token]);
|
||||
|
||||
const amount = token?.token[0].proofs.reduce((acc, v) => acc + v.amount, 0);
|
||||
const amount = token?.proofs.reduce((acc, v) => acc + v.amount, 0);
|
||||
|
||||
let UnitIcon = ECashIcon;
|
||||
let unitColor = "green.500";
|
||||
@ -104,7 +101,7 @@ export default function InlineCachuCard({
|
||||
<Heading size="md" textDecoration={spendable === false ? "line-through" : undefined}>
|
||||
{denomination} {spendable === false ? " (Spent)" : loading ? <Spinner size="xs" /> : undefined}
|
||||
</Heading>
|
||||
{token && <Text fontSize="xs">Mint: {new URL(token.token[0].mint).hostname}</Text>}
|
||||
{token && <Text fontSize="xs">Mint: {new URL(token.mint).hostname}</Text>}
|
||||
{token.unit && <Text fontSize="xs">Unit: {token.unit}</Text>}
|
||||
</Box>
|
||||
{token.memo && <Box>{token.memo}</Box>}
|
||||
|
@ -10,7 +10,6 @@ const Mention: ComponentMap["mention"] = ({ node }) => {
|
||||
case "nprofile":
|
||||
return <UserLink showAt pubkey={node.decoded.data.pubkey} color="blue.500" />;
|
||||
case "nevent":
|
||||
case "nrelay":
|
||||
case "naddr":
|
||||
case "note":
|
||||
return <EmbedEventPointer pointer={node.decoded} />;
|
||||
|
@ -126,8 +126,6 @@ export function EmbedEventPointer({ pointer, ...props }: { pointer: DecodeResult
|
||||
if (!event) return <LoadingNostrLink link={pointer} />;
|
||||
return <EmbedEvent event={event} {...props} />;
|
||||
}
|
||||
case "nrelay":
|
||||
return <RelayCard url={pointer.data} />;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { useCallback, useState } from "react";
|
||||
import { IconButton, IconButtonProps, useForceUpdate, useInterval, useToast } from "@chakra-ui/react";
|
||||
import { IconButton, IconButtonProps, useInterval, useToast } from "@chakra-ui/react";
|
||||
import { type AbstractRelay } from "nostr-tools/abstract-relay";
|
||||
import { useObservable } from "applesauce-react/hooks";
|
||||
|
||||
@ -7,6 +7,7 @@ import relayPoolService from "../../services/relay-pool";
|
||||
import { useSigningContext } from "../../providers/global/signing-provider";
|
||||
import PasscodeLock from "../icons/passcode-lock";
|
||||
import CheckCircleBroken from "../icons/check-circle-broken";
|
||||
import useForceUpdate from "../../hooks/use-force-update";
|
||||
|
||||
export function useRelayChallenge(relay: AbstractRelay) {
|
||||
return useObservable(relayPoolService.challenges.get(relay));
|
||||
|
@ -1,9 +1,10 @@
|
||||
import { ChangeEventHandler } from "react";
|
||||
import { Switch, useForceUpdate, useInterval, useToast } from "@chakra-ui/react";
|
||||
import { Switch, useInterval, useToast } from "@chakra-ui/react";
|
||||
import { type AbstractRelay } from "nostr-tools/abstract-relay";
|
||||
import { useObservable } from "applesauce-react/hooks";
|
||||
|
||||
import relayPoolService from "../../services/relay-pool";
|
||||
import useForceUpdate from "../../hooks/use-force-update";
|
||||
|
||||
export default function RelayConnectSwitch({ relay }: { relay: string | URL | AbstractRelay }) {
|
||||
const toast = useToast();
|
||||
|
@ -1,9 +1,10 @@
|
||||
import { Badge, useForceUpdate } from "@chakra-ui/react";
|
||||
import { Badge } from "@chakra-ui/react";
|
||||
import { useInterval } from "react-use";
|
||||
import { AbstractRelay } from "nostr-tools/abstract-relay";
|
||||
import { useObservable } from "applesauce-react/hooks";
|
||||
|
||||
import relayPoolService from "../../services/relay-pool";
|
||||
import useForceUpdate from "../../hooks/use-force-update";
|
||||
|
||||
const getStatusText = (relay: AbstractRelay, connecting = false) => {
|
||||
if (connecting) return "Connecting...";
|
||||
|
9
src/hooks/use-force-update.ts
Normal file
9
src/hooks/use-force-update.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { useCallback, useState } from "react";
|
||||
|
||||
export default function useForceUpdate() {
|
||||
const [count, setCount] = useState(0);
|
||||
const update = useCallback(() => {
|
||||
setCount((v) => v + 1);
|
||||
}, [setCount]);
|
||||
return update;
|
||||
}
|
@ -10,7 +10,6 @@ import {
|
||||
Select,
|
||||
SimpleGrid,
|
||||
Text,
|
||||
useForceUpdate,
|
||||
} from "@chakra-ui/react";
|
||||
import { Link as RouterLink } from "react-router-dom";
|
||||
import { nip19 } from "nostr-tools";
|
||||
@ -22,6 +21,7 @@ import UserAvatar from "../../../components/user/user-avatar";
|
||||
import UserName from "../../../components/user/user-name";
|
||||
import HoverLinkOverlay from "../../../components/hover-link-overlay";
|
||||
import VerticalPageLayout from "../../../components/vertical-page-layout";
|
||||
import useForceUpdate from "../../../hooks/use-force-update";
|
||||
|
||||
const UserCard = memo(({ pubkey, blindspot }: { pubkey: string; blindspot: string[] }) => {
|
||||
return (
|
||||
|
5
src/views/relays/cache/database/memory.tsx
vendored
5
src/views/relays/cache/database/memory.tsx
vendored
@ -1,5 +1,5 @@
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import { Button, ButtonGroup, Card, Flex, Heading, Text, useForceUpdate } from "@chakra-ui/react";
|
||||
import { useEffect, useMemo } from "react";
|
||||
import { ButtonGroup, Card, Flex, Heading, Text } from "@chakra-ui/react";
|
||||
import { NostrEvent } from "nostr-tools";
|
||||
|
||||
import { localRelay } from "../../../../services/local-relay";
|
||||
@ -9,6 +9,7 @@ import ImportEventsButton from "./components/import-events-button";
|
||||
import ExportEventsButton from "./components/export-events-button";
|
||||
import MemoryRelay from "../../../../classes/memory-relay";
|
||||
import { getSortedKinds } from "../../../../helpers/nostr/event";
|
||||
import useForceUpdate from "../../../../hooks/use-force-update";
|
||||
|
||||
async function importEvents(events: NostrEvent[]) {
|
||||
for (const event of events) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { useState } from "react";
|
||||
import { NostrEvent } from "nostr-tools";
|
||||
import { Button, ButtonGroup, Flex, Heading, SimpleGrid, Text, useForceUpdate, useInterval } from "@chakra-ui/react";
|
||||
import { Button, ButtonGroup, Flex, Heading, SimpleGrid, Text, useInterval } from "@chakra-ui/react";
|
||||
|
||||
import UserAvatar from "../../../../components/user/user-avatar";
|
||||
import UserName from "../../../../components/user/user-name";
|
||||
@ -11,6 +11,7 @@ import { localRelay } from "../../../../services/local-relay";
|
||||
import useCurrentAccount from "../../../../hooks/use-current-account";
|
||||
import useUserContactList from "../../../../hooks/use-user-contact-list";
|
||||
import { getPubkeysFromList } from "../../../../helpers/nostr/lists";
|
||||
import useForceUpdate from "../../../../hooks/use-force-update";
|
||||
|
||||
export default function Connection({
|
||||
call,
|
||||
|
@ -1,16 +1,5 @@
|
||||
import { useEffect } from "react";
|
||||
import {
|
||||
Alert,
|
||||
AlertIcon,
|
||||
Button,
|
||||
CloseButton,
|
||||
Flex,
|
||||
Heading,
|
||||
Input,
|
||||
Text,
|
||||
useForceUpdate,
|
||||
useInterval,
|
||||
} from "@chakra-ui/react";
|
||||
import { Alert, AlertIcon, Button, CloseButton, Flex, Heading, Input, Text, useInterval } from "@chakra-ui/react";
|
||||
import { useForm } from "react-hook-form";
|
||||
import { useObservable } from "applesauce-react/hooks";
|
||||
|
||||
@ -21,6 +10,7 @@ import QRCodeScannerButton from "../../../components/qr-code/qr-code-scanner-but
|
||||
import UserAvatar from "../../../components/user/user-avatar";
|
||||
import UserName from "../../../components/user/user-name";
|
||||
import localSettings from "../../../services/local-settings";
|
||||
import useForceUpdate from "../../../hooks/use-force-update";
|
||||
|
||||
export default function WebRtcConnectView() {
|
||||
const update = useForceUpdate();
|
||||
|
@ -1,22 +1,12 @@
|
||||
import { useEffect } from "react";
|
||||
import {
|
||||
Alert,
|
||||
AlertIcon,
|
||||
Button,
|
||||
ButtonGroup,
|
||||
Flex,
|
||||
Heading,
|
||||
Link,
|
||||
Text,
|
||||
useForceUpdate,
|
||||
useInterval,
|
||||
} from "@chakra-ui/react";
|
||||
import { Alert, AlertIcon, Button, ButtonGroup, Flex, Heading, Link, Text, useInterval } from "@chakra-ui/react";
|
||||
import { Link as RouterLink } from "react-router-dom";
|
||||
|
||||
import BackButton from "../../../components/router/back-button";
|
||||
import webRtcRelaysService from "../../../services/webrtc-relays";
|
||||
import { QrCodeIcon } from "../../../components/icons";
|
||||
import Connection from "./components/connection";
|
||||
import useForceUpdate from "../../../hooks/use-force-update";
|
||||
|
||||
export default function WebRtcRelaysView() {
|
||||
const update = useForceUpdate();
|
||||
|
@ -13,7 +13,6 @@ import {
|
||||
Input,
|
||||
Text,
|
||||
useDisclosure,
|
||||
useForceUpdate,
|
||||
useInterval,
|
||||
} from "@chakra-ui/react";
|
||||
import { getPublicKey, kinds, nip19 } from "nostr-tools";
|
||||
@ -33,6 +32,7 @@ import { QrCodeIcon } from "../../../components/icons";
|
||||
import { usePublishEvent } from "../../../providers/global/publish-provider";
|
||||
import useCurrentAccount from "../../../hooks/use-current-account";
|
||||
import useUserProfile from "../../../hooks/use-user-profile";
|
||||
import useForceUpdate from "../../../hooks/use-force-update";
|
||||
|
||||
function NameForm() {
|
||||
const publish = usePublishEvent();
|
||||
|
@ -1,7 +1,8 @@
|
||||
import { Flex, useForceUpdate, useInterval } from "@chakra-ui/react";
|
||||
import { Flex, useInterval } from "@chakra-ui/react";
|
||||
|
||||
import ProcessBranch from "./process/process-tree";
|
||||
import processManager from "../../../services/process-manager";
|
||||
import useForceUpdate from "../../../hooks/use-force-update";
|
||||
|
||||
export default function TaskManagerProcesses() {
|
||||
const update = useForceUpdate();
|
||||
|
@ -15,7 +15,6 @@ import {
|
||||
TabPanels,
|
||||
Tabs,
|
||||
Text,
|
||||
useForceUpdate,
|
||||
useInterval,
|
||||
} from "@chakra-ui/react";
|
||||
import { Link as RouterLink } from "react-router-dom";
|
||||
@ -35,6 +34,7 @@ import processManager from "../../../services/process-manager";
|
||||
import { RelayAuthMode } from "../../../classes/relay-pool";
|
||||
import Timestamp from "../../../components/timestamp";
|
||||
import localSettings from "../../../services/local-settings";
|
||||
import useForceUpdate from "../../../hooks/use-force-update";
|
||||
|
||||
function RelayCard({ relay }: { relay: AbstractRelay }) {
|
||||
return (
|
||||
|
@ -10,7 +10,6 @@ import {
|
||||
TabPanels,
|
||||
Tabs,
|
||||
Text,
|
||||
useForceUpdate,
|
||||
useInterval,
|
||||
} from "@chakra-ui/react";
|
||||
import { useParams } from "react-router-dom";
|
||||
@ -26,6 +25,7 @@ import { IconRelayAuthButton } from "../../../components/relays/relay-auth-butto
|
||||
import { RelayStatus } from "../../../components/relays/relay-status";
|
||||
import Timestamp from "../../../components/timestamp";
|
||||
import RelayConnectSwitch from "../../../components/relays/relay-connect-switch";
|
||||
import useForceUpdate from "../../../hooks/use-force-update";
|
||||
|
||||
export default function InspectRelayView() {
|
||||
const { url } = useParams();
|
||||
|
@ -1,14 +1,4 @@
|
||||
import {
|
||||
AvatarGroup,
|
||||
Link,
|
||||
Button,
|
||||
Flex,
|
||||
Heading,
|
||||
LinkBox,
|
||||
SimpleGrid,
|
||||
useForceUpdate,
|
||||
useInterval,
|
||||
} from "@chakra-ui/react";
|
||||
import { AvatarGroup, Link, Button, Flex, Heading, LinkBox, SimpleGrid, useInterval } from "@chakra-ui/react";
|
||||
import { Link as RouterLink } from "react-router-dom";
|
||||
import { NostrEvent } from "nostr-tools";
|
||||
|
||||
@ -25,6 +15,7 @@ import { useEffect } from "react";
|
||||
import dictionaryService from "../../services/dictionary";
|
||||
import UserAvatar from "../../components/user/user-avatar";
|
||||
import HoverLinkOverlay from "../../components/hover-link-overlay";
|
||||
import useForceUpdate from "../../hooks/use-force-update";
|
||||
|
||||
function eventFilter(event: NostrEvent) {
|
||||
if (!validatePage(event)) return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user