diff options
-rw-r--r-- | deploy/mobile/image_upload.html | 13 | ||||
-rw-r--r-- | deploy/mobile/ink_controls.html | 13 | ||||
-rw-r--r-- | package-lock.json | 5 | ||||
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | src/mobile/ImageUpload.tsx | 11 | ||||
-rw-r--r-- | src/mobile/InkControls.tsx | 0 | ||||
-rw-r--r-- | src/server/index.ts | 10 | ||||
-rw-r--r-- | webpack.config.js | 2 |
8 files changed, 53 insertions, 2 deletions
diff --git a/deploy/mobile/image_upload.html b/deploy/mobile/image_upload.html new file mode 100644 index 000000000..4cfd931ac --- /dev/null +++ b/deploy/mobile/image_upload.html @@ -0,0 +1,13 @@ +<html> + +<head> + <title>Test view</title> + <link href="https://fonts.googleapis.com/css?family=Fjalla+One|Hind+Siliguri:300" rel="stylesheet"> +</head> + +<body> + <div id="root"></div> + <script src="../image_upload.js"></script> +</body> + +</html>
\ No newline at end of file diff --git a/deploy/mobile/ink_controls.html b/deploy/mobile/ink_controls.html new file mode 100644 index 000000000..725ed3685 --- /dev/null +++ b/deploy/mobile/ink_controls.html @@ -0,0 +1,13 @@ +<html> + +<head> + <title>Test view</title> + <link href="https://fonts.googleapis.com/css?family=Fjalla+One|Hind+Siliguri:300" rel="stylesheet"> +</head> + +<body> + <div id="root"></div> + <script src="../ink_controls.js"></script> +</body> + +</html>
\ No newline at end of file diff --git a/package-lock.json b/package-lock.json index dd5d44bd9..9169ae4e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5982,6 +5982,11 @@ } } }, + "mobile-detect": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/mobile-detect/-/mobile-detect-1.4.3.tgz", + "integrity": "sha512-UaahPNLllQsstHOEHAmVnTHCMQrAS9eL5Qgdi50QrYz6UgGk+Xziz2udz2GN6NYcyODcPLnasC7a7s6R2DjiaQ==" + }, "mobx": { "version": "5.9.0", "resolved": "https://registry.npmjs.org/mobx/-/mobx-5.9.0.tgz", diff --git a/package.json b/package.json index 219efb5f7..ed593898d 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "jsonwebtoken": "^8.5.0", "jsx-to-string": "^1.4.0", "lodash": "^4.17.11", + "mobile-detect": "^1.4.3", "mobx": "^5.9.0", "mobx-react": "^5.3.5", "mobx-react-devtools": "^6.1.1", diff --git a/src/mobile/ImageUpload.tsx b/src/mobile/ImageUpload.tsx new file mode 100644 index 000000000..566fe9d6c --- /dev/null +++ b/src/mobile/ImageUpload.tsx @@ -0,0 +1,11 @@ +ReactDOM.render(( + <div + style={{ + position: "absolute", + width: "100%", + height: "100%", + background: "yellow" + }} + ></div>), + document.getElementById('root') +);
\ No newline at end of file diff --git a/src/mobile/InkControls.tsx b/src/mobile/InkControls.tsx new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/mobile/InkControls.tsx diff --git a/src/server/index.ts b/src/server/index.ts index fcf74c08a..f83532a2f 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -27,6 +27,7 @@ import * as expressValidator from 'express-validator'; import expressFlash = require('express-flash'); import * as bodyParser from 'body-parser'; import * as session from 'express-session'; +import * as mobileDetect from 'mobile-detect'; import c = require("crypto"); const MongoStore = require('connect-mongo')(session); const mongoose = require('mongoose'); @@ -100,8 +101,13 @@ app.use('/images', express.static(__dirname + '/public')) let FieldStore: ObservableMap<FieldId, Field> = new ObservableMap(); // define a route handler for the default home page -app.get("/", (req, res) => { - res.sendFile(path.join(__dirname, '../../deploy/index.html')); +app.get("/", (req: express.Request, res: express.Response) => { + let detector = new mobileDetect(req.headers['user-agent'] || ""); + if (detector.mobile() != null) { + res.sendFile(path.join(__dirname, '../../deploy/mobile/image_upload.html')); + } else { + res.sendFile(path.join(__dirname, '../../deploy/index.html')); + } }); app.get("/pull", (req, res) => { diff --git a/webpack.config.js b/webpack.config.js index 815e2b477..52ad2c653 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -8,6 +8,8 @@ module.exports = { bundle: ["./src/client/views/Main.tsx", 'webpack-hot-middleware/client?reload=true'], viewer: ["./src/debug/Viewer.tsx", 'webpack-hot-middleware/client?reload=true'], test: ["./src/debug/Test.tsx", 'webpack-hot-middleware/client?reload=true'], + image_upload: ["./src/debug/mobile/ImageUpload.tsx", 'webpack-hot-middleware/client?reload=true'], + ink_control: ["./src/debug/mobile/InkControl.tsx", 'webpack-hot-middleware/client?reload=true'], }, devtool: "source-map", node: { |