Restrict to buying 1 slot at a time
This commit is contained in:
parent
ee3102d092
commit
68fb5b578c
|
@ -84,6 +84,7 @@ export function Manaboard(props: {
|
||||||
holder={user}
|
holder={user}
|
||||||
value={values[index]}
|
value={values[index]}
|
||||||
createdTime={createdTimes[index]}
|
createdTime={createdTimes[index]}
|
||||||
|
allSlots={users}
|
||||||
/>
|
/>
|
||||||
</Row>
|
</Row>
|
||||||
</td>
|
</td>
|
||||||
|
@ -114,8 +115,9 @@ export function BuySlotModal(props: {
|
||||||
slot: number
|
slot: number
|
||||||
value: number
|
value: number
|
||||||
createdTime: number
|
createdTime: number
|
||||||
|
allSlots: User[]
|
||||||
}) {
|
}) {
|
||||||
const { slot, title, holder, value, createdTime } = props
|
const { slot, allSlots, holder, value, createdTime } = props
|
||||||
const user = useUser()
|
const user = useUser()
|
||||||
|
|
||||||
const [open, setOpen] = useState(false)
|
const [open, setOpen] = useState(false)
|
||||||
|
@ -133,6 +135,14 @@ export function BuySlotModal(props: {
|
||||||
// await buyLeaderboardSlot({ slotId, reassessValue: newValue })
|
// await buyLeaderboardSlot({ slotId, reassessValue: newValue })
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// If the user already exists in a different slot, forbid them from buying this one
|
||||||
|
const userExists = allSlots.find(
|
||||||
|
(u, index) => u.id === user?.id && index + 1 !== slot
|
||||||
|
)
|
||||||
|
const errorMsg = userExists
|
||||||
|
? 'Sell your other slot first (by revaluing it to M$ 0)'
|
||||||
|
: ''
|
||||||
|
|
||||||
async function onBuy() {
|
async function onBuy() {
|
||||||
if (user) {
|
if (user) {
|
||||||
// Start transactions, but don't block
|
// Start transactions, but don't block
|
||||||
|
@ -187,7 +197,7 @@ export function BuySlotModal(props: {
|
||||||
onChange={(amount) =>
|
onChange={(amount) =>
|
||||||
setNewValue(amount && amount >= 1 ? amount : 0)
|
setNewValue(amount && amount >= 1 ? amount : 0)
|
||||||
}
|
}
|
||||||
error=""
|
error={errorMsg}
|
||||||
label={ENV_CONFIG.moneyMoniker}
|
label={ENV_CONFIG.moneyMoniker}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -200,7 +210,11 @@ export function BuySlotModal(props: {
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<Col>
|
<Col>
|
||||||
<button className="btn btn-primary" onClick={onBuy}>
|
<button
|
||||||
|
className="btn btn-primary"
|
||||||
|
onClick={onBuy}
|
||||||
|
disabled={!!errorMsg}
|
||||||
|
>
|
||||||
Buy Slot ({formatMoney(value)})
|
Buy Slot ({formatMoney(value)})
|
||||||
</button>
|
</button>
|
||||||
<div className="mt-2 text-sm">
|
<div className="mt-2 text-sm">
|
||||||
|
|
|
@ -156,7 +156,7 @@ export default function Manaboards(props: {
|
||||||
// If new value is 0, that's a sell; reset to topTrader
|
// If new value is 0, that's a sell; reset to topTrader
|
||||||
if (data.newValue === 0) {
|
if (data.newValue === 0) {
|
||||||
slots[slot - 1] = topTraders[slot - 1]
|
slots[slot - 1] = topTraders[slot - 1]
|
||||||
values[slot - 1] = slot
|
values[slot - 1] = 50 - slot
|
||||||
createdTimes[slot - 1] = 0
|
createdTimes[slot - 1] = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user