fix: connect login relays before layout
fix: save relays bug
This commit is contained in:
parent
9bfb6ede0a
commit
ca92b365e0
@ -27,7 +27,7 @@ const RelaySettingsPage = () => {
|
||||
try {
|
||||
const onlineRelays = await fetch("https://api.nostr.watch/v1/online").then(r => r.json());
|
||||
const relayList = await publisher.relayList(login.relays.item);
|
||||
const rs = Object.keys(relays).concat(randomSample(onlineRelays, 20));
|
||||
const rs = Object.keys(relays.item).concat(randomSample(onlineRelays, 20));
|
||||
publisher.broadcastAll(relayList, rs);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
@ -255,7 +255,7 @@ export class Query implements QueryBase {
|
||||
return false;
|
||||
}
|
||||
if ((q.relays?.length ?? 0) === 0 && c.Ephemeral) {
|
||||
this.#log("Cant send non-specific REQ to ephemeral connection %o", q.relays);
|
||||
this.#log("Cant send non-specific REQ to ephemeral connection %O %O %O", q, q.relays, c);
|
||||
return false;
|
||||
}
|
||||
if (q.filters.some(a => a.search) && !c.SupportsNip(Nips.Search)) {
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { AuthHandler, TaggedRawEvent, RelaySettings, Connection, RawReqFilter, RawEvent } from "@snort/nostr";
|
||||
import debug from "debug";
|
||||
|
||||
import { sanitizeRelayUrl, unixNowMs, unwrap } from "SnortUtils";
|
||||
import { RequestBuilder } from "./RequestBuilder";
|
||||
@ -57,6 +58,8 @@ export class NostrSystem extends ExternalStore<SystemSnapshot> {
|
||||
*/
|
||||
HandleAuth?: AuthHandler;
|
||||
|
||||
#log = debug("System");
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.Sockets = new Map();
|
||||
@ -251,8 +254,9 @@ export class NostrSystem extends ExternalStore<SystemSnapshot> {
|
||||
}
|
||||
|
||||
async SendQuery(q: Query, qSend: QueryBase, qSender: (q: Query, qSend: QueryBase, c: Connection) => void) {
|
||||
if (q.relays && q.relays.length > 0) {
|
||||
for (const r of q.relays) {
|
||||
if (qSend.relays && qSend.relays.length > 0) {
|
||||
for (const r of qSend.relays) {
|
||||
this.#log("Sending query to %s %O", r, qSend);
|
||||
const s = this.Sockets.get(r);
|
||||
if (s) {
|
||||
qSender(q, qSend, s);
|
||||
|
@ -35,6 +35,7 @@ import DebugPage from "Pages/Debug";
|
||||
import { db } from "Db";
|
||||
import { preload } from "Cache";
|
||||
import { LoginStore } from "Login";
|
||||
import { System } from "System";
|
||||
|
||||
// @ts-expect-error Setting webpack nonce
|
||||
window.__webpack_nonce__ = "ZmlhdGphZiBzYWlkIHNub3J0LnNvY2lhbCBpcyBwcmV0dHkgZ29vZCwgd2UgbWFkZSBpdCE=";
|
||||
@ -46,11 +47,15 @@ export const router = createBrowserRouter([
|
||||
element: <Layout />,
|
||||
errorElement: <ErrorPage />,
|
||||
loader: async () => {
|
||||
const login = LoginStore.takeSnapshot();
|
||||
db.ready = await db.isAvailable();
|
||||
if (db.ready) {
|
||||
await preload(LoginStore.takeSnapshot().follows.item);
|
||||
await preload(login.follows.item);
|
||||
}
|
||||
|
||||
for (const [k, v] of Object.entries(login.relays.item)) {
|
||||
await System.ConnectToRelay(k, v);
|
||||
}
|
||||
try {
|
||||
if ("registerProtocolHandler" in window.navigator) {
|
||||
window.navigator.registerProtocolHandler(
|
||||
|
Loading…
x
Reference in New Issue
Block a user