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:
parent
97a0ae1eab
commit
8a168760f5
2 changed files with 43 additions and 14 deletions
|
@ -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}
|
||||
|
|
|
@ -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>
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue