mirror of
https://github.com/ascribe/onion.git
synced 2024-12-23 09:50:31 +01:00
9559bc09b4
The disabling only happens when the piece list is fetched, which may not happen immediately in some cases (ie. logged in user goes straight to another person’s edition first). We’re not able to fetch the piece list immediately, as some white labels apply default filters on the piece list which forces them to wait until they can begin fetching their piece lists.
251 lines
12 KiB
JavaScript
251 lines
12 KiB
JavaScript
'use strict';
|
|
|
|
import React from 'react';
|
|
import { Route, IndexRoute } from 'react-router';
|
|
|
|
// general components
|
|
import CoaVerifyContainer from '../../../components/coa_verify_container';
|
|
import LoginContainer from '../../../components/login_container';
|
|
import LogoutContainer from '../../../components/logout_container';
|
|
import SignupContainer from '../../../components/signup_container';
|
|
import PasswordResetContainer from '../../../components/password_reset_container';
|
|
import PieceList from '../../../components/piece_list';
|
|
import PieceContainer from '../../../components/ascribe_detail/piece_container';
|
|
import EditionContainer from '../../../components/ascribe_detail/edition_container';
|
|
import SettingsContainer from '../../../components/ascribe_settings/settings_container';
|
|
import ContractSettings from '../../../components/ascribe_settings/contract_settings';
|
|
import ErrorNotFoundPage from '../../../components/error_not_found_page';
|
|
|
|
import CCRegisterPiece from './components/cc/cc_register_piece';
|
|
|
|
import CylandLanding from './components/cyland/cyland_landing';
|
|
import CylandPieceContainer from './components/cyland/cyland_detail/cyland_piece_container';
|
|
import CylandRegisterPiece from './components/cyland/cyland_register_piece';
|
|
import CylandPieceList from './components/cyland/cyland_piece_list';
|
|
|
|
import IkonotvLanding from './components/ikonotv/ikonotv_landing';
|
|
import IkonotvPieceList from './components/ikonotv/ikonotv_piece_list';
|
|
import SendContractAgreementForm from '../../../components/ascribe_forms/form_send_contract_agreement';
|
|
import IkonotvRegisterPiece from './components/ikonotv/ikonotv_register_piece';
|
|
import IkonotvPieceContainer from './components/ikonotv/ikonotv_detail/ikonotv_piece_container';
|
|
import IkonotvContractNotifications from './components/ikonotv/ikonotv_contract_notifications';
|
|
|
|
import MarketPieceList from './components/market/market_piece_list';
|
|
import MarketRegisterPiece from './components/market/market_register_piece';
|
|
import MarketPieceContainer from './components/market/market_detail/market_piece_container';
|
|
import MarketEditionContainer from './components/market/market_detail/market_edition_container';
|
|
|
|
import LumenusLanding from './components/lumenus/lumenus_landing';
|
|
|
|
import Vivi23Landing from './components/23vivi/23vivi_landing';
|
|
import Vivi23PieceList from './components/23vivi/23vivi_piece_list';
|
|
|
|
import { ProxyHandler, AuthRedirect } from '../../../components/ascribe_routes/proxy_handler';
|
|
|
|
import WalletApp from './wallet_app';
|
|
|
|
|
|
let ROUTES = {
|
|
'cyland': (
|
|
<Route path='/' component={WalletApp}>
|
|
<IndexRoute component={CylandLanding} />
|
|
<Route
|
|
path='login'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(LoginContainer)} />
|
|
<Route
|
|
path='logout'
|
|
component={ProxyHandler(AuthRedirect({to: '/', when: 'loggedOut'}))(LogoutContainer)} />
|
|
<Route
|
|
path='signup'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(SignupContainer)} />
|
|
<Route
|
|
path='password_reset'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(PasswordResetContainer)} />
|
|
<Route
|
|
path='settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(SettingsContainer)} />
|
|
<Route
|
|
path='contract_settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(ContractSettings)} />
|
|
<Route
|
|
path='register_piece'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(CylandRegisterPiece)}
|
|
headerTitle='+ NEW WORK'
|
|
aclName='acl_wallet_submit' />
|
|
<Route
|
|
path='collection'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(CylandPieceList)}
|
|
headerTitle='COLLECTION'
|
|
disableOn='noPieces' />
|
|
<Route path='editions/:editionId' component={EditionContainer} />
|
|
<Route path='verify' component={CoaVerifyContainer} />
|
|
<Route path='pieces/:pieceId' component={CylandPieceContainer} />
|
|
<Route path='*' component={ErrorNotFoundPage} />
|
|
</Route>
|
|
),
|
|
'cc': (
|
|
<Route path='/' component={WalletApp}>
|
|
<Route
|
|
path='login'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(LoginContainer)} />
|
|
<Route
|
|
path='logout'
|
|
component={ProxyHandler(AuthRedirect({to: '/', when: 'loggedOut'}))(LogoutContainer)} />
|
|
<Route
|
|
path='signup'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(SignupContainer)} />
|
|
<Route
|
|
path='password_reset'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(PasswordResetContainer)} />
|
|
<Route
|
|
path='settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(SettingsContainer)} />
|
|
<Route
|
|
path='contract_settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(ContractSettings)} />
|
|
<Route
|
|
path='register_piece'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(CCRegisterPiece)}
|
|
headerTitle='+ NEW WORK' />
|
|
<Route
|
|
path='collection'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(PieceList)}
|
|
headerTitle='COLLECTION'
|
|
disableOn='noPieces' />
|
|
<Route path='pieces/:pieceId' component={PieceContainer} />
|
|
<Route path='editions/:editionId' component={EditionContainer} />
|
|
<Route path='verify' component={CoaVerifyContainer} />
|
|
<Route path='*' component={ErrorNotFoundPage} />
|
|
</Route>
|
|
),
|
|
'ikonotv': (
|
|
<Route path='/' component={WalletApp}>
|
|
<IndexRoute component={IkonotvLanding} />
|
|
<Route
|
|
path='login'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(LoginContainer)} />
|
|
<Route
|
|
path='logout'
|
|
component={ProxyHandler(AuthRedirect({to: '/', when: 'loggedOut'}))(LogoutContainer)} />
|
|
<Route
|
|
path='signup'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(SignupContainer)} />
|
|
<Route
|
|
path='password_reset'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(PasswordResetContainer)} />
|
|
<Route
|
|
path='settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(SettingsContainer)} />
|
|
<Route
|
|
path='contract_settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(ContractSettings)} />
|
|
<Route
|
|
path='request_loan'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(SendContractAgreementForm)}
|
|
headerTitle='SEND NEW CONTRACT'
|
|
aclName='acl_create_contractagreement' />
|
|
<Route
|
|
path='register_piece'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(IkonotvRegisterPiece)}
|
|
headerTitle='+ NEW WORK'
|
|
aclName='acl_wallet_submit' />
|
|
<Route
|
|
path='collection'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(IkonotvPieceList)}
|
|
headerTitle='COLLECTION'
|
|
disableOn='noPieces' />
|
|
<Route
|
|
path='contract_notifications'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(IkonotvContractNotifications)} />
|
|
<Route path='pieces/:pieceId' component={IkonotvPieceContainer} />
|
|
<Route path='editions/:editionId' component={EditionContainer} />
|
|
<Route path='verify' component={CoaVerifyContainer} />
|
|
<Route path='*' component={ErrorNotFoundPage} />
|
|
</Route>
|
|
),
|
|
'lumenus': (
|
|
<Route path='/' component={WalletApp}>
|
|
<IndexRoute component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(LumenusLanding)} />
|
|
<Route
|
|
path='login'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(LoginContainer)} />
|
|
<Route
|
|
path='logout'
|
|
component={ProxyHandler(AuthRedirect({to: '/', when: 'loggedOut'}))(LogoutContainer)} />
|
|
<Route
|
|
path='signup'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(SignupContainer)} />
|
|
<Route
|
|
path='password_reset'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(PasswordResetContainer)} />
|
|
<Route
|
|
path='settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(SettingsContainer)} />
|
|
<Route
|
|
path='contract_settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(ContractSettings)} />
|
|
<Route
|
|
path='register_piece'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(MarketRegisterPiece)}
|
|
headerTitle='+ NEW WORK'
|
|
aclName='acl_wallet_submit' />
|
|
<Route
|
|
path='collection'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(MarketPieceList)}
|
|
headerTitle='COLLECTION'
|
|
disableOn='noPieces' />
|
|
<Route path='pieces/:pieceId' component={MarketPieceContainer} />
|
|
<Route path='editions/:editionId' component={MarketEditionContainer} />
|
|
<Route path='verify' component={CoaVerifyContainer} />
|
|
<Route path='*' component={ErrorNotFoundPage} />
|
|
</Route>
|
|
),
|
|
'23vivi': (
|
|
<Route path='/' component={WalletApp}>
|
|
<IndexRoute component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(Vivi23Landing)} />
|
|
<Route
|
|
path='login'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(LoginContainer)} />
|
|
<Route
|
|
path='logout'
|
|
component={ProxyHandler(AuthRedirect({to: '/', when: 'loggedOut'}))(LogoutContainer)} />
|
|
<Route
|
|
path='signup'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(SignupContainer)} />
|
|
<Route
|
|
path='password_reset'
|
|
component={ProxyHandler(AuthRedirect({to: '/collection', when: 'loggedIn'}))(PasswordResetContainer)} />
|
|
<Route
|
|
path='settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(SettingsContainer)} />
|
|
<Route
|
|
path='contract_settings'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(ContractSettings)} />
|
|
<Route
|
|
path='register_piece'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(MarketRegisterPiece)}
|
|
headerTitle='+ NEW WORK'
|
|
aclName='acl_wallet_submit' />
|
|
<Route
|
|
path='collection'
|
|
component={ProxyHandler(AuthRedirect({to: '/login', when: 'loggedOut'}))(Vivi23PieceList)}
|
|
headerTitle='COLLECTION'
|
|
disableOn='noPieces' />
|
|
<Route path='pieces/:pieceId' component={MarketPieceContainer} />
|
|
<Route path='editions/:editionId' component={MarketEditionContainer} />
|
|
<Route path='verify' component={CoaVerifyContainer} />
|
|
<Route path='*' component={ErrorNotFoundPage} />
|
|
</Route>
|
|
)
|
|
};
|
|
|
|
function getRoutes(commonRoutes, subdomain) {
|
|
if(subdomain in ROUTES) {
|
|
return ROUTES[subdomain];
|
|
} else {
|
|
throw new Error('Subdomain wasn\'t specified in the wallet app.');
|
|
}
|
|
}
|
|
|
|
export default getRoutes;
|