@etsoo/smarterp-core
Version:
TypeScript APIs for SmartERP Core
40 lines (39 loc) • 1.63 kB
JavaScript
;
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 }));
}