diff --git a/src/components/Currencies/CurrencySelect.js b/src/components/Currencies/CurrencySelect.js new file mode 100644 index 000000000..c5557ff33 --- /dev/null +++ b/src/components/Currencies/CurrencySelect.js @@ -0,0 +1,76 @@ +import React from 'react'; +import intl from 'react-intl-universal'; + +import { MenuItem, Button } from '@blueprintjs/core'; +import { FSelect } from '../Forms'; + +/** + * + * @param {*} query + * @param {*} currency + * @param {*} _index + * @param {*} exactMatch + * @returns + */ +const currencyItemPredicate = (query, currency, _index, exactMatch) => { + const normalizedTitle = currency.currency_code.toLowerCase(); + const normalizedQuery = query.toLowerCase(); + + if (exactMatch) { + return normalizedTitle === normalizedQuery; + } else { + return ( + `${currency.currency_code}. ${normalizedTitle}`.indexOf( + normalizedQuery, + ) >= 0 + ); + } +}; + +/** + * @param {*} currency + * @returns + */ +const currencyItemRenderer = (currency, { handleClick, modifiers, query }) => { + return ( + + ); +}; + +const currencySelectProps = { + itemPredicate: currencyItemPredicate, + itemRenderer: currencyItemRenderer, + valueAccessor: 'currency_code', + labelAccessor: 'currency_code', +}; + +/** + * + * @param {*} currencies + * @returns + */ +export function CurrencySelect({ currencies, ...rest }) { + return ( + + ); +} + +/** + * @param {*} label + * @returns + */ +function CurrnecySelectButton({ label }) { + return