diff --git a/.gitignore b/.gitignore
index 097bcc3a..144b80ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@ DerivedData
*.ipa
*.xcuserstate
project.xcworkspace
+third-party
# Android/IntelliJ
#
diff --git a/EpubReader/App.js b/EpubReader/App.js
index 21c79c11..dec95d81 100644
--- a/EpubReader/App.js
+++ b/EpubReader/App.js
@@ -14,6 +14,7 @@ import { Epub, Streamer } from "epubjs-rn";
import TopBar from './app/TopBar'
import BottomBar from './app/BottomBar'
import Nav from './app/Nav'
+import CustomLoading from './Loading';
class EpubReader extends Component {
constructor(props) {
@@ -119,6 +120,7 @@ class EpubReader extends Component {
onError={(message) => {
console.log("EPUBJS-Webview", message);
}}
+ loadingView={}
/>
diff --git a/EpubReader/Loading.js b/EpubReader/Loading.js
new file mode 100644
index 00000000..1857bf2d
--- /dev/null
+++ b/EpubReader/Loading.js
@@ -0,0 +1,17 @@
+import React, { Component } from 'react';
+import * as Animatable from 'react-native-animatable';
+let img = require("./asset/book.png")
+
+export default class CustomLoading extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ render() {
+ return (
+
+ );
+ }
+}
diff --git a/EpubReader/asset/book.png b/EpubReader/asset/book.png
new file mode 100644
index 00000000..30496a2c
Binary files /dev/null and b/EpubReader/asset/book.png differ
diff --git a/EpubReader/ios/EpubReader/Images.xcassets/AppIcon.appiconset/Contents.json b/EpubReader/ios/EpubReader/Images.xcassets/AppIcon.appiconset/Contents.json
index 118c98f7..19882d56 100644
--- a/EpubReader/ios/EpubReader/Images.xcassets/AppIcon.appiconset/Contents.json
+++ b/EpubReader/ios/EpubReader/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -1,5 +1,15 @@
{
"images" : [
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "3x"
+ },
{
"idiom" : "iphone",
"size" : "29x29",
@@ -29,6 +39,11 @@
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
+ },
+ {
+ "idiom" : "ios-marketing",
+ "size" : "1024x1024",
+ "scale" : "1x"
}
],
"info" : {
diff --git a/EpubReader/package-lock.json b/EpubReader/package-lock.json
index cb0e6f1f..78653817 100644
--- a/EpubReader/package-lock.json
+++ b/EpubReader/package-lock.json
@@ -742,6 +742,27 @@
}
}
},
+ "@types/jszip": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/jszip/-/jszip-3.1.4.tgz",
+ "integrity": "sha512-UaVbz4buRlBEolZYrxqkrGDOypugYlbqGNrUFB4qBaexrLypTH0jyvaF5jolNy5D+5C4kKV1WJ3Yx9cn/JH8oA==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/localforage": {
+ "version": "0.0.34",
+ "resolved": "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.34.tgz",
+ "integrity": "sha1-XjHDLdh5HsS5/z70fJy1Wy0NlDg=",
+ "requires": {
+ "localforage": "*"
+ }
+ },
+ "@types/node": {
+ "version": "10.12.12",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.12.tgz",
+ "integrity": "sha512-Pr+6JRiKkfsFvmU/LK68oBRCQeEg36TyAbPhc2xpez24OOZZCuoIhWGTd39VZy6nGafSbxzGouFPTFD/rR1A0A=="
+ },
"abab": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
@@ -2017,9 +2038,9 @@
}
},
"buffer": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz",
- "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
+ "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==",
"requires": {
"base64-js": "^1.0.2",
"ieee754": "^1.1.4"
@@ -2448,7 +2469,7 @@
},
"d": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"requires": {
"es5-ext": "^0.10.9"
@@ -2661,7 +2682,7 @@
},
"readable-stream": {
"version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
"core-util-is": "~1.0.0",
@@ -2751,33 +2772,37 @@
}
},
"epubjs": {
- "version": "0.3.65",
- "resolved": "https://registry.npmjs.org/epubjs/-/epubjs-0.3.65.tgz",
- "integrity": "sha512-TQMkeUv/bHefAW/+YKbY+Wiu8fzOrqNwlIrP/C0IpDt1HQ+J+mjzZvNv22vyJoeja1VlRkkYEV7OxmBtlNjORQ==",
+ "version": "0.3.82",
+ "resolved": "https://registry.npmjs.org/epubjs/-/epubjs-0.3.82.tgz",
+ "integrity": "sha512-z0+SG1CU23M33a5ZEn1MUzMWS6Od1WikcELM0CE+nj2/e3vxHkbNWMyG/XBpiqahyn4UP2OvDo3u6hDxUUkFxQ==",
"requires": {
+ "@types/jszip": "^3.1.4",
+ "@types/localforage": "0.0.34",
"event-emitter": "^0.3.5",
"jszip": "^3.1.5",
+ "localforage": "^1.7.2",
"lodash": "^4.17.10",
"marks-pane": "^1.0.9",
"path-webpack": "0.0.3",
"stream-browserify": "^2.0.1",
+ "url-polyfill": "^1.1.3",
"xmldom": "^0.1.27"
},
"dependencies": {
"lodash": {
- "version": "4.17.10",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
- "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
}
}
},
"epubjs-rn": {
- "version": "0.0.123",
- "resolved": "https://registry.npmjs.org/epubjs-rn/-/epubjs-rn-0.0.123.tgz",
- "integrity": "sha512-P0kj/+NLLtNOwWrZEQsLSJQQg9PiRY3kqYvSoXoHCMGmoC2dsqj6Em135NRV8KYjzaNDIFKs8LCu6TWbHIsrTA==",
+ "version": "0.0.127",
+ "resolved": "https://registry.npmjs.org/epubjs-rn/-/epubjs-rn-0.0.127.tgz",
+ "integrity": "sha512-mu57TLnprb/S71gtakJAyYGcnFwRCeQcS92ObZMbbeLu6pZRu78durwvHObz6WCW8T2mlTyzUdhZA8bpaXaM2g==",
"requires": {
"buffer": "^5.1.0",
- "epubjs": "0.3.65",
+ "epubjs": "0.3.72",
"events": "^3.0.0",
"gulp": "^3.9.1",
"i": "^0.3.6",
@@ -2795,15 +2820,30 @@
"util": "^0.11.0"
},
"dependencies": {
+ "epubjs": {
+ "version": "0.3.72",
+ "resolved": "https://registry.npmjs.org/epubjs/-/epubjs-0.3.72.tgz",
+ "integrity": "sha512-UmsqlS7eA0KQizk1C0CLfaHr/An+58gCP7KfzwLj76cIAw7RnvGPi20lEPPt6HNa0JefPdhI1tAWvDR3gUVTkA==",
+ "requires": {
+ "@types/jszip": "^3.1.4",
+ "event-emitter": "^0.3.5",
+ "jszip": "^3.1.5",
+ "lodash": "^4.17.10",
+ "marks-pane": "^1.0.9",
+ "path-webpack": "0.0.3",
+ "stream-browserify": "^2.0.1",
+ "xmldom": "^0.1.27"
+ }
+ },
"lodash": {
- "version": "4.17.10",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
- "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
},
"react-native-fs": {
- "version": "2.10.14",
- "resolved": "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.10.14.tgz",
- "integrity": "sha512-4bCzkg4dE/xUyXkMVz0AiyqLKAgTZPlZl/nEzRiSr2q6VnWDgO229MSgHLHhUtD2cqZkV0Z83WEbGpvXxWOAHA==",
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.12.1.tgz",
+ "integrity": "sha512-T0vR5c+3fPVr12o4UoKr+gMHVokbLmKFGg2x1rOprwjaoJpV75Tw8mC3RpUp1u9AZHzWC4WcomhfqAlfXqDUug==",
"requires": {
"base-64": "^0.1.0",
"utf8": "^2.1.1"
@@ -2858,9 +2898,9 @@
}
},
"es5-ext": {
- "version": "0.10.45",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
- "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
+ "version": "0.10.46",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
+ "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
@@ -2879,7 +2919,7 @@
},
"es6-promise": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz",
+ "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz",
"integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y="
},
"es6-symbol": {
@@ -4116,7 +4156,7 @@
},
"readable-stream": {
"version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
"requires": {
"core-util-is": "~1.0.0",
@@ -4127,7 +4167,7 @@
},
"through2": {
"version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
"requires": {
"readable-stream": ">=1.0.33-1 <1.1.0-0",
@@ -4138,7 +4178,7 @@
},
"glob-watcher": {
"version": "0.0.6",
- "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
+ "resolved": "http://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
"integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
"requires": {
"gaze": "^0.5.1"
@@ -4210,7 +4250,7 @@
},
"graceful-fs": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+ "resolved": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
"integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
},
"inherits": {
@@ -4220,7 +4260,7 @@
},
"lodash": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
"integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE="
},
"minimatch": {
@@ -4244,7 +4284,7 @@
},
"graceful-fs": {
"version": "3.0.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+ "resolved": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
"integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
"requires": {
"natives": "^1.1.0"
@@ -4257,7 +4297,7 @@
},
"gulp": {
"version": "3.9.1",
- "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
+ "resolved": "http://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
"integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
"requires": {
"archy": "^1.0.0",
@@ -6463,7 +6503,7 @@
"dependencies": {
"core-js": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz",
+ "resolved": "http://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz",
"integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU="
}
}
@@ -6576,6 +6616,14 @@
}
}
},
+ "localforage": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz",
+ "integrity": "sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==",
+ "requires": {
+ "lie": "3.1.1"
+ }
+ },
"locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
@@ -6735,7 +6783,7 @@
},
"lru-cache": {
"version": "2.7.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "resolved": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI="
},
"macos-release": {
@@ -7304,9 +7352,9 @@
}
},
"natives": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz",
- "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg=="
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz",
+ "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA=="
},
"natural-compare": {
"version": "1.4.0",
@@ -7321,7 +7369,7 @@
},
"next-tick": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"node-fetch": {
@@ -7697,9 +7745,9 @@
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
},
"pako": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
- "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg=="
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz",
+ "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ=="
},
"parse-filepath": {
"version": "1.0.2",
@@ -7976,7 +8024,7 @@
},
"pretty-hrtime": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
+ "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
"integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
},
"private": {
@@ -8231,6 +8279,14 @@
}
}
},
+ "react-native-animatable": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.3.0.tgz",
+ "integrity": "sha512-GGYEYvderfzPZcPnw7xov4nlRmi9d6oqcIzx0fGkUUsMshOQEtq5IEzFp3np0uTB9n8/gZIZcdbUPggVlVydMg==",
+ "requires": {
+ "prop-types": "^15.5.10"
+ }
+ },
"react-native-fetch-blob": {
"version": "0.10.8",
"resolved": "https://registry.npmjs.org/react-native-fetch-blob/-/react-native-fetch-blob-0.10.8.tgz",
@@ -9174,7 +9230,7 @@
},
"stream-browserify": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "resolved": "http://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
"integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
"requires": {
"inherits": "~2.0.1",
@@ -9744,6 +9800,11 @@
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
},
+ "url-polyfill": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.3.tgz",
+ "integrity": "sha512-xIAXc0DyXJCd767sSeRu4eqisyYhR0z0sohWArCn+WPwIatD39xGrc09l+tluIUi6jGkpGa8Gz8TKwkKYxMQvQ=="
+ },
"use": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
@@ -9770,9 +9831,9 @@
"integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY="
},
"util": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/util/-/util-0.11.0.tgz",
- "integrity": "sha512-5n12uMzKCjvB2HPFHnbQSjaqAa98L5iIXmHrZCLavuZVe0qe/SJGbDGWlpaHk5lnBkWRDO+dRu1/PgmUYKPPTw==",
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
"requires": {
"inherits": "2.0.3"
}
@@ -9872,7 +9933,7 @@
},
"readable-stream": {
"version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
"requires": {
"core-util-is": "~1.0.0",
@@ -9892,7 +9953,7 @@
},
"through2": {
"version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
"requires": {
"readable-stream": ">=1.0.33-1 <1.1.0-0",
diff --git a/EpubReader/package.json b/EpubReader/package.json
index 3d93432e..577c6bf0 100644
--- a/EpubReader/package.json
+++ b/EpubReader/package.json
@@ -15,6 +15,7 @@
"epubjs-rn": "latest",
"react": "16.3.1",
"react-native": "0.55.3",
+ "react-native-animatable": "^1.3.0",
"react-native-fetch-blob": "^0.10.8",
"react-native-fs": "^2.9.12",
"react-native-orientation": "^3.1.3",
diff --git a/README.md b/README.md
index 0aa2f2cf..46baeabb 100644
--- a/README.md
+++ b/README.md
@@ -56,6 +56,7 @@ Then you can add the reader element in your code:
* `script`: Url for a javascript file to be injected into the view
* `minSpreadWidth`: cut off width for spreads
* `gap`: gap (int) between columns / pages
+* `loadingView`: a custom loading view or component instead of the deafult loading indicator
Using a local file server
-------------------------
diff --git a/package-lock.json b/package-lock.json
index 45c2613e..6ecad269 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "epubjs-rn",
- "version": "0.0.126",
+ "version": "0.0.127",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -330,12 +330,12 @@
"integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
"dev": true,
"requires": {
- "regenerate": "1.4.0",
- "regenerate-unicode-properties": "7.0.0",
- "regjsgen": "0.4.0",
- "regjsparser": "0.3.0",
- "unicode-match-property-ecmascript": "1.0.4",
- "unicode-match-property-value-ecmascript": "1.0.2"
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^7.0.0",
+ "regjsgen": "^0.4.0",
+ "regjsparser": "^0.3.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.0.2"
}
},
"regjsgen": {
@@ -350,7 +350,7 @@
"integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
"dev": true,
"requires": {
- "jsesc": "0.5.0"
+ "jsesc": "~0.5.0"
}
}
}
@@ -484,12 +484,12 @@
"integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
"dev": true,
"requires": {
- "regenerate": "1.4.0",
- "regenerate-unicode-properties": "7.0.0",
- "regjsgen": "0.4.0",
- "regjsparser": "0.3.0",
- "unicode-match-property-ecmascript": "1.0.4",
- "unicode-match-property-value-ecmascript": "1.0.2"
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^7.0.0",
+ "regjsgen": "^0.4.0",
+ "regjsparser": "^0.3.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.0.2"
}
},
"regjsgen": {
@@ -504,7 +504,7 @@
"integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
"dev": true,
"requires": {
- "jsesc": "0.5.0"
+ "jsesc": "~0.5.0"
}
}
}
@@ -642,7 +642,7 @@
"integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==",
"dev": true,
"requires": {
- "private": "0.1.8"
+ "private": "^0.1.6"
}
}
}
@@ -723,12 +723,12 @@
"integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
"dev": true,
"requires": {
- "regenerate": "1.4.0",
- "regenerate-unicode-properties": "7.0.0",
- "regjsgen": "0.4.0",
- "regjsparser": "0.3.0",
- "unicode-match-property-ecmascript": "1.0.4",
- "unicode-match-property-value-ecmascript": "1.0.2"
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^7.0.0",
+ "regjsgen": "^0.4.0",
+ "regjsparser": "^0.3.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.0.2"
}
},
"regjsgen": {
@@ -743,7 +743,7 @@
"integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
"dev": true,
"requires": {
- "jsesc": "0.5.0"
+ "jsesc": "~0.5.0"
}
}
}
@@ -11373,7 +11373,7 @@
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true,
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "^1.0.0"
}
}
}
@@ -11422,7 +11422,7 @@
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
"dev": true,
"requires": {
- "arr-flatten": "1.1.0"
+ "arr-flatten": "^1.0.1"
}
},
"array-unique": {
@@ -11437,9 +11437,9 @@
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"dev": true,
"requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.2"
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
}
},
"expand-brackets": {
@@ -11448,7 +11448,7 @@
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"dev": true,
"requires": {
- "is-posix-bracket": "0.1.1"
+ "is-posix-bracket": "^0.1.0"
}
},
"extglob": {
@@ -11457,7 +11457,7 @@
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"is-extglob": {
@@ -11472,7 +11472,7 @@
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"jest-cli": {
@@ -11525,7 +11525,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
},
"micromatch": {
@@ -11534,19 +11534,19 @@
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"dev": true,
"requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
}
},
"strip-ansi": {
@@ -11555,7 +11555,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
}
}
@@ -11669,7 +11669,7 @@
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
"dev": true,
"requires": {
- "arr-flatten": "1.1.0"
+ "arr-flatten": "^1.0.1"
}
},
"array-unique": {
@@ -11684,9 +11684,9 @@
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"dev": true,
"requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.2"
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
}
},
"expand-brackets": {
@@ -11695,7 +11695,7 @@
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"dev": true,
"requires": {
- "is-posix-bracket": "0.1.1"
+ "is-posix-bracket": "^0.1.0"
}
},
"extglob": {
@@ -11704,7 +11704,7 @@
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"is-extglob": {
@@ -11719,7 +11719,7 @@
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"kind-of": {
@@ -11728,7 +11728,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
},
"micromatch": {
@@ -11737,19 +11737,19 @@
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"dev": true,
"requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
}
}
}
@@ -12010,7 +12010,7 @@
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
"dev": true,
"requires": {
- "arr-flatten": "1.1.0"
+ "arr-flatten": "^1.0.1"
}
},
"array-unique": {
@@ -12025,9 +12025,9 @@
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"dev": true,
"requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.2"
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
}
},
"expand-brackets": {
@@ -12036,7 +12036,7 @@
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"dev": true,
"requires": {
- "is-posix-bracket": "0.1.1"
+ "is-posix-bracket": "^0.1.0"
}
},
"extglob": {
@@ -12045,7 +12045,7 @@
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"is-extglob": {
@@ -12060,7 +12060,7 @@
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"kind-of": {
@@ -12069,7 +12069,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
},
"micromatch": {
@@ -12078,19 +12078,19 @@
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"dev": true,
"requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
}
}
}
@@ -15747,7 +15747,7 @@
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
"dev": true,
"requires": {
- "once": "1.4.0"
+ "once": "^1.4.0"
}
}
}
@@ -16224,8 +16224,8 @@
"integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
"dev": true,
"requires": {
- "commander": "2.13.0",
- "source-map": "0.6.1"
+ "commander": "~2.13.0",
+ "source-map": "~0.6.1"
}
},
"webpack-sources": {
@@ -17326,11 +17326,11 @@
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": {
- "nice-try": "1.0.4",
- "path-key": "2.0.1",
- "semver": "5.5.0",
- "shebang-command": "1.2.0",
- "which": "1.3.1"
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
"decamelize": {
@@ -17348,7 +17348,7 @@
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
- "locate-path": "3.0.0"
+ "locate-path": "^3.0.0"
}
},
"interpret": {
@@ -17363,8 +17363,8 @@
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
- "p-locate": "3.0.0",
- "path-exists": "3.0.0"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
}
},
"p-limit": {
@@ -17373,7 +17373,7 @@
"integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
"dev": true,
"requires": {
- "p-try": "2.0.0"
+ "p-try": "^2.0.0"
}
},
"p-locate": {
@@ -17382,7 +17382,7 @@
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
- "p-limit": "2.0.0"
+ "p-limit": "^2.0.0"
}
},
"p-try": {
@@ -17426,7 +17426,7 @@
"integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
"dev": true,
"requires": {
- "camelcase": "4.1.0"
+ "camelcase": "^4.1.0"
}
}
}
diff --git a/src/Epub.js b/src/Epub.js
index de1f2ee4..61716678 100755
--- a/src/Epub.js
+++ b/src/Epub.js
@@ -345,6 +345,7 @@ class Epub extends Component {
width={this.props.width}
height={this.props.height}
resizeOnOrientationChange={this.props.resizeOnOrientationChange}
+ loadingView={this.props.loadingView}
/>
);
}
diff --git a/src/Rendition.js b/src/Rendition.js
index 2cd6bd40..7858b400 100644
--- a/src/Rendition.js
+++ b/src/Rendition.js
@@ -413,19 +413,21 @@ class Rendition extends Component {
render() {
const WebViewer = (Platform.OS === 'ios') ? WKWebView : WebView;
- let loader = (
- this.props.onPress('')} style={styles.loadScreen}>
-
-
-
-
- );
+ let loader = this.props.loadingView ?
+ {this.props.loadingView} :
+ (
+ this.props.onPress('')} style={styles.loadScreen}>
+
+
+
+
+ );
if (!this.props.url) {
return loader;