@kineticdata/react
Version:
A React library for the Kinetic Platform
107 lines (106 loc) • 2.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.EntryTable = void 0;
var _Table = require("../../table/Table");
var _apis = require("../../../apis");
var _helpers = require("../../../helpers");
var _immutable = require("immutable");
var clientSide = (0, _helpers.defineFilter)(true).startsWith('locale', 'locale').startsWith('context', 'context').startsWith('key', 'key').end();
var dataSource = function dataSource(_ref) {
var shared = _ref.shared,
staged = _ref.staged,
locale = _ref.locale,
keyHash = _ref.keyHash,
context = _ref.context;
return {
fn: staged ? _apis.fetchStagedTranslations : _apis.fetchTranslations,
clientSide: clientSide,
params: function params(paramData) {
return [{
localeCode: locale && locale,
keyHash: keyHash && keyHash,
contextName: shared ? 'shared' : context ? context : null,
include: 'authorization,details'
}];
},
transform: function transform(result) {
return {
data: staged ? result.changes : result.entries,
nextPageToken: result.nextPageToken
};
}
};
};
var filterDataSources = function filterDataSources() {
return {
locales: {
fn: _apis.fetchEnabledLocales,
params: function params() {
return [{
include: 'details'
}];
},
transform: function transform(result) {
return result.locales;
}
}
};
};
var filters = function filters() {
return function (_ref2) {
var locales = _ref2.locales;
return [{
name: 'locale',
label: 'Locale',
type: 'select',
options: function options(_ref3) {
var locales = _ref3.locales;
return locales && locales.map(function (loc) {
return (0, _immutable.Map)({
value: loc.get('code'),
label: loc.get('code')
});
});
}
}, {
name: 'context',
label: 'Context',
type: 'text'
}, {
name: 'key',
label: 'Key',
type: 'text'
}];
};
};
var columns = [{
value: 'locale',
title: 'Locale',
sortable: true
}, {
value: 'context',
title: 'Context',
sortable: true
}, {
value: 'key',
title: 'Key',
sortable: true
}, {
value: 'value',
title: 'Translation',
sortable: true
}, {
value: 'valueStaged',
title: 'New Translation',
sortable: true
}];
var EntryTable = exports.EntryTable = (0, _Table.generateTable)({
tableOptions: ['staged', 'shared', 'locale', 'keyHash', 'context'],
columns: columns,
filters: filters,
dataSource: dataSource,
filterDataSources: filterDataSources
});
EntryTable.displayName = 'EntryTable';