UNPKG

@etsoo/smarterp-core

Version:
46 lines (45 loc) 1.92 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ButtonCultures = ButtonCultures; 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 ButtonCultures(props) { // App const app = (0, ICoreServiceApp_1.useRequiredAppContext)(); // Labels const labels = app.getLabels("clickToChoose", "cultures"); // Destruct const { inputName = "cultures", label = labels.cultures, labelEnd = labels.clickToChoose, ...rest } = props; const defaultCultures = [ "en", "zh-Hans", "zh-Hant", "fr", "de", "ja", "id", "es", "ru", "ar" ]; // Add application cultures, starting from the end for (let i = app.settings.cultures.length - 1; i >= 0; i--) { const c = app.settings.cultures[i]; if (!defaultCultures.includes(c.name)) defaultCultures.unshift(c.name); } defaultCultures.sort((a) => (app.culture.startsWith(a) ? -1 : 0)); // Load data const loadData = react_1.default.useCallback(async () => (await app.core.publicApi.getCultures(defaultCultures)) ?? [], []); return ((0, jsx_runtime_1.jsx)(materialui_1.ButtonPopupCheckbox, { inputName: inputName, label: label, labelFormatter: (data) => `${data.name === data.id ? data.englishName : data.name} (${data.id})`, labelEnd: labelEnd, labelField: "name", loadData: loadData, onAdd: async (ids) => { const data = await app.core.publicApi.getCultures(ids); if (data == null) return false; return data; }, ...rest })); }