src/frontend/components/ProductPrice/ProductPrice.tsx (22 lines of code) (raw):
// 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/Cypress';
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;