import React, { useState } from "react"; import Box from "../Box/Box"; import BalanceInput from "./BalanceInput"; import TextFieldComp from "./TextField"; export default { title: "Components/BalanceInput", component: BalanceInput, argTypes: {}, }; export const Default: React.FC = () => { const [decimalValue, setDecimalValue] = useState(1.43333); const [numericValue, setNumericValue] = useState(5); const currencyValue = (input: number) => { return `~${(input * 1.3).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2, })} USD`; }; const handleDecimalChange = (input) => { setDecimalValue(input); }; const handleNumericChange = (input) => { setNumericValue(input); }; return ( ); }; export const UnitDisplay: React.FC = () => { const WAYA_PRICE = 69; const [wayaValue, setWayaValue] = useState("1006.086956"); const wayaToUSD = (input: string) => { const convertedToUSD = parseFloat(input) * WAYA_PRICE; return `~${convertedToUSD.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2, })} USD`; }; const handleWayaChange = (input: string) => { setWayaValue(input); }; return ( <> {/* Long token names with spaces */} ); }; export const SwitchUnits: React.FC = () => { const WAYA_PRICE = 69; const [editingUnit, setEditingUnit] = useState<"WAYA" | "USD">("WAYA"); const conversionUnit = editingUnit === "WAYA" ? "USD" : "WAYA"; const [values, setValues] = useState({ WAYA: "1006.086957", USD: `${1006.086957 * WAYA_PRICE}`, }); const currencyValue = !Number.isNaN(parseFloat(values[conversionUnit])) ? parseFloat(values[conversionUnit]).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2, }) : "0.00"; const switchEditingUnits = () => { const editingUnitAfterChange = editingUnit === "WAYA" ? "USD" : "WAYA"; // This is needed to persist same value as shown for currencyValue after switching // otherwise user will see lots of decimals const valuesAfterChange = { ...values }; valuesAfterChange[editingUnitAfterChange] = !Number.isNaN(parseFloat(values[conversionUnit])) ? parseFloat(values[conversionUnit]).toFixed(2) : "0.00"; setValues(valuesAfterChange); setEditingUnit(editingUnitAfterChange); }; const handleWayaChange = (input: string) => { const inputAsFloat = parseFloat(input); if (editingUnit === "WAYA") { setValues({ WAYA: input, USD: Number.isNaN(inputAsFloat) ? "" : `${inputAsFloat * WAYA_PRICE}`, }); } else { setValues({ WAYA: Number.isNaN(inputAsFloat) ? "" : `${inputAsFloat / WAYA_PRICE}`, USD: input, }); } }; return ( ); }; export const Textfield: React.FC = () => { const [value, setValue] = useState(""); return ( ); };