fix: spdv-1007 cost values correcting (#234)

* fix: spdv-1007

* refactor: spdv-1007

* refactor: spdv-1007
This commit is contained in:
rolandlor
2026-03-20 14:51:47 +01:00
committed by Bálint Ujvári
parent e0280ead14
commit a7e42053ae
@@ -11,7 +11,7 @@ import {
} from '@ethersphere/bee-js' } from '@ethersphere/bee-js'
import { Warning } from '@mui/icons-material' import { Warning } from '@mui/icons-material'
import { DriveInfo } from '@solarpunkltd/file-manager-lib' import { DriveInfo } from '@solarpunkltd/file-manager-lib'
import { ReactElement, useCallback, useContext, useEffect, useRef, useState } from 'react' import { ReactElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'
import { createPortal } from 'react-dom' import { createPortal } from 'react-dom'
import CalendarIcon from 'remixicon-react/CalendarLineIcon' import CalendarIcon from 'remixicon-react/CalendarLineIcon'
import DatabaseIcon from 'remixicon-react/Database2LineIcon' import DatabaseIcon from 'remixicon-react/Database2LineIcon'
@@ -62,7 +62,10 @@ export function UpgradeDriveModal({
const [capacityIndex, setCapacityIndex] = useState(0) const [capacityIndex, setCapacityIndex] = useState(0)
const [durationExtensionCost, setDurationExtensionCost] = useState('') const [durationExtensionCost, setDurationExtensionCost] = useState('')
const [lifetimeIndex, setLifetimeIndex] = useState(0) const [lifetimeIndex, setLifetimeIndex] = useState(0)
const [validityEndDate, setValidityEndDate] = useState(new Date()) const validityEndDate = useMemo(
() => getExpiryDateByLifetime(lifetimeIndex, stamp.duration.toEndDate()),
[lifetimeIndex, stamp.duration],
)
const [sizeMarks, setSizeMarks] = useState<{ value: number; label: string }[]>([]) const [sizeMarks, setSizeMarks] = useState<{ value: number; label: string }[]>([])
const [extensionCost, setExtensionCost] = useState('0') const [extensionCost, setExtensionCost] = useState('0')
const [isSubmitting, setIsSubmitting] = useState(false) const [isSubmitting, setIsSubmitting] = useState(false)
@@ -113,7 +116,6 @@ export function UpgradeDriveModal({
encryption: boolean, encryption: boolean,
erasureCodeLevel: RedundancyLevel, erasureCodeLevel: RedundancyLevel,
isCapacityExtensionSet: boolean, isCapacityExtensionSet: boolean,
isDurationExtensionSet: boolean,
) => { ) => {
let cost: BZZ | undefined let cost: BZZ | undefined
@@ -136,26 +138,15 @@ export function UpgradeDriveModal({
setIsBalanceSufficient(true) setIsBalanceSufficient(true)
} }
const bothExtensions = isCapacityExtensionSet && isDurationExtensionSet if (isCapacityExtensionSet) {
const capacityOnly = isCapacityExtensionSet && !isDurationExtensionSet
const durationOnly = !isCapacityExtensionSet && isDurationExtensionSet
const noExtensions = !isCapacityExtensionSet && !isDurationExtensionSet
if (bothExtensions) {
setCapacityExtensionCost('') setCapacityExtensionCost('')
setDurationExtensionCost('') setDurationExtensionCost('')
} else if (capacityOnly) {
setCapacityExtensionCost(costText)
setDurationExtensionCost('0')
} else if (durationOnly) {
setCapacityExtensionCost('0')
setDurationExtensionCost(costText)
} else { } else {
setCapacityExtensionCost('0') setCapacityExtensionCost('0')
setDurationExtensionCost('0') setDurationExtensionCost(costText)
} }
setExtensionCost(noExtensions ? '0' : costText) setExtensionCost(costText)
}, },
[beeApi, walletBalance, isMountedRef, setErrorMessage, setShowError], [beeApi, walletBalance, isMountedRef, setErrorMessage, setShowError],
) )
@@ -193,9 +184,7 @@ export function UpgradeDriveModal({
useEffect(() => { useEffect(() => {
const fetchExtensionCost = () => { const fetchExtensionCost = () => {
const isCapacitySet = capacityIndex > 0 const isCapacitySet = capacityIndex > 0
const isDurationSet = lifetimeIndex >= 0 const extendDuration = Duration.fromEndDate(validityEndDate, stamp.duration.toEndDate())
const extendDuration =
lifetimeIndex >= 0 ? Duration.fromEndDate(validityEndDate, stamp.duration.toEndDate()) : Duration.ZERO
handleCostCalculation( handleCostCalculation(
stamp.batchID, stamp.batchID,
@@ -205,16 +194,11 @@ export function UpgradeDriveModal({
false, false,
defaultErasureCodeLevel, defaultErasureCodeLevel,
isCapacitySet, isCapacitySet,
isDurationSet,
) )
} }
fetchExtensionCost() fetchExtensionCost()
}, [capacity, validityEndDate, capacityIndex, handleCostCalculation, lifetimeIndex, stamp.batchID, stamp.duration]) }, [capacity, validityEndDate, capacityIndex, handleCostCalculation, stamp.batchID, stamp.duration])
useEffect(() => {
setValidityEndDate(getExpiryDateByLifetime(lifetimeIndex, stamp.duration.toEndDate()))
}, [lifetimeIndex, stamp.duration])
const batchIdStr = stamp.batchID.toString() const batchIdStr = stamp.batchID.toString()
const shortBatchId = batchIdStr.length > 12 ? `${batchIdStr.slice(0, 4)}...${batchIdStr.slice(-4)}` : batchIdStr const shortBatchId = batchIdStr.length > 12 ? `${batchIdStr.slice(0, 4)}...${batchIdStr.slice(-4)}` : batchIdStr