Fix bolt hover ignores turbozaps (#881)
* Fix bolt hover color ignores turbo zaps * Refactor next tip code into own function
This commit is contained in:
parent
9cb657ab9a
commit
38f2aa309d
@ -9,6 +9,7 @@ import { gql, useApolloClient, useMutation } from '@apollo/client'
|
|||||||
import { payOrLoginError, useInvoiceModal } from './invoice'
|
import { payOrLoginError, useInvoiceModal } from './invoice'
|
||||||
import { TOAST_DEFAULT_DELAY_MS, useToast, withToastFlow } from './toast'
|
import { TOAST_DEFAULT_DELAY_MS, useToast, withToastFlow } from './toast'
|
||||||
import { useLightning } from './lightning'
|
import { useLightning } from './lightning'
|
||||||
|
import { nextTip } from './upvote'
|
||||||
|
|
||||||
const defaultTips = [100, 1000, 10000, 100000]
|
const defaultTips = [100, 1000, 10000, 100000]
|
||||||
|
|
||||||
@ -370,15 +371,8 @@ export function useZap () {
|
|||||||
return useCallback(async ({ item, me }) => {
|
return useCallback(async ({ item, me }) => {
|
||||||
const meSats = (item?.meSats || 0)
|
const meSats = (item?.meSats || 0)
|
||||||
|
|
||||||
// what should our next tip be?
|
// add current sats to next tip since idempotent zaps use desired total zap not difference
|
||||||
let sats = me?.privates?.tipDefault || 1
|
const sats = meSats + nextTip(meSats, { ...me?.privates })
|
||||||
if (me?.privates?.turboTipping) {
|
|
||||||
while (meSats >= sats) {
|
|
||||||
sats *= 10
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
sats = meSats + sats
|
|
||||||
}
|
|
||||||
|
|
||||||
const variables = { id: item.id, sats, act: 'TIP', amount: sats - meSats }
|
const variables = { id: item.id, sats, act: 'TIP', amount: sats - meSats }
|
||||||
const insufficientFunds = me?.privates.sats < (sats - meSats)
|
const insufficientFunds = me?.privates.sats < (sats - meSats)
|
||||||
|
@ -67,6 +67,22 @@ export function DropdownItemUpVote ({ item }) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const nextTip = (meSats, { tipDefault, turboTipping }) => {
|
||||||
|
// what should our next tip be?
|
||||||
|
if (!turboTipping) return (tipDefault || 1)
|
||||||
|
|
||||||
|
let sats = tipDefault || 1
|
||||||
|
if (turboTipping) {
|
||||||
|
while (meSats >= sats) {
|
||||||
|
sats *= 10
|
||||||
|
}
|
||||||
|
// deduct current sats since turbo tipping is about total zap not making the next zap 10x
|
||||||
|
sats -= meSats
|
||||||
|
}
|
||||||
|
|
||||||
|
return sats
|
||||||
|
}
|
||||||
|
|
||||||
export default function UpVote ({ item, className }) {
|
export default function UpVote ({ item, className }) {
|
||||||
const showModal = useShowModal()
|
const showModal = useShowModal()
|
||||||
const [voteShow, _setVoteShow] = useState(false)
|
const [voteShow, _setVoteShow] = useState(false)
|
||||||
@ -119,21 +135,11 @@ export default function UpVote ({ item, className }) {
|
|||||||
const meSats = (item?.meSats || item?.meAnonSats || 0)
|
const meSats = (item?.meSats || item?.meAnonSats || 0)
|
||||||
|
|
||||||
// what should our next tip be?
|
// what should our next tip be?
|
||||||
let sats = me?.privates?.tipDefault || 1
|
const sats = nextTip(meSats, { ...me?.privates })
|
||||||
let raiseSats = sats
|
|
||||||
if (me?.privates?.turboTipping) {
|
|
||||||
while (meSats >= raiseSats) {
|
|
||||||
raiseSats *= 10
|
|
||||||
}
|
|
||||||
|
|
||||||
sats = raiseSats - meSats
|
|
||||||
} else {
|
|
||||||
raiseSats = meSats + sats
|
|
||||||
}
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
meSats, me ? numWithUnits(sats, { abbreviate: false }) : 'zap it',
|
meSats, me ? numWithUnits(sats, { abbreviate: false }) : 'zap it',
|
||||||
getColor(meSats), getColor(meSats + (me?.privates?.tipDefault || 0))]
|
getColor(meSats), getColor(meSats + sats)]
|
||||||
}, [item?.meSats, item?.meAnonSats, me?.privates?.tipDefault, me?.privates?.turboDefault])
|
}, [item?.meSats, item?.meAnonSats, me?.privates?.tipDefault, me?.privates?.turboDefault])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user