mirror of
https://github.com/hzrd149/nostrudel.git
synced 2025-09-18 19:41:48 +02:00
fix adding account
cleanup
This commit is contained in:
@@ -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>
|
||||
);
|
||||
},
|
||||
|
@@ -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
2
src/const.ts
Normal 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";
|
@@ -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);
|
||||
|
@@ -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("|")],
|
||||
|
@@ -94,7 +94,7 @@ class AccountService {
|
||||
}
|
||||
}
|
||||
|
||||
logout() {
|
||||
logout(clear = true) {
|
||||
if (this.current.value) {
|
||||
this.removeAccount(this.current.value.pubkey);
|
||||
}
|
||||
|
@@ -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");
|
||||
|
@@ -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()!;
|
||||
|
@@ -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>
|
||||
);
|
||||
|
@@ -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();
|
||||
|
@@ -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("");
|
||||
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user