@@ -2,21 +2,20 @@ import React from 'react';
22import PropTypes from 'prop-types' ;
33import { QueryRenderer , graphql } from 'react-relay' ;
44
5- import { incrementCounter } from '../reporter-proxy' ;
6- import { RemotePropType , RemoteSetPropType , BranchSetPropType , RefresherPropType , EndpointPropType } from '../prop-types' ;
5+ import {
6+ RemotePropType , RemoteSetPropType , BranchSetPropType , RefresherPropType ,
7+ EndpointPropType , TokenPropType ,
8+ } from '../prop-types' ;
79import RelayNetworkLayerManager from '../relay-network-layer-manager' ;
8- import { UNAUTHENTICATED , INSUFFICIENT } from '../shared/keytar-strategy' ;
910import RemoteController from '../controllers/remote-controller' ;
10- import ObserveModel from '../views/observe-model' ;
1111import LoadingView from '../views/loading-view' ;
1212import QueryErrorView from '../views/query-error-view' ;
13- import GithubLoginView from '../views/github-login-view' ;
1413
1514export default class RemoteContainer extends React . Component {
1615 static propTypes = {
1716 // Connection
18- loginModel : PropTypes . object . isRequired ,
1917 endpoint : EndpointPropType . isRequired ,
18+ token : TokenPropType . isRequired ,
2019
2120 // Repository attributes
2221 refresher : RefresherPropType . isRequired ,
@@ -29,52 +28,13 @@ export default class RemoteContainer extends React.Component {
2928 aheadCount : PropTypes . number ,
3029
3130 // Action methods
31+ handleLogin : PropTypes . func . isRequired ,
32+ handleLogout : PropTypes . func . isRequired ,
3233 onPushBranch : PropTypes . func . isRequired ,
3334 }
3435
35- fetchToken = loginModel => {
36- return loginModel . getToken ( this . props . endpoint . getLoginAccount ( ) ) ;
37- }
38-
3936 render ( ) {
40- return (
41- < ObserveModel model = { this . props . loginModel } fetchData = { this . fetchToken } >
42- { this . renderWithToken }
43- </ ObserveModel >
44- ) ;
45- }
46-
47- renderWithToken = token => {
48- if ( token === null ) {
49- return < LoadingView /> ;
50- }
51-
52- if ( token instanceof Error ) {
53- return (
54- < QueryErrorView
55- error = { token }
56- retry = { this . handleTokenRetry }
57- login = { this . handleLogin }
58- logout = { this . handleLogout }
59- />
60- ) ;
61- }
62-
63- if ( token === UNAUTHENTICATED ) {
64- return < GithubLoginView onLogin = { this . handleLogin } /> ;
65- }
66-
67- if ( token === INSUFFICIENT ) {
68- return (
69- < GithubLoginView onLogin = { this . handleLogin } >
70- < p >
71- Your token no longer has sufficient authorizations. Please re-authenticate and generate a new one.
72- </ p >
73- </ GithubLoginView >
74- ) ;
75- }
76-
77- const environment = RelayNetworkLayerManager . getEnvironmentForHost ( this . props . endpoint , token ) ;
37+ const environment = RelayNetworkLayerManager . getEnvironmentForHost ( this . props . endpoint , this . props . token ) ;
7838 const query = graphql `
7939 query remoteContainerQuery($owner: String!, $name: String!) {
8040 repository(owner: $owner, name: $name) {
@@ -96,21 +56,21 @@ export default class RemoteContainer extends React.Component {
9656 environment = { environment }
9757 variables = { variables }
9858 query = { query }
99- render = { result => this . renderWithResult ( result , token ) }
59+ render = { this . renderWithResult }
10060 />
10161 ) ;
10262 }
10363
104- renderWithResult ( { error, props, retry} , token ) {
64+ renderWithResult = ( { error, props, retry} ) => {
10565 this . props . refresher . setRetryCallback ( this , retry ) ;
10666
10767 if ( error ) {
10868 return (
10969 < QueryErrorView
11070 error = { error }
111- login = { this . handleLogin }
71+ login = { this . props . handleLogin }
72+ logout = { this . props . handleLogout }
11273 retry = { retry }
113- logout = { this . handleLogout }
11474 />
11575 ) ;
11676 }
@@ -122,7 +82,7 @@ export default class RemoteContainer extends React.Component {
12282 return (
12383 < RemoteController
12484 endpoint = { this . props . endpoint }
125- token = { token }
85+ token = { this . props . token }
12686
12787 repository = { props . repository }
12888
@@ -139,16 +99,4 @@ export default class RemoteContainer extends React.Component {
13999 />
140100 ) ;
141101 }
142-
143- handleLogin = token => {
144- incrementCounter ( 'github-login' ) ;
145- this . props . loginModel . setToken ( this . props . endpoint . getLoginAccount ( ) , token ) ;
146- }
147-
148- handleLogout = ( ) => {
149- incrementCounter ( 'github-logout' ) ;
150- this . props . loginModel . removeToken ( this . props . endpoint . getLoginAccount ( ) ) ;
151- }
152-
153- handleTokenRetry = ( ) => this . props . loginModel . didUpdate ( ) ;
154102}
0 commit comments