0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-01-27 22:59:51 -05:00

chore: use context api to pass down props

This commit is contained in:
Juan Picado @jotadeveloper 2019-01-13 14:27:45 +01:00
parent 97a0ae1eab
commit 8a168760f5
No known key found for this signature in database
GPG key ID: 18AC54485952D158
2 changed files with 43 additions and 14 deletions

View file

@ -16,6 +16,11 @@ import './styles/typeface-roboto.scss';
import './styles/main.scss';
import 'normalize.css';
export const AppContext = React.createContext();
export const AppContextProvider = AppContext.Provider;
export const AppContextConsumer = AppContext.Consumer;
export default class App extends Component {
state = {
error: {},
@ -145,11 +150,10 @@ export default class App extends Component {
<Loading />
) : (
<Fragment>
{this.renderHeader()}
<Content>
<Route isUserLoggedIn={isUserLoggedIn} packages={packages} />
</Content>
<Footer />
<AppContextProvider value={{isUserLoggedIn, packages}}>
{this.renderHeader()}
{this.renderContent()}
</AppContextProvider>
</Fragment>
)}
{this.renderLoginModal()}
@ -170,8 +174,20 @@ export default class App extends Component {
);
}
renderContent = () => {
return (
<Fragment>
<Content>
<Route></Route>
</Content>
<Footer />
</Fragment>
);
}
renderHeader = () => {
const { logoUrl, user, scope } = this.state;
return (
<Header
logo={logoUrl}

View file

@ -5,6 +5,7 @@
import React, { Component } from 'react';
import { HashRouter as Router, Route, Switch } from 'react-router-dom';
import { AppContextConsumer } from './app';
import { asyncComponent } from './utils/asyncComponent';
@ -35,21 +36,33 @@ class RouterApp extends Component<IProps, IState> {
}
renderHomePage = () => {
const { isUserLoggedIn, packages } = this.props;
return <HomePage isUserLoggedIn={isUserLoggedIn} packages={packages} />;
return (
<AppContextConsumer>
{function renderConsumerVersionPage({ isUserLoggedIn, packages }) {
return <HomePage isUserLoggedIn={isUserLoggedIn} packages={packages} />;
}}
</AppContextConsumer>
);
};
renderDetailPage = (routerProps: any) => {
const { isUserLoggedIn } = this.props;
return <DetailPackage {...routerProps} isUserLoggedIn={isUserLoggedIn} />;
return (
<AppContextConsumer>
{function renderConsumerVersionPage({ isUserLoggedIn }) {
return <DetailPackage {...routerProps} isUserLoggedIn={isUserLoggedIn} />;
}}
</AppContextConsumer>
);
};
renderVersionPage = (routerProps: any) => {
const { isUserLoggedIn } = this.props;
return <VersionPackage {...routerProps} isUserLoggedIn={isUserLoggedIn} />;
return (
<AppContextConsumer>
{function renderConsumerVersionPage({ isUserLoggedIn }) {
return <VersionPackage {...routerProps} isUserLoggedIn={isUserLoggedIn} />;
}}
</AppContextConsumer>
);
};
}