diff options
Diffstat (limited to 'app/javascript/flavours/glitch/utils/react_helpers.js')
-rw-r--r-- | app/javascript/flavours/glitch/utils/react_helpers.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/utils/react_helpers.js b/app/javascript/flavours/glitch/utils/react_helpers.js new file mode 100644 index 000000000..ea11acdb6 --- /dev/null +++ b/app/javascript/flavours/glitch/utils/react_helpers.js @@ -0,0 +1,21 @@ +// This function binds the given `handlers` to the `target`. +export function assignHandlers (target, handlers) { + if (!target || !handlers) { + return; + } + + // We just bind each handler to the `target`. + const handle = target.handlers = {}; + Object.keys(handlers).forEach( + key => handle[key] = handlers[key].bind(target), + ); +} + +// This function only returns the component if the result of calling +// `test` with `data` is `true`. Useful with funciton binding. +export function conditionalRender (test, data, component) { + return test(data) ? component : null; +} + +// This object provides props to make the component not visible. +export const hiddenComponent = { style: { display: 'none' } }; |