locize
Version:
This package adds the incontext editor to your i18next setup.
47 lines (42 loc) • 1.75 kB
JavaScript
;
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
var postMessage = require('./postMessage.js');
var store = require('../store.js');
var handleEditKey = require('./handleEditKey.js');
var highlightNode = require('../ui/highlightNode.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
function handler(payload) {
var updated = payload.updated;
updated.forEach(function (item) {
var lng = item.lng,
ns = item.ns,
key = item.key,
data = item.data,
metas = item.metas,
meta = item.meta;
if (meta && data.value) handleEditKey.setValueOnNode(meta, data.value);
if (metas) {
Object.values(metas).forEach(function (metaItem) {
handleEditKey.setValueOnNode(metaItem, data.value);
});
}
postMessage.api.i18n.setResource(lng, ns, key, data.value);
if (metas) {
Object.values(metas).forEach(function (m) {
var sItem = store.store.get(m.eleUniqueID);
highlightNode.recalcSelectedHighlight(sItem, sItem.node, sItem.keys);
});
}
});
Object.values(store.store.data).forEach(function (item) {
if (item.originalChildNodes) {
var _item$node;
(_item$node = item.node).replaceChildren.apply(_item$node, _toConsumableArray__default["default"](item.originalChildNodes));
}
});
postMessage.api.i18n.triggerRerender();
if (postMessage.api.locizeSavedHandler) postMessage.api.locizeSavedHandler(payload);
if (window.locizeSavedHandler) window.locizeSavedHandler(payload);
}
postMessage.api.addHandler('commitKeys', handler);