* fix: corrected typos explaination -> explanation Critera -> Criteria addtional -> additional arbitary -> arbitrary penging -> pending downladFiles -> downloadFiles isLoadeed -> isLoaded selectror -> selector commnents -> comments stirng -> string isGragrding -> isGrading queu -> queue seleted -> selected feecback -> feedback * feat: Persian language (fa_IR) added * chore: Persian translations added * chore: sort language codes alphabetically * chore: camelCase variable used for translated messages * chore: deprecated styling updated --------- Co-authored-by: Leangseu Kim <lkim@edx.org>
20 lines
589 B
JavaScript
20 lines
589 B
JavaScript
/**
|
|
* Simple selector factory.
|
|
* Takes a list of string keys, and returns a simple selector for each.
|
|
*
|
|
* @function
|
|
* @param {Object|string[]} keys - If passed as object, Object.keys(keys) is used.
|
|
* @return {Object} - object of `{[key]: ({key}) => key}`
|
|
*/
|
|
const simpleSelectorFactory = (transformer, keys) => {
|
|
const selKeys = Array.isArray(keys) ? keys : Object.keys(keys);
|
|
return selKeys.reduce(
|
|
(obj, key) => ({
|
|
...obj, [key]: (state) => transformer(state)[key],
|
|
}),
|
|
{ root: (state) => transformer(state) },
|
|
);
|
|
};
|
|
|
|
export default simpleSelectorFactory;
|