2021-03-16 14:15:16 -04:00
|
|
|
import React, {useEffect} from 'react';
|
2021-03-09 15:24:45 -05:00
|
|
|
import {useParams} from 'react-router-dom';
|
2021-03-16 14:15:16 -04:00
|
|
|
import {connect} from 'react-redux';
|
|
|
|
|
|
|
|
import {curators, managers} from './lib/redux-modules'
|
|
|
|
import {curatorFetcher, managerFetcher} from './lib/fetchers'
|
|
|
|
import Debug from './debug.jsx';
|
2021-03-09 15:24:45 -05:00
|
|
|
|
|
|
|
const StudioCurators = () => {
|
|
|
|
const {studioId} = useParams();
|
|
|
|
return (
|
|
|
|
<div>
|
2021-03-16 14:15:16 -04:00
|
|
|
<h3>Managers</h3>
|
|
|
|
<ManagerList studioId={studioId} />
|
|
|
|
<hr />
|
|
|
|
<h3>Curators</h3>
|
|
|
|
<CuratorList studioId={studioId} />
|
2021-03-09 15:24:45 -05:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
2021-03-16 14:15:16 -04:00
|
|
|
const MemberList = ({studioId, items, error, loading, moreToLoad, onLoadMore}) => {
|
|
|
|
useEffect(() => {
|
|
|
|
if (studioId && items.length === 0) onLoadMore(studioId, 0);
|
|
|
|
}, [studioId]);
|
|
|
|
|
|
|
|
return <React.Fragment>
|
|
|
|
{error && <Debug label="Error" data={error} />}
|
|
|
|
{items.map((item, index) =>
|
|
|
|
<Debug label="Member" data={item} key={index} />
|
|
|
|
)}
|
|
|
|
{loading ? <small>Loading...</small> : (
|
|
|
|
moreToLoad ?
|
|
|
|
<button onClick={() => onLoadMore(studioId, items.length)}>
|
|
|
|
Load more
|
|
|
|
</button> :
|
|
|
|
<small>No more to load</small>
|
|
|
|
)}
|
|
|
|
</React.Fragment>
|
|
|
|
};
|
|
|
|
|
|
|
|
const ManagerList = connect(
|
|
|
|
state => managers.selector(state),
|
|
|
|
dispatch => ({
|
|
|
|
onLoadMore: (studioId, offset) => dispatch(
|
|
|
|
managers.actions.loadMore(managerFetcher.bind(null, studioId, offset)))
|
|
|
|
})
|
|
|
|
)(MemberList);
|
|
|
|
|
|
|
|
const CuratorList = connect(
|
|
|
|
state => curators.selector(state),
|
|
|
|
dispatch => ({
|
|
|
|
onLoadMore: (studioId, offset) => dispatch(
|
|
|
|
curators.actions.loadMore(curatorFetcher.bind(null, studioId, offset)))
|
|
|
|
})
|
|
|
|
)(MemberList);
|
|
|
|
|
2021-03-09 15:24:45 -05:00
|
|
|
export default StudioCurators;
|