lbry-desktop/ui/js/app.js
2017-05-02 19:07:46 -04:00

335 lines
No EOL
12 KiB
JavaScript

import store from 'store.js';
const env = process.env.NODE_ENV || 'development';
const config = require(`./config/${env}`);
const logs = [];
const app = {
env: env,
config: config,
store: store,
logs: logs,
log: function(message) {
console.log(message);
logs.push(message);
}
}
global.app = app;
module.exports = app;
//
// import React from 'react';
// import {Line} from 'rc-progress';
//
// import lbry from './lbry.js';
// import SettingsPage from './page/settings.js';
// import HelpPage from './page/help.js';
// import WatchPage from './page/watch.js';
// import ReportPage from './page/report.js';
// import StartPage from './page/start.js';
// import RewardsPage from './page/rewards.js';
// import RewardPage from './page/reward.js';
// import WalletPage from './page/wallet.js';
// import ShowPage from './page/show.js';
// import PublishPage from './page/publish.js';
// import SearchPage from './page/search.js';
// import DiscoverPage from './page/discover.js';
// import DeveloperPage from './page/developer.js';
// import lbryuri from './lbryuri.js';
// import {FileListDownloaded, FileListPublished} from './page/file-list.js';
// import Header from './component/header.js';
// import {Modal, ExpandableModal} from './component/modal.js';
// import {Link} from './component/link';
//
//
// const {remote, ipcRenderer, shell} = require('electron');
// const {download} = remote.require('electron-dl');
// const path = require('path');
// const app = require('electron').remote.app;
// const fs = remote.require('fs');
//
//
// var App = React.createClass({
// _error_key_labels: {
// connectionString: 'API connection string',
// method: 'Method',
// params: 'Parameters',
// code: 'Error code',
// message: 'Error message',
// data: 'Error data',
// },
// _fullScreenPages: ['watch'],
// _storeHistoryOfNextRender: false,
//
// _upgradeDownloadItem: null,
// _isMounted: false,
// _version: null,
// getUpdateUrl: function() {
// switch (process.platform) {
// case 'darwin':
// return 'https://lbry.io/get/lbry.dmg';
// case 'linux':
// return 'https://lbry.io/get/lbry.deb';
// case 'win32':
// return 'https://lbry.io/get/lbry.exe';
// default:
// throw 'Unknown platform';
// }
// },
// // Hard code the filenames as a temporary workaround, because
// // electron-dl throws errors when you try to get the filename
// getUpgradeFilename: function() {
// switch (process.platform) {
// case 'darwin':
// return `LBRY-${this._version}.dmg`;
// case 'linux':
// return `LBRY_${this._version}_amd64.deb`;
// case 'windows':
// return `LBRY.Setup.${this._version}.exe`;
// default:
// throw 'Unknown platform';
// }
// },
// getViewingPageAndArgs: function(address) {
// // For now, routes are in format ?page or ?page=args
// let [isMatch, viewingPage, pageArgs] = address.match(/\??([^=]*)(?:=(.*))?/);
// return {
// viewingPage: viewingPage,
// pageArgs: pageArgs === undefined ? null : decodeURIComponent(pageArgs)
// };
// },
// getInitialState: function() {
// return Object.assign(this.getViewingPageAndArgs(window.location.search), {
// viewingPage: 'discover',
// appUrl: null,
// errorInfo: null,
// modal: null,
// downloadProgress: null,
// downloadComplete: false,
// });
// },
// componentWillMount: function() {
// window.addEventListener("popstate", this.onHistoryPop);
//
// document.addEventListener('unhandledError', (event) => {
// this.alertError(event.detail);
// });
//
// //open links in external browser and skip full redraw on changing page
// document.addEventListener('click', (event) => {
// var target = event.target;
// while (target && target !== document) {
// if (target.matches('a[href^="http"]')) {
// event.preventDefault();
// shell.openExternal(target.href);
// return;
// }
// if (target.matches('a[href^="?"]')) {
// event.preventDefault();
// if (this._isMounted) {
// let appUrl = target.getAttribute('href');
// this._storeHistoryOfNextRender = true;
// this.setState(Object.assign({}, this.getViewingPageAndArgs(appUrl), { appUrl: appUrl }));
// document.body.scrollTop = 0;
// }
// }
// target = target.parentNode;
// }
// });
//
// if (!sessionStorage.getItem('upgradeSkipped')) {
// lbry.getVersionInfo().then(({remoteVersion, upgradeAvailable}) => {
// if (upgradeAvailable) {
// this._version = remoteVersion;
// this.setState({
// modal: 'upgrade',
// });
// }
// });
// }
// },
// closeModal: function() {
// this.setState({
// modal: null,
// });
// },
// componentDidMount: function() {
// this._isMounted = true;
// },
// componentWillUnmount: function() {
// this._isMounted = false;
// window.removeEventListener("popstate", this.onHistoryPop);
// },
// onHistoryPop: function() {
// this.setState(this.getViewingPageAndArgs(location.search));
// },
// onSearch: function(term) {
// this._storeHistoryOfNextRender = true;
// const isShow = term.startsWith('lbry://');
// this.setState({
// viewingPage: isShow ? "show" : "search",
// appUrl: (isShow ? "?show=" : "?search=") + encodeURIComponent(term),
// pageArgs: term
// });
// },
// onSubmit: function(uri) {
// this._storeHistoryOfNextRender = true;
// this.setState({
// address: uri,
// appUrl: "?show=" + encodeURIComponent(uri),
// viewingPage: "show",
// pageArgs: uri
// })
// },
// handleUpgradeClicked: function() {
// // Make a new directory within temp directory so the filename is guaranteed to be available
// const dir = fs.mkdtempSync(app.getPath('temp') + require('path').sep);
//
// let options = {
// onProgress: (p) => this.setState({downloadProgress: Math.round(p * 100)}),
// directory: dir,
// };
// download(remote.getCurrentWindow(), this.getUpdateUrl(), options)
// .then(downloadItem => {
// /**
// * TODO: get the download path directly from the download object. It should just be
// * downloadItem.getSavePath(), but the copy on the main process is being garbage collected
// * too soon.
// */
//
// this._upgradeDownloadItem = downloadItem;
// this._upgradeDownloadPath = path.join(dir, this.getUpgradeFilename());
// this.setState({
// downloadComplete: true
// });
// });
// this.setState({modal: 'downloading'});
// },
// handleStartUpgradeClicked: function() {
// ipcRenderer.send('upgrade', this._upgradeDownloadPath);
// },
// cancelUpgrade: function() {
// if (this._upgradeDownloadItem) {
// /*
// * Right now the remote reference to the download item gets garbage collected as soon as the
// * the download is over (maybe even earlier), so trying to cancel a finished download may
// * throw an error.
// */
// try {
// this._upgradeDownloadItem.cancel();
// } catch (err) {
// // Do nothing
// }
// }
// this.setState({
// downloadProgress: null,
// downloadComplete: false,
// modal: null,
// });
// },
// handleSkipClicked: function() {
// sessionStorage.setItem('upgradeSkipped', true);
// this.setState({
// modal: null,
// });
// },
// alertError: function(error) {
// var errorInfoList = [];
// for (let key of Object.keys(error)) {
// let val = typeof error[key] == 'string' ? error[key] : JSON.stringify(error[key]);
// let label = this._error_key_labels[key];
// errorInfoList.push(<li key={key}><strong>{label}</strong>: <code>{val}</code></li>);
// }
//
// this.setState({
// modal: 'error',
// errorInfo: <ul className="error-modal__error-list">{errorInfoList}</ul>,
// });
// },
// getContentAndAddress: function()
// {
// switch(this.state.viewingPage)
// {
// case 'search':
// return [this.state.pageArgs ? this.state.pageArgs : "Search", 'icon-search', <SearchPage query={this.state.pageArgs} />];
// case 'settings':
// return ["Settings", "icon-gear", <SettingsPage />];
// case 'help':
// return ["Help", "icon-question", <HelpPage />];
// case 'report':
// return ['Report an Issue', 'icon-file', <ReportPage />];
// case 'downloaded':
// return ["Downloads & Purchases", "icon-folder", <FileListDownloaded />];
// case 'published':
// return ["Publishes", "icon-folder", <FileListPublished />];
// case 'start':
// return ["Start", "icon-file", <StartPage />];
// case 'rewards':
// return ["Rewards", "icon-bank", <RewardsPage />];
// case 'wallet':
// case 'send':
// case 'receive':
// return [this.state.viewingPage.charAt(0).toUpperCase() + this.state.viewingPage.slice(1), "icon-bank", <WalletPage viewingPage={this.state.viewingPage} />]
// case 'show':
// return [lbryuri.normalize(this.state.pageArgs), "icon-file", <ShowPage uri={this.state.pageArgs} />];
// case 'publish':
// return ["Publish", "icon-upload", <PublishPage />];
// case 'developer':
// return ["Developer", "icon-file", <DeveloperPage />];
// case 'discover':
// default:
// return ["Home", "icon-home", <DiscoverPage />];
// }
// },
// render: function() {
// let [address, wunderBarIcon, mainContent] = this.getContentAndAddress();
//
// lbry.setTitle(address);
//
// if (this._storeHistoryOfNextRender) {
// this._storeHistoryOfNextRender = false;
// history.pushState({}, document.title, this.state.appUrl);
// }
//
// return (
// this._fullScreenPages.includes(this.state.viewingPage) ?
// mainContent :
// <div id="window">
// <Header onSearch={this.onSearch} onSubmit={this.onSubmit} address={address} wunderBarIcon={wunderBarIcon} viewingPage={this.state.viewingPage} />
// <div id="main-content">
// {mainContent}
// </div>
// <Modal isOpen={this.state.modal == 'upgrade'} contentLabel="Update available"
// type="confirm" confirmButtonLabel="Upgrade" abortButtonLabel="Skip"
// onConfirmed={this.handleUpgradeClicked} onAborted={this.handleSkipClicked}>
// Your version of LBRY is out of date and may be unreliable or insecure.
// </Modal>
// <Modal isOpen={this.state.modal == 'downloading'} contentLabel="Downloading Update" type="custom">
// Downloading Update{this.state.downloadProgress ? `: ${this.state.downloadProgress}%` : null}
// <Line percent={this.state.downloadProgress} strokeWidth="4"/>
// {this.state.downloadComplete ? (
// <div>
// <br />
// <p>Click "Begin Upgrade" to start the upgrade process.</p>
// <p>The app will close, and you will be prompted to install the latest version of LBRY.</p>
// <p>After the install is complete, please reopen the app.</p>
// </div>
// ) : null }
// <div className="modal__buttons">
// {this.state.downloadComplete
// ? <Link button="primary" label="Begin Upgrade" className="modal__button" onClick={this.handleStartUpgradeClicked} />
// : null}
// <Link button="alt" label="Cancel" className="modal__button" onClick={this.cancelUpgrade} />
// </div>
// </Modal>
// <ExpandableModal isOpen={this.state.modal == 'error'} contentLabel="Error" className="error-modal"
// overlayClassName="error-modal-overlay" onConfirmed={this.closeModal}
// extraContent={this.state.errorInfo}>
// <h3 className="modal__header">Error</h3>
//
// <div className="error-modal__content">
// <div><img className="error-modal__warning-symbol" src={lbry.imagePath('warning.png')} /></div>
// <p>We're sorry that LBRY has encountered an error. This has been reported and we will investigate the problem.</p>
// </div>
// </ExpandableModal>
// </div>
// );