load android ui in dev when browsing to /android (#919)

This commit is contained in:
Danny Coates 2018-09-07 10:08:01 -07:00 committed by Donovan Preston
parent 041c8ffdd2
commit 17ee4e0058
5 changed files with 26 additions and 16 deletions

View File

@ -27,5 +27,5 @@ app.route('/', require('./pages/home').default);
app.route('/upload', require('./pages/upload').default);
app.route('/share/:id', require('./pages/share').default);
app.route('/preferences', require('./pages/preferences').default);
app.route('/android/app/src/main/assets', require('./pages/home').default);
app.route('/android', require('./pages/home').default);
app.mount('body');

View File

@ -1,17 +1,11 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Firefox Send</title>
<link href="index.css" rel="stylesheet">
</head>
<body>
<script>
const EXPIRE_SECONDS = 86400;
</script>
<script src="vendor.js"></script>
<script src="android.js"></script>
<script src="vendor.js"></script>
<script src="android.js"></script>
</body>
</html>
</html>

View File

@ -1,11 +1,6 @@
const html = require('choo/html');
export default function mainPage(state, emit) {
if (window.location.pathname === '/android/app/src/main/assets/') {
// Hack: For debugging the android app in a web browser from
// http://0.0.0.0:8080/android/app/src/main/assets/ after running webpack
state.prefix = '/android/app/src/main/assets';
}
function clickPreferences(event) {
event.preventDefault();
emit('pushState', '/preferences');

View File

@ -1,3 +1,5 @@
const fs = require('fs');
const path = require('path');
const assets = require('../../common/assets');
const locales = require('../../common/locales');
const routes = require('../routes');
@ -8,6 +10,11 @@ const expressWs = require('express-ws');
const morgan = require('morgan');
const config = require('../config');
const androidIndex = fs.readFileSync(
path.resolve(__dirname, '../../android/app/src/main/assets/index.html'),
'utf8'
);
module.exports = function(app, devServer) {
const wsapp = express();
expressWs(wsapp, null, { perMessageDeflate: false });
@ -19,6 +26,15 @@ module.exports = function(app, devServer) {
app.use(morgan('dev', { stream: process.stderr }));
routes(app);
tests(app);
app.get('/android', function(req, res) {
res.set('Content-Type', 'text/html');
res.send(
androidIndex
.replace('index.css', '/android_asset/index.css')
.replace('vendor.js', assets.get('vendor.js'))
.replace('android.js', assets.get('android.js'))
);
});
// webpack-dev-server routes haven't been added yet
// so wait for next tick to add 404 handler
process.nextTick(() => app.use(pages.notfound));

View File

@ -183,6 +183,11 @@ const web = {
{
context: 'public',
from: '*.*'
},
{
context: 'android/app/src/main/assets',
from: '*.*',
to: 'android_asset'
}
]),
new webpack.IgnorePlugin(/\.\.\/dist/), // used in common/*.js