diff --git a/.changeset/curvy-sloths-train.md b/.changeset/curvy-sloths-train.md new file mode 100644 index 000000000..a4d9587f5 --- /dev/null +++ b/.changeset/curvy-sloths-train.md @@ -0,0 +1,5 @@ +--- +"nostrudel": minor +--- + +Remove "Setup Relays" overlay when starting app diff --git a/src/providers/route/require-read-relays.tsx b/src/providers/route/require-read-relays.tsx index a35101e42..0eb0d0b71 100644 --- a/src/providers/route/require-read-relays.tsx +++ b/src/providers/route/require-read-relays.tsx @@ -1,113 +1,36 @@ -import { MouseEventHandler, PropsWithChildren, useCallback } from "react"; -import { Box, Button, ButtonGroup, Card, CardBody, CardHeader, Flex, Heading, Text } from "@chakra-ui/react"; +import { PropsWithChildren } from "react"; +import { Alert, AlertIcon, Button, Link, Spacer, Text } from "@chakra-ui/react"; import { Link as RouterLink } from "react-router-dom"; +import { useLocation } from "react-router-dom"; import { useReadRelays } from "../../hooks/use-client-relays"; -import clientRelaysService, { recommendedReadRelays, recommendedWriteRelays } from "../../services/client-relays"; -import AddRelayForm from "../../views/relays/app/add-relay-form"; -import { RelayMode } from "../../classes/relay"; import useSubject from "../../hooks/use-subject"; import { offlineMode } from "../../services/offline-mode"; -import { safeRelayUrls } from "../../helpers/relay"; -import RelaySet from "../../classes/relay-set"; -import HoverLinkOverlay from "../../components/hover-link-overlay"; -import { useLocation } from "react-router-dom"; -import useCurrentAccount from "../../hooks/use-current-account"; -import useUserMailboxes from "../../hooks/use-user-mailboxes"; - -const JapaneseRelays = safeRelayUrls([ - "wss://r.kojira.io", - "wss://nrelay-jp.c-stellar.net", - "wss://nostr.fediverse.jp", - "wss://nostr.holybea.com", - "wss://relay-jp.nostr.wirednet.jp", -]); - -function RelaySetCard({ label, read, write }: { label: string; read: Iterable; write: Iterable }) { - const handleClick = useCallback((e) => { - e.preventDefault(); - clientRelaysService.readRelays.next(RelaySet.from(read)); - clientRelaysService.writeRelays.next(RelaySet.from(write)); - clientRelaysService.saveRelays(); - }, []); - - return ( - - - - - {label}: - - - - - {RelaySet.from(read, write).urls.map((url) => ( - - {url} - - ))} - - - ); -} export default function RequireReadRelays({ children }: PropsWithChildren) { - const account = useCurrentAccount(); - const mailboxes = useUserMailboxes(account?.pubkey); const readRelays = useReadRelays(); const offline = useSubject(offlineMode); const location = useLocation(); - const setRelaysToMailboxes = useCallback( - (e) => { - if (!mailboxes) return; - clientRelaysService.readRelays.next(RelaySet.from(mailboxes.inbox)); - clientRelaysService.writeRelays.next(RelaySet.from(mailboxes.outbox)); - clientRelaysService.saveRelays(); - }, - [mailboxes], - ); - if (readRelays.size === 0 && !offline && !location.pathname.startsWith("/relays")) return ( - - - - Setup App Relays - - - App Relays are stored locally and are used to fetch your timeline and other users notes + <> + + + + Missing{" "} + + app relays + + ! Reading and publishing notes wont work very well! - - {!account && ( - - )} - {mailboxes && ( - - )} - - - - - Single relay: - - - clientRelaysService.addRelay(url, RelayMode.ALL)} w="full" /> - - - - - - - + + {children} + ); return children; diff --git a/src/views/relays/app/index.tsx b/src/views/relays/app/index.tsx index 7f43621b3..163973075 100644 --- a/src/views/relays/app/index.tsx +++ b/src/views/relays/app/index.tsx @@ -1,13 +1,14 @@ -import { useCallback, useMemo } from "react"; +import { MouseEventHandler, useCallback, useMemo } from "react"; -import { Button, ButtonGroup, Flex, Heading, Text } from "@chakra-ui/react"; +import { Button, ButtonGroup, Card, CardBody, CardHeader, Flex, Heading, SimpleGrid, Text } from "@chakra-ui/react"; +import { WarningIcon } from "@chakra-ui/icons"; import useSubject from "../../../hooks/use-subject"; import { offlineMode } from "../../../services/offline-mode"; import WifiOff from "../../../components/icons/wifi-off"; import Wifi from "../../../components/icons/wifi"; import BackButton from "../../../components/router/back-button"; import AddRelayForm from "./add-relay-form"; -import clientRelaysService from "../../../services/client-relays"; +import clientRelaysService, { recommendedReadRelays, recommendedWriteRelays } from "../../../services/client-relays"; import { RelayMode } from "../../../classes/relay"; import RelaySet from "../../../classes/relay-set"; import { useReadRelays, useWriteRelays } from "../../../hooks/use-client-relays"; @@ -17,7 +18,45 @@ import useUserMailboxes from "../../../hooks/use-user-mailboxes"; import { getRelaysFromExt } from "../../../helpers/nip07"; import { useUserDNSIdentity } from "../../../hooks/use-user-dns-identity"; import useUserContactRelays from "../../../hooks/use-user-contact-relays"; -import { WarningIcon } from "@chakra-ui/icons"; +import SelectRelaySet from "./select-relay-set"; +import { safeRelayUrls } from "../../../helpers/relay"; +import HoverLinkOverlay from "../../../components/hover-link-overlay"; + +const JapaneseRelays = safeRelayUrls([ + "wss://r.kojira.io", + "wss://nrelay-jp.c-stellar.net", + "wss://nostr.fediverse.jp", + "wss://nostr.holybea.com", + "wss://relay-jp.nostr.wirednet.jp", +]); + +function RelaySetCard({ label, read, write }: { label: string; read: Iterable; write: Iterable }) { + const handleClick = useCallback((e) => { + e.preventDefault(); + clientRelaysService.readRelays.next(RelaySet.from(read)); + clientRelaysService.writeRelays.next(RelaySet.from(write)); + clientRelaysService.saveRelays(); + }, []); + + return ( + + + + + {label}: + + + + + {RelaySet.from(read, write).urls.map((url) => ( + + {url} + + ))} + + + ); +} export default function AppRelays() { const account = useCurrentAccount(); @@ -67,7 +106,7 @@ export default function AppRelays() { )} - Import from: + Set from: {window.nostr && ( @@ -114,14 +153,22 @@ export default function AppRelays() { )} - {/* {account && ( + {account && ( <> Use relay set set && clientRelaysService.setRelaysFromRelaySet(set)} /> - )} */} + )} + + + Presets: + + + + + ); }