diff options
| author | Saumit <justsaumit@protonmail.com> | 2025-09-27 02:14:26 +0530 |
|---|---|---|
| committer | Saumit <justsaumit@protonmail.com> | 2025-09-27 02:14:26 +0530 |
| commit | 82e03978b89938219958032efb1448cc76baa181 (patch) | |
| tree | 626f3e54d52ecd49be0ed3bee30abacc0453d081 /src/frontend/components/ProductPrice/ProductPrice.tsx | |
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'src/frontend/components/ProductPrice/ProductPrice.tsx')
| -rw-r--r-- | src/frontend/components/ProductPrice/ProductPrice.tsx | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/frontend/components/ProductPrice/ProductPrice.tsx b/src/frontend/components/ProductPrice/ProductPrice.tsx new file mode 100644 index 0000000..8dc352a --- /dev/null +++ b/src/frontend/components/ProductPrice/ProductPrice.tsx @@ -0,0 +1,31 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +import { useMemo } from 'react'; +import getSymbolFromCurrency from 'currency-symbol-map'; +import { Money } from '../../protos/demo'; +import { useCurrency } from '../../providers/Currency.provider'; +import { CypressFields } from '../../utils/enums/CypressFields'; + +interface IProps { + price: Money; +} + +const ProductPrice = ({ price: { units, currencyCode, nanos } }: IProps) => { + const { selectedCurrency } = useCurrency(); + + const currencySymbol = useMemo( + () => getSymbolFromCurrency(currencyCode) || selectedCurrency, + [currencyCode, selectedCurrency] + ); + + const total = units + nanos / 1000000000; + + return ( + <span data-cy={CypressFields.ProductPrice}> + {currencySymbol} {total.toFixed(2)} + </span> + ); +}; + +export default ProductPrice; |
