UNPKG

@etsoo/smarterp-core

Version:
40 lines (39 loc) 1.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ButtonCurrencies = ButtonCurrencies; const jsx_runtime_1 = require("react/jsx-runtime"); const materialui_1 = require("@etsoo/materialui"); const ICoreServiceApp_1 = require("../../ICoreServiceApp"); const react_1 = __importDefault(require("react")); function ButtonCurrencies(props) { // App const app = (0, ICoreServiceApp_1.useRequiredAppContext)(); // Labels const labels = app.getLabels("clickToChoose", "currencies"); // Destruct const { inputName = "currencies", label = labels.currencies, labelEnd = labels.clickToChoose, ...rest } = props; const defaultCurrencies = [ "USD", "CNY", "EUR", "GBP", "JPY", "AUD", "CAD", "SGD", "HKD", "NZD" ]; defaultCurrencies.sort((a) => (a.startsWith(app.region) ? -1 : 0)); // Load data const loadData = react_1.default.useCallback(async () => (await app.core.publicApi.getCurrencies(defaultCurrencies)) ?? [], []); return ((0, jsx_runtime_1.jsx)(materialui_1.ButtonPopupCheckbox, { inputName: inputName, label: label, labelFormatter: (data) => `${data.name} (${data.id})`, labelEnd: labelEnd, labelField: "name", loadData: loadData, onAdd: async (ids) => { const data = await app.core.publicApi.getCurrencies(ids); if (data == null) return false; return data; }, ...rest })); }