fix adding account

cleanup
This commit is contained in:
hzrd149
2023-10-17 04:43:26 -05:00
parent 654835764b
commit 44985aeb83
12 changed files with 22 additions and 14 deletions

View File

@@ -119,7 +119,7 @@ export const GalleryImage = forwardRef<HTMLImageElement, EmbeddedImageProps>(
return (
<Link href={src} isExternal onClick={handleClick} {...props}>
<TrustImage src={thumbnail} cursor="pointer" ref={ref} onClick={handleClick} {...imageProps} />
<TrustImage src={thumbnail} cursor="pointer" ref={ref} onClick={handleClick} w="full" {...imageProps} />
</Link>
);
},

View File

@@ -82,7 +82,7 @@ export default function AccountSwitcher() {
<Button
leftIcon={<AddIcon />}
onClick={() => {
accountService.logout();
accountService.logout(false);
navigate("/signin", { state: { from: location.pathname } });
}}
>

2
src/const.ts Normal file
View File

@@ -0,0 +1,2 @@
export const SEARCH_RELAYS = ["wss://relay.nostr.band", "wss://search.nos.today", "wss://relay.noswhere.com"];
export const COMMON_CONTACT_RELAY = "wss://purplepag.es";

View File

@@ -3,9 +3,10 @@ import userMetadataService from "../services/user-metadata";
import { useReadRelayUrls } from "./use-client-relays";
import useSubject from "./use-subject";
import { RequestOptions } from "../services/replaceable-event-requester";
import { COMMON_CONTACT_RELAY } from "../const";
export function useUserMetadata(pubkey: string, additionalRelays: string[] = [], opts: RequestOptions = {}) {
const relays = useReadRelayUrls([...additionalRelays, "wss://purplepag.es"]);
const relays = useReadRelayUrls([...additionalRelays, COMMON_CONTACT_RELAY]);
const subject = useMemo(() => userMetadataService.requestMetadata(pubkey, relays, opts), [pubkey, relays]);
const metadata = useSubject(subject);

View File

@@ -3,9 +3,10 @@ import userRelaysService from "../services/user-relays";
import useSubject from "./use-subject";
import { useReadRelayUrls } from "./use-client-relays";
import { RequestOptions } from "../services/replaceable-event-requester";
import { COMMON_CONTACT_RELAY } from "../const";
export function useUserRelays(pubkey: string, additionalRelays: string[] = [], opts: RequestOptions = {}) {
const readRelays = useReadRelayUrls([...additionalRelays, "wss://purplepag.es"]);
const readRelays = useReadRelayUrls([...additionalRelays, COMMON_CONTACT_RELAY]);
const subject = useMemo(
() => userRelaysService.requestRelays(pubkey, readRelays, opts),
[pubkey, readRelays.join("|")],

View File

@@ -94,7 +94,7 @@ class AccountService {
}
}
logout() {
logout(clear = true) {
if (this.current.value) {
this.removeAccount(this.current.value.pubkey);
}

View File

@@ -9,6 +9,7 @@ import { Connection, PersistentSubject, Subject } from "../classes/subject";
import signingService from "./signing";
import { logger } from "../helpers/debug";
import NostrPublishAction from "../classes/nostr-publish-action";
import { COMMON_CONTACT_RELAY } from "../const";
export type RelayDirectory = Record<string, { read: boolean; write: boolean }>;
@@ -75,7 +76,7 @@ class ClientRelayService {
this.log("Load users relay list from cache");
userRelaysService.loadFromCache(account.pubkey).then(() => {
if (this.relays.value.length === 0) {
const bootstrapRelays = account.relays ?? ["wss://purplepag.es"];
const bootstrapRelays = account.relays ?? [COMMON_CONTACT_RELAY];
this.log("Loading relay list from bootstrap relays", bootstrapRelays);
userRelaysService.requestRelays(account.pubkey, bootstrapRelays, { alwaysRequest: true });
@@ -136,8 +137,7 @@ class ClientRelayService {
const newRelayUrls = newRelays.filter((r) => r.mode & RelayMode.WRITE).map((r) => r.url);
const oldRelayUrls = this.relays.value.filter((r) => r.mode & RelayMode.WRITE).map((r) => r.url);
// always write relay lists to wss://purplepag.es
const writeUrls = unique([...oldRelayUrls, ...newRelayUrls, "wss://purplepag.es"]);
const writeUrls = unique([...oldRelayUrls, ...newRelayUrls, COMMON_CONTACT_RELAY]);
const current = accountService.current.value;
if (!current) throw new Error("no account");

View File

@@ -27,6 +27,7 @@ import userMetadataService from "../../services/user-metadata";
import { DraftNostrEvent } from "../../types/nostr-event";
import lnurlMetadataService from "../../services/lnurl-metadata";
import VerticalPageLayout from "../../components/vertical-page-layout";
import { COMMON_CONTACT_RELAY } from "../../const";
const isEmail =
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
@@ -188,7 +189,7 @@ const MetadataForm = ({ defaultValues, onSubmit }: MetadataFormProps) => {
};
export const ProfileEditView = () => {
const writeRelays = useWriteRelayUrls(["wss://purplepag.es"]); // always write profile info to wss://purplepag.es
const writeRelays = useWriteRelayUrls([COMMON_CONTACT_RELAY]);
const readRelays = useReadRelayUrls();
const toast = useToast();
const account = useCurrentAccount()!;

View File

@@ -25,6 +25,7 @@ import { UserLink } from "../../components/user-link";
import trustedUserStatsService, { NostrBandUserStats } from "../../services/trusted-user-stats";
import { readablizeSats } from "../../helpers/bolt11";
import VerticalPageLayout from "../../components/vertical-page-layout";
import { SEARCH_RELAYS } from "../../const";
function ProfileResult({ profile }: { profile: NostrEvent }) {
const metadata = parseKind0Event(profile);
@@ -168,10 +169,9 @@ export function SearchPage() {
);
}
const searchRelays = ["wss://relay.nostr.band", "wss://search.nos.today", "wss://relay.noswhere.com"];
export default function SearchView() {
return (
<RelaySelectionProvider overrideDefault={searchRelays}>
<RelaySelectionProvider overrideDefault={SEARCH_RELAYS}>
<SearchPage />
</RelaySelectionProvider>
);

View File

@@ -5,12 +5,13 @@ import { useNavigate } from "react-router-dom";
import { RelayUrlInput } from "../../components/relay-url-input";
import { normalizeToHex } from "../../helpers/nip19";
import accountService from "../../services/account";
import { COMMON_CONTACT_RELAY } from "../../const";
export default function LoginNpubView() {
const navigate = useNavigate();
const toast = useToast();
const [npub, setNpub] = useState("");
const [relayUrl, setRelayUrl] = useState("wss://purplepag.es");
const [relayUrl, setRelayUrl] = useState(COMMON_CONTACT_RELAY);
const handleSubmit: React.FormEventHandler<HTMLDivElement> = (e) => {
e.preventDefault();

View File

@@ -22,6 +22,7 @@ import accountService from "../../services/account";
import clientRelaysService from "../../services/client-relays";
import { generatePrivateKey, getPublicKey, nip19 } from "nostr-tools";
import signingService from "../../services/signing";
import { COMMON_CONTACT_RELAY } from "../../const";
export default function LoginNsecView() {
const navigate = useNavigate();
@@ -31,7 +32,7 @@ export default function LoginNsecView() {
const [inputValue, setInputValue] = useState("");
const [hexKey, setHexKey] = useState("");
const [relayUrl, setRelayUrl] = useState("wss://purplepag.es");
const [relayUrl, setRelayUrl] = useState(COMMON_CONTACT_RELAY);
const [npub, setNpub] = useState("");

View File

@@ -11,6 +11,7 @@ import accountService from "../../services/account";
import signingService from "../../services/signing";
import clientRelaysService from "../../services/client-relays";
import { RelayMode } from "../../classes/relay";
import { COMMON_CONTACT_RELAY } from "../../const";
export default function CreateStep({
metadata,
@@ -57,7 +58,7 @@ export default function CreateStep({
hex,
);
new NostrPublishAction("Create Profile", [...relays, "wss://purplepag.es"], kind0);
new NostrPublishAction("Create Profile", [...relays, COMMON_CONTACT_RELAY], kind0);
// login
const pubkey = getPublicKey(hex);