feat: toast notify on publish

This commit is contained in:
2023-12-02 22:44:44 +00:00
parent 46ee7385fc
commit cfb446c7c8
11 changed files with 104 additions and 144 deletions

View File

@ -18,14 +18,15 @@ import useLogin from "@/Hooks/useLogin";
import { GetPowWorker } from "@/index";
import AsyncButton from "@/Element/Button/AsyncButton";
import { AsyncIcon } from "@/Element/Button/AsyncIcon";
import { fetchNip05Pubkey } from "@snort/shared";
import { fetchNip05Pubkey, unixNow } from "@snort/shared";
import { ZapTarget } from "@/Zapper";
import { useNoteCreator } from "@/State/NoteCreator";
import { NoteBroadcaster } from "@/Element/Event/Create/NoteBroadcaster";
import FileUploadProgress from "../FileUpload";
import { ToggleSwitch } from "@/Icons/Toggle";
import { sendEventToRelays } from "@/Element/Event/Create/util";
import { TrendingHashTagsLine } from "@/Element/Event/Create/TrendingHashTagsLine";
import { Toastore } from "@/Toaster";
import { OkResponseRow } from "./OkResponseRow";
export function NoteCreator() {
const { formatMessage } = useIntl();
@ -151,15 +152,17 @@ export function NoteCreator() {
const ev = await buildNote();
if (ev) {
const events = (note.otherEvents ?? []).concat(ev);
note.update(n => {
n.sending = events;
});
if (!CONFIG.showNoteBroadcaster) {
Promise.all(events.map(a => sendEventToRelays(system, a, note.selectedCustomRelays)).flat()).catch(
console.error,
);
reset();
}
events.map(a => sendEventToRelays(system, a, note.selectedCustomRelays, r => {
if (CONFIG.noteCreatorToast) {
r.forEach(rr => {
Toastore.push({
element: <OkResponseRow rsp={rr} />,
expire: unixNow() + (rr.ok ? 5 : 55555)
})
});
}
}));
note.update(n => n.reset());
}
}
@ -324,18 +327,18 @@ export function NoteCreator() {
onChange={e => {
note.update(
v =>
(v.selectedCustomRelays =
// set false if all relays selected
e.target.checked &&
(v.selectedCustomRelays =
// set false if all relays selected
e.target.checked &&
note.selectedCustomRelays &&
note.selectedCustomRelays.length == a.length - 1
? undefined
: // otherwise return selectedCustomRelays with target relay added / removed
a.filter(el =>
el === r
? e.target.checked
: !note.selectedCustomRelays || note.selectedCustomRelays.includes(el),
)),
? undefined
: // otherwise return selectedCustomRelays with target relay added / removed
a.filter(el =>
el === r
? e.target.checked
: !note.selectedCustomRelays || note.selectedCustomRelays.includes(el),
)),
);
}}
/>
@ -404,9 +407,9 @@ export function NoteCreator() {
onChange={e =>
note.update(
v =>
(v.zapSplits = arr.map((vv, ii) =>
ii === i ? { ...vv, weight: Number(e.target.value) } : vv,
)),
(v.zapSplits = arr.map((vv, ii) =>
ii === i ? { ...vv, weight: Number(e.target.value) } : vv,
)),
)
}
/>
@ -650,8 +653,7 @@ export function NoteCreator() {
if (!note.show) return null;
return (
<Modal id="note-creator" className="note-creator-modal" onClose={reset}>
{note.sending && <NoteBroadcaster evs={note.sending} onClose={reset} customRelays={note.selectedCustomRelays} />}
{!note.sending && noteCreatorForm()}
{noteCreatorForm()}
</Modal>
);
}
}