Update context api

This commit is contained in:
soupette 2019-09-16 12:23:52 +02:00
parent 0592f5a32e
commit 62862f07c5
4 changed files with 63 additions and 48 deletions

View File

@ -17,7 +17,7 @@ MarketPlaceContextProvider.defaultProps = {};
MarketPlaceContextProvider.propTypes = {
children: PropTypes.node.isRequired,
dowloadPlugin: PropTypes.func.isRequired,
downloadPlugin: PropTypes.func.isRequired,
};
export {

View File

@ -11,11 +11,14 @@ import { CopyToClipboard } from 'react-copy-to-clipboard';
import moment from 'moment';
import { IcoContainer, PopUpWarning } from 'strapi-helper-plugin';
import { HomePageContext } from '../../contexts/HomePage';
import FileIcon from '../FileIcon';
import { StyledLi, Truncate, Wrapper, Checked } from './components';
/* eslint-disable react/no-string-refs */
class Li extends React.Component {
static contextType = HomePageContext;
state = { isOpen: false, copied: false };
componentDidUpdate(prevProps, prevState) {
@ -159,10 +162,6 @@ class Li extends React.Component {
}
}
Li.contextTypes = {
deleteData: PropTypes.func.isRequired,
};
Li.defaultProps = {
item: {
type: 'pdf',

View File

@ -20,6 +20,7 @@ import {
} from 'strapi-helper-plugin';
import pluginId from '../../pluginId';
import { HomePageContextProvider } from '../../contexts/HomePage';
// Plugin's component
import EntriesNumber from '../../components/EntriesNumber';
@ -40,10 +41,6 @@ import reducer from './reducer';
import saga from './saga';
export class HomePage extends React.Component {
getChildContext = () => ({
deleteData: this.props.deleteData,
});
UNSAFE_componentWillMount() {
if (!isEmpty(this.props.location.search)) {
const _page = parseInt(this.getURLParams('_page'), 10);
@ -112,26 +109,27 @@ export class HomePage extends React.Component {
render() {
return (
<ContainerFluid>
<Wrapper>
<PluginHeader
title={{
id: 'upload.HomePage.title',
}}
description={{
id: 'upload.HomePage.description',
}}
overrideRendering={this.renderInputSearch}
<HomePageContextProvider deleteData={this.props.deleteData}>
<ContainerFluid>
<Wrapper>
<PluginHeader
title={{
id: 'upload.HomePage.title',
}}
description={{
id: 'upload.HomePage.description',
}}
overrideRendering={this.renderInputSearch}
/>
</Wrapper>
<PluginInputFile
name="files"
onDrop={this.props.onDrop}
showLoader={this.props.uploadFilesLoading}
/>
</Wrapper>
<PluginInputFile
name="files"
onDrop={this.props.onDrop}
showLoader={this.props.uploadFilesLoading}
/>
<EntriesWrapper>
<div>
{/* NOTE: Prepare for bulk actions}
<EntriesWrapper>
<div>
{/* NOTE: Prepare for bulk actions}
<InputSelect
name="bulkAction"
onChange={() => console.log('change')}
@ -139,31 +137,28 @@ export class HomePage extends React.Component {
style={{ minWidth: '200px', height: '32px', marginTop: '-8px' }}
/>
*/}
</div>
<EntriesNumber number={this.props.entriesNumber} />
</EntriesWrapper>
<List
data={this.props.uploadedFiles}
changeSort={this.changeSort}
sort={this.props.params._sort}
/>
<div className="col-md-12">
<PageFooter
count={this.props.entriesNumber}
context={{ emitEvent: () => {} }}
onChangeParams={this.handleChangeParams}
params={this.props.params}
</div>
<EntriesNumber number={this.props.entriesNumber} />
</EntriesWrapper>
<List
data={this.props.uploadedFiles}
changeSort={this.changeSort}
sort={this.props.params._sort}
/>
</div>
</ContainerFluid>
<div className="col-md-12">
<PageFooter
count={this.props.entriesNumber}
context={{ emitEvent: () => {} }}
onChangeParams={this.handleChangeParams}
params={this.props.params}
/>
</div>
</ContainerFluid>
</HomePageContextProvider>
);
}
}
HomePage.childContextTypes = {
deleteData: PropTypes.func.isRequired,
};
HomePage.defaultProps = {
params: {
_limit: 10,

View File

@ -0,0 +1,21 @@
import React, { createContext, useContext } from 'react';
import PropTypes from 'prop-types';
const HomePageContext = createContext({});
const HomePageContextProvider = ({ children, ...rest }) => {
return (
<HomePageContext.Provider value={rest}>{children}</HomePageContext.Provider>
);
};
const useHomePageContext = () => useContext(HomePageContext);
HomePageContextProvider.defaultProps = {};
HomePageContextProvider.propTypes = {
children: PropTypes.node.isRequired,
deleteData: PropTypes.func.isRequired,
};
export { HomePageContext, HomePageContextProvider, useHomePageContext };