import React, { ReactChild } from "react"; import { Typography } from "antd"; import { TextProps } from "antd/lib/typography/Text"; import { FieldProps } from "../../../interfaces"; const { Text } = Typography; function toLocaleStringSupportsOptions() { return !!( typeof Intl == "object" && Intl && typeof Intl.NumberFormat == "function" ); } export type NumberFieldProps = FieldProps & TextProps & { locale?: string | string[]; options?: Intl.NumberFormatOptions; }; /** * This field is used to display a number formatted according to the browser locale, right aligned. and uses {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl `Intl`} to display date format. * * @see {@link https://refine.dev/docs/api-references/components/fields/number} for more details. */ export const NumberField: React.FC = ({ value, locale, options, ...rest }) => { const number = parseFloat(value.toString()); return ( {toLocaleStringSupportsOptions() ? number.toLocaleString(locale, options) : number} ); };