mirror of
https://github.com/PrimalHQ/primal-web-app.git
synced 2024-10-01 17:31:13 +00:00
Delay zapping after the animation has completed
This commit is contained in:
parent
37a522ecbe
commit
ec0bd99d84
@ -11,6 +11,7 @@ import { PrimalNote, PrimalUser, ZapOption } from '../../types/primal';
|
|||||||
import { debounce } from '../../utils';
|
import { debounce } from '../../utils';
|
||||||
import ButtonPrimary from '../Buttons/ButtonPrimary';
|
import ButtonPrimary from '../Buttons/ButtonPrimary';
|
||||||
import Modal from '../Modal/Modal';
|
import Modal from '../Modal/Modal';
|
||||||
|
import { lottieDuration } from '../Note/NoteFooter/NoteFooter';
|
||||||
import TextInput from '../TextInput/TextInput';
|
import TextInput from '../TextInput/TextInput';
|
||||||
import { useToastContext } from '../Toaster/Toaster';
|
import { useToastContext } from '../Toaster/Toaster';
|
||||||
|
|
||||||
@ -92,27 +93,39 @@ const CustomZap: Component<{
|
|||||||
if (account?.hasPublicKey()) {
|
if (account?.hasPublicKey()) {
|
||||||
props.onConfirm(selectedValue());
|
props.onConfirm(selectedValue());
|
||||||
|
|
||||||
let success = false;
|
const note = props.note;
|
||||||
|
|
||||||
if (props.note) {
|
if (note) {
|
||||||
success = await zapNote(
|
setTimeout(async () => {
|
||||||
props.note,
|
const success = await zapNote(
|
||||||
|
note,
|
||||||
account.publicKey,
|
account.publicKey,
|
||||||
selectedValue().amount || 0,
|
selectedValue().amount || 0,
|
||||||
comment(),
|
comment(),
|
||||||
account.relays,
|
account.relays,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
handleZap(success);
|
||||||
|
}, lottieDuration());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else if (props.profile) {
|
|
||||||
success = await zapProfile(
|
if (props.profile) {
|
||||||
|
const success = await zapProfile(
|
||||||
props.profile,
|
props.profile,
|
||||||
account.publicKey,
|
account.publicKey,
|
||||||
selectedValue().amount || 0,
|
selectedValue().amount || 0,
|
||||||
comment(),
|
comment(),
|
||||||
account.relays,
|
account.relays,
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
|
handleZap(success);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleZap = (success = false) => {
|
||||||
if (success) {
|
if (success) {
|
||||||
props.onSuccess(selectedValue());
|
props.onSuccess(selectedValue());
|
||||||
return;
|
return;
|
||||||
@ -122,8 +135,7 @@ const CustomZap: Component<{
|
|||||||
intl.formatMessage(toastZapFail),
|
intl.formatMessage(toastZapFail),
|
||||||
);
|
);
|
||||||
|
|
||||||
props.onFail(selectedValue())
|
props.onFail(selectedValue());
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -23,6 +23,8 @@ import { NoteFooterState } from '../Note';
|
|||||||
import { SetStoreFunction } from 'solid-js/store';
|
import { SetStoreFunction } from 'solid-js/store';
|
||||||
import BookmarkNote from '../../BookmarkNote/BookmarkNote';
|
import BookmarkNote from '../../BookmarkNote/BookmarkNote';
|
||||||
|
|
||||||
|
export const lottieDuration = () => zapMD.op * 1_000 / zapMD.fr;
|
||||||
|
|
||||||
const NoteFooter: Component<{
|
const NoteFooter: Component<{
|
||||||
note: PrimalNote,
|
note: PrimalNote,
|
||||||
wide?: boolean,
|
wide?: boolean,
|
||||||
@ -269,6 +271,8 @@ const NoteFooter: Component<{
|
|||||||
props.updateState('satsZapped', (z) => z + amount);
|
props.updateState('satsZapped', (z) => z + amount);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
setTimeout(async () => {
|
||||||
const success = await zapNote(props.note, account.publicKey, amount, message, account.relays);
|
const success = await zapNote(props.note, account.publicKey, amount, message, account.relays);
|
||||||
|
|
||||||
props.updateState('isZapping', () => false);
|
props.updateState('isZapping', () => false);
|
||||||
@ -292,6 +296,8 @@ const NoteFooter: Component<{
|
|||||||
amount,
|
amount,
|
||||||
message,
|
message,
|
||||||
});
|
});
|
||||||
|
}, lottieDuration());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const buttonTypeClasses: Record<string, string> = {
|
const buttonTypeClasses: Record<string, string> = {
|
||||||
|
@ -488,15 +488,18 @@ const Profile: Component = () => {
|
|||||||
},
|
},
|
||||||
onSuccess: (zapOption: ZapOption) => {
|
onSuccess: (zapOption: ZapOption) => {
|
||||||
app?.actions.closeCustomZapModal();
|
app?.actions.closeCustomZapModal();
|
||||||
|
app?.actions.resetCustomZap();
|
||||||
toaster?.sendSuccess(intl.formatMessage(toastZapProfile, {
|
toaster?.sendSuccess(intl.formatMessage(toastZapProfile, {
|
||||||
name: authorName(profile?.userProfile)
|
name: authorName(profile?.userProfile)
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
onFail: (zapOption: ZapOption) => {
|
onFail: (zapOption: ZapOption) => {
|
||||||
app?.actions.closeCustomZapModal();
|
app?.actions.closeCustomZapModal();
|
||||||
|
app?.actions.resetCustomZap();
|
||||||
},
|
},
|
||||||
onCancel: (zapOption: ZapOption) => {
|
onCancel: (zapOption: ZapOption) => {
|
||||||
app?.actions.closeCustomZapModal();
|
app?.actions.closeCustomZapModal();
|
||||||
|
app?.actions.resetCustomZap();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user