UNPKG

@etsoo/smarterp-core

Version:

TypeScript APIs for SmartERP Core

44 lines (43 loc) 1.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ButtonRadioRegions = ButtonRadioRegions; 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")); const CoreUtils_1 = require("../../CoreUtils"); function ButtonRadioRegions(props) { // App const app = (0, ICoreServiceApp_1.useRequiredAppContext)(); // Labels const labels = app.getLabels("clickToChoose", "region"); // Destruct const { inputName = "region", label = labels.region, labelEnd = labels.clickToChoose, ...rest } = props; const defaultRegions = [ "CN", "US", "GB", "IE", "CA", "AU", "NZ", "DE", "FR", "JP", "SG", "HK" ]; // Add application regions, starting from the end CoreUtils_1.CoreUtils.mergeArray(defaultRegions, app.settings.regions); // Load data const loadData = react_1.default.useCallback(async () => (await app.core.publicApi.getRegions(defaultRegions)) ?? [], []); return ((0, jsx_runtime_1.jsx)(materialui_1.ButtonPopupRadio, { 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.getRegions(ids); if (data == null) return false; return data; }, ...rest })); }