hide NoteBroadcaster in iris
This commit is contained in:
@ -10,6 +10,7 @@
|
|||||||
"publicDir": "public/snort",
|
"publicDir": "public/snort",
|
||||||
"httpCache": "",
|
"httpCache": "",
|
||||||
"animalNamePlaceholders": false,
|
"animalNamePlaceholders": false,
|
||||||
|
"showNoteBroadcaster": true,
|
||||||
"defaultZapPoolFee": 0.5,
|
"defaultZapPoolFee": 0.5,
|
||||||
"features": {
|
"features": {
|
||||||
"analytics": true,
|
"analytics": true,
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
"publicDir": "public/iris",
|
"publicDir": "public/iris",
|
||||||
"httpCache": "https://api.iris.to",
|
"httpCache": "https://api.iris.to",
|
||||||
"animalNamePlaceholders": true,
|
"animalNamePlaceholders": true,
|
||||||
|
"showNoteBroadcaster": false,
|
||||||
|
"defaultZapPoolFee": 0.5,
|
||||||
"features": {
|
"features": {
|
||||||
"analytics": true,
|
"analytics": true,
|
||||||
"subscriptions": false,
|
"subscriptions": false,
|
||||||
|
3
packages/app/custom.d.ts
vendored
3
packages/app/custom.d.ts
vendored
@ -51,7 +51,8 @@ declare const CONFIG: {
|
|||||||
navLogo: string | null;
|
navLogo: string | null;
|
||||||
httpCache: string;
|
httpCache: string;
|
||||||
animalNamePlaceholders: boolean;
|
animalNamePlaceholders: boolean;
|
||||||
defaultZapPoolFee?: number;
|
showNoteBroadcaster: boolean;
|
||||||
|
defaultZapPoolFee: number;
|
||||||
features: {
|
features: {
|
||||||
analytics: boolean;
|
analytics: boolean;
|
||||||
subscriptions: boolean;
|
subscriptions: boolean;
|
||||||
|
@ -10,6 +10,7 @@ import { removeRelay } from "@/Login";
|
|||||||
import useLogin from "@/Hooks/useLogin";
|
import useLogin from "@/Hooks/useLogin";
|
||||||
import useEventPublisher from "@/Hooks/useEventPublisher";
|
import useEventPublisher from "@/Hooks/useEventPublisher";
|
||||||
import { saveRelays } from "@/Pages/settings/Relays";
|
import { saveRelays } from "@/Pages/settings/Relays";
|
||||||
|
import {sendEventToRelays} from "@/Element/Event/NoteBroadcaster/util";
|
||||||
|
|
||||||
export function NoteBroadcaster({
|
export function NoteBroadcaster({
|
||||||
evs,
|
evs,
|
||||||
@ -25,26 +26,8 @@ export function NoteBroadcaster({
|
|||||||
const login = useLogin();
|
const login = useLogin();
|
||||||
const { publisher, system } = useEventPublisher();
|
const { publisher, system } = useEventPublisher();
|
||||||
|
|
||||||
async function sendEventToRelays(ev: NostrEvent) {
|
|
||||||
if (customRelays) {
|
|
||||||
return removeUndefined(
|
|
||||||
await Promise.all(
|
|
||||||
customRelays.map(async r => {
|
|
||||||
try {
|
|
||||||
return await system.WriteOnceToRelay(r, ev);
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return await system.BroadcastEvent(ev, r => setResults(x => [...x, r]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
Promise.all(evs.map(a => sendEventToRelays(a)).flat()).catch(console.error);
|
Promise.all(evs.map(a => sendEventToRelays(system, a, customRelays, setResults)).flat()).catch(console.error);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
async function removeRelayFromResult(r: OkResponse) {
|
async function removeRelayFromResult(r: OkResponse) {
|
23
packages/app/src/Element/Event/NoteBroadcaster/util.ts
Normal file
23
packages/app/src/Element/Event/NoteBroadcaster/util.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import {NostrEvent, OkResponse, SystemInterface} from "@snort/system";
|
||||||
|
import {removeUndefined} from "@snort/shared";
|
||||||
|
|
||||||
|
export async function sendEventToRelays(system: SystemInterface, ev: NostrEvent, customRelays?: Array<string>, setResults?: (x: Array<OkResponse>) => void) {
|
||||||
|
console.log("sendEventToRelays", ev, customRelays);
|
||||||
|
if (customRelays) {
|
||||||
|
return removeUndefined(
|
||||||
|
await Promise.all(
|
||||||
|
customRelays.map(async r => {
|
||||||
|
try {
|
||||||
|
return await system.WriteOnceToRelay(r, ev);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
const responses: OkResponse[] = await system.BroadcastEvent(ev);
|
||||||
|
setResults?.(responses);
|
||||||
|
return responses;
|
||||||
|
}
|
||||||
|
}
|
@ -21,17 +21,18 @@ import { AsyncIcon } from "@/Element/AsyncIcon";
|
|||||||
import { fetchNip05Pubkey } from "@snort/shared";
|
import { fetchNip05Pubkey } from "@snort/shared";
|
||||||
import { ZapTarget } from "@/Zapper";
|
import { ZapTarget } from "@/Zapper";
|
||||||
import { useNoteCreator } from "@/State/NoteCreator";
|
import { useNoteCreator } from "@/State/NoteCreator";
|
||||||
import { NoteBroadcaster } from "./NoteBroadcaster";
|
import { NoteBroadcaster } from "./NoteBroadcaster/NoteBroadcaster";
|
||||||
import FileUploadProgress from "./FileUpload";
|
import FileUploadProgress from "./FileUpload";
|
||||||
import { ToggleSwitch } from "@/Icons/Toggle";
|
import { ToggleSwitch } from "@/Icons/Toggle";
|
||||||
import NostrBandApi from "@/External/NostrBand";
|
import NostrBandApi from "@/External/NostrBand";
|
||||||
import { useLocale } from "@/IntlProvider";
|
import { useLocale } from "@/IntlProvider";
|
||||||
|
import {sendEventToRelays} from "@/Element/Event/NoteBroadcaster/util";
|
||||||
|
|
||||||
export function NoteCreator() {
|
export function NoteCreator() {
|
||||||
const { formatMessage } = useIntl();
|
const { formatMessage } = useIntl();
|
||||||
const uploader = useFileUpload();
|
const uploader = useFileUpload();
|
||||||
const login = useLogin(s => ({ relays: s.relays, publicKey: s.publicKey, pow: s.appData.item.preferences.pow }));
|
const login = useLogin(s => ({ relays: s.relays, publicKey: s.publicKey, pow: s.appData.item.preferences.pow }));
|
||||||
const { publisher: pub } = useEventPublisher();
|
const { system, publisher: pub } = useEventPublisher();
|
||||||
const publisher = login.pow ? pub?.pow(login.pow, GetPowWorker()) : pub;
|
const publisher = login.pow ? pub?.pow(login.pow, GetPowWorker()) : pub;
|
||||||
const note = useNoteCreator();
|
const note = useNoteCreator();
|
||||||
const relays = login.relays;
|
const relays = login.relays;
|
||||||
@ -150,9 +151,14 @@ export function NoteCreator() {
|
|||||||
async function sendNote() {
|
async function sendNote() {
|
||||||
const ev = await buildNote();
|
const ev = await buildNote();
|
||||||
if (ev) {
|
if (ev) {
|
||||||
|
const events = (note.otherEvents ?? []).concat(ev);
|
||||||
note.update(n => {
|
note.update(n => {
|
||||||
n.sending = (note.otherEvents ?? []).concat(ev);
|
n.sending = events;
|
||||||
});
|
});
|
||||||
|
if (!CONFIG.showNoteBroadcaster) {
|
||||||
|
Promise.all(events.map(a => sendEventToRelays(system, a, note.selectedCustomRelays)).flat()).catch(console.error);
|
||||||
|
reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user