%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/vendor/cakedc/mixer/src/React/components/FetchData/ |
Upload File : |
import React, { Component } from 'react'
import { connect } from 'react-redux'
import { Loader } from '../Loader'
import { fetchDataIfNeeded } from './actions'
class FetchData extends Component {
componentDidMount() {
const { dispatch, query, namespace } = this.props
dispatch(fetchDataIfNeeded(namespace, query))
}
componentDidUpdate(prevProps) {
if (this.props.query !== prevProps.query) {
const { dispatch, query, namespace } = this.props
dispatch(fetchDataIfNeeded(namespace, query))
}
}
render() {
const { data, isFetching } = this.props
return (
<div className="clearfix">
{isFetching && data === null &&
<div className="box box-default box-empty">
<div className="box-body" />
<Loader />
</div>
}
{!isFetching && (data === null || data.length === 0) &&
<div className="alert alert-warning">Nothing found on your request</div>
}
{data !== null &&
React.Children.map(this.props.children, (child) => React.cloneElement(child, { data, isFetching }))
}
</div>
);
}
}
function mapStateToProps(state, ownProps) {
const { query, namespace } = ownProps || {
query: ''
}
const { isFetching, data } = state[namespace] || {
isFetching: false,
data: null
}
return { query, data, isFetching }
}
export default connect(mapStateToProps)(FetchData)