-
-
-
- {t(
- "price-list-edit-prices-modal-error-loading",
- "An error occurred while preparing the form. Reload the page and try again. If the issue persists, try again later."
- )}
-
+
- ) : (
-
-
-
-
- {product && (
+ ) : isError || isNotFound ? (
+
+
+
+
+ {t(
+ "price-list-edit-prices-modal-error-loading",
+ "An error occurred while preparing the form. Reload the page and try again. If the issue persists, try again later."
+ )}
+
+
+
+ ) : (
+
-
- )}
-
- )}
+ {product && (
+
+
+
+ )}
+
+ )}
+
diff --git a/packages/admin-ui/ui/src/domain/pricing/forms/price-list-prices-form/helpers.ts b/packages/admin-ui/ui/src/domain/pricing/forms/price-list-prices-form/helpers.ts
index e198eb3210..0aa6fc8cdb 100644
--- a/packages/admin-ui/ui/src/domain/pricing/forms/price-list-prices-form/helpers.ts
+++ b/packages/admin-ui/ui/src/domain/pricing/forms/price-list-prices-form/helpers.ts
@@ -20,7 +20,9 @@ export const getDefaultAmount = (code: string, amount?: number) => {
return null
}
- return amount / Math.pow(10, meta.decimal_digits)
+ const num = amount / Math.pow(10, meta.decimal_digits)
+
+ return parseFloat(num.toFixed(meta.decimal_digits))
}
export const getDbSafeAmount = (code: string, amount?: number) => {
@@ -38,5 +40,7 @@ export const getDbSafeAmount = (code: string, amount?: number) => {
return null
}
- return amount * Math.pow(10, meta.decimal_digits)
+ const num = amount * Math.pow(10, meta.decimal_digits)
+
+ return parseFloat(num.toFixed(0))
}
diff --git a/packages/admin-ui/ui/src/domain/pricing/forms/price-list-product-prices-form/price-list-product-prices-form.tsx b/packages/admin-ui/ui/src/domain/pricing/forms/price-list-product-prices-form/price-list-product-prices-form.tsx
index cce5be535f..5066e98b3e 100644
--- a/packages/admin-ui/ui/src/domain/pricing/forms/price-list-product-prices-form/price-list-product-prices-form.tsx
+++ b/packages/admin-ui/ui/src/domain/pricing/forms/price-list-product-prices-form/price-list-product-prices-form.tsx
@@ -1852,6 +1852,15 @@ const Cell = React.forwardRef
(
}
}, [isAnchor, onBlur, setIsEditing])
+ const onFocusInput = React.useCallback(() => {
+ inputRef.current?.focus()
+
+ inputRef.current?.setSelectionRange(
+ inputRef.current.value.length,
+ inputRef.current.value.length
+ )
+ }, [])
+
const onMouseDown = React.useCallback(
(e: React.MouseEvent) => {
e.stopPropagation()
@@ -1875,12 +1884,16 @@ const Cell = React.forwardRef(
if (e.detail === 2) {
setIsActive(true)
setIsEditing(true)
+
+ onFocusInput()
+
+ return
}
}
onCellMouseDown(e)
},
- [onCellMouseDown, setIsEditing, isAnchor, isActive]
+ [onCellMouseDown, setIsEditing, onFocusInput, isAnchor, isActive]
)
const onEnter = React.useCallback(
@@ -1897,9 +1910,9 @@ const Cell = React.forwardRef(
setIsActive(true)
setIsEditing(true)
- inputRef.current?.focus()
+ onFocusInput()
},
- [isAnchor, isActive, onNextRow, setIsEditing]
+ [isAnchor, isActive, onNextRow, setIsEditing, onFocusInput]
)
const onSpace = React.useCallback(
@@ -2006,8 +2019,12 @@ const Cell = React.forwardRef(
inputRef.current?.focus()
setIsActive(false)
+
+ onBlur()
+
+ return
},
- [isActive]
+ [isActive, onBlur]
)
const onKeydown = React.useCallback(
@@ -2045,7 +2062,7 @@ const Cell = React.forwardRef(
const onActiveAwareBlur = React.useCallback(() => {
if (isActive) {
- return
+ setIsActive(false)
}
onBlur()
diff --git a/yarn.lock b/yarn.lock
index 4c7f9fab3f..d2a62bede9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6311,7 +6311,7 @@ __metadata:
i18next-parser: ^8.0.0
jest: 25.5.4
md5: ^2.3.0
- medusa-react: ^9.0.8
+ medusa-react: ^9.0.9
mini-css-extract-plugin: ^2.7.6
moment: ^2.29.4
path-browserify: ^1.0.1
@@ -32499,7 +32499,7 @@ __metadata:
languageName: unknown
linkType: soft
-"medusa-react@^9.0.6, medusa-react@^9.0.8, medusa-react@workspace:packages/medusa-react":
+"medusa-react@^9.0.6, medusa-react@^9.0.9, medusa-react@workspace:packages/medusa-react":
version: 0.0.0-use.local
resolution: "medusa-react@workspace:packages/medusa-react"
dependencies: