@appbuckets/react-ui
Version:
Just Another React UI Framework
147 lines (140 loc) • 3.88 kB
JavaScript
;
var React = require('react');
var clsx = require('clsx');
var RxTable_context = require('../RxTable.context.js');
function _interopDefaultLegacy(e) {
return e && typeof e === 'object' && 'default' in e ? e : { default: e };
}
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(
n,
k,
d.get
? d
: {
enumerable: true,
get: function () {
return e[k];
},
}
);
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/ _interopNamespace(React);
var clsx__default = /*#__PURE__*/ _interopDefaultLegacy(clsx);
/* --------
* Component Definition
* -------- */
var StateDependentBodyRow = function (props) {
var Content = props.Content;
// ----
// Get Context Props
// ----
var _a = RxTable_context.useRxTable(),
classes = _a.classes,
Components = _a.Components,
columns = _a.columns,
data = _a.data,
dataState = _a.dataState,
tableData = _a.tableData,
styles = _a.styles;
// ----
// Row Render while Data is still Loading
// ----
if (dataState.isLoading) {
return React__namespace.createElement(
Components.LoaderRow,
{
className: clsx__default['default']('loading-row', classes.LoaderRow),
style: styles.LoaderRow,
},
React__namespace.createElement(
Components.LoaderCell,
{
colSpan: columns.current.length,
className: clsx__default['default'](
'loading-cell',
classes.LoaderCell
),
style: styles.LoaderCell,
},
React__namespace.createElement(Components.Loader, {
className: classes.Loader,
style: styles.Loader,
})
)
);
}
// ----
// Row Render while Data Load produce an Error
// ----
if (dataState.error) {
return React__namespace.createElement(
Components.ErrorRow,
{
className: clsx__default['default']('error-row', classes.ErrorRow),
style: styles.ErrorRow,
},
React__namespace.createElement(
Components.ErrorCell,
{
colSpan: columns.current.length,
className: clsx__default['default']('error-cell', classes.ErrorCell),
style: styles.ErrorCell,
},
React__namespace.createElement(Components.Error, {
className: classes.Error,
style: styles.Error,
})
)
);
}
// ----
// Row Render while no Data is being able to be show
// ----
if (!tableData.length) {
return React__namespace.createElement(
Components.NoContentRow,
{
className: clsx__default['default'](
'no-content-row',
classes.NoContentRow
),
style: styles.NoContentCell,
},
React__namespace.createElement(
Components.NoContentCell,
{
colSpan: columns.current.length,
className: clsx__default['default'](
'no-content-cell',
classes.NoContentCell
),
style: styles.NoContentCell,
},
React__namespace.createElement(Components.NoContent, {
className: classes.NoContent,
hasData: !!data.length,
hasFilteredData: !!tableData.length,
style: styles.NoContent,
})
)
);
}
// ----
// Render Default Content
// ----
return Content ? React__namespace.createElement(Content, null) : null;
};
StateDependentBodyRow.displayName = 'StateDependentBodyRow';
module.exports = StateDependentBodyRow;