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