2018-11-08 22:35:19 +01:00
|
|
|
/* global window, navigator */
|
2018-07-27 15:11:46 +02:00
|
|
|
|
2018-09-07 00:56:04 +02:00
|
|
|
window.LIMITS = {
|
|
|
|
ANON: {
|
|
|
|
MAX_FILE_SIZE: 1024 * 1024 * 1024 * 2,
|
|
|
|
MAX_DOWNLOADS: 32,
|
|
|
|
MAX_EXPIRE_SECONDS: 604800
|
|
|
|
},
|
|
|
|
MAX_FILE_SIZE: 1024 * 1024 * 1024 * 2,
|
|
|
|
MAX_DOWNLOADS: 32,
|
|
|
|
MAX_EXPIRE_SECONDS: 604800,
|
|
|
|
MAX_FILES_PER_ARCHIVE: 32,
|
|
|
|
MAX_ARCHIVES_PER_USER: 32
|
|
|
|
};
|
|
|
|
|
|
|
|
window.DEFAULTS = {
|
2018-09-25 20:36:23 +02:00
|
|
|
DOWNLOAD_COUNTS: [1, 2, 3, 4, 5, 20, 50, 100, 200],
|
|
|
|
EXPIRE_TIMES_SECONDS: [300, 3600, 86400, 604800],
|
2018-09-07 00:56:04 +02:00
|
|
|
EXPIRE_SECONDS: 3600
|
|
|
|
};
|
2018-07-27 15:11:46 +02:00
|
|
|
|
2018-08-16 18:07:12 +02:00
|
|
|
const choo = require('choo');
|
2018-11-02 23:51:27 +01:00
|
|
|
const html = require('choo/html');
|
|
|
|
const assets = require('../common/assets');
|
|
|
|
const header = require('../app/ui/header');
|
|
|
|
const locale = require('../common/locales');
|
|
|
|
const home = require('../app/ui/home');
|
2018-08-16 18:07:12 +02:00
|
|
|
const app = choo();
|
2018-07-27 15:11:46 +02:00
|
|
|
|
2018-11-08 22:35:19 +01:00
|
|
|
if (navigator.userAgent === 'Send Android') {
|
|
|
|
assets.setPrefix('/android_asset');
|
|
|
|
}
|
|
|
|
|
2018-11-02 23:51:27 +01:00
|
|
|
function body(main) {
|
|
|
|
return function(state, emit) {
|
2018-11-09 00:12:07 +01:00
|
|
|
return html`
|
|
|
|
<body
|
|
|
|
class="flex flex-col items-center font-sans bg-blue-lightest md:h-screen md:bg-grey-lightest"
|
|
|
|
>
|
|
|
|
<a
|
|
|
|
id="hamburger"
|
|
|
|
class="absolute pin-t pin-r z-50"
|
|
|
|
href="#"
|
|
|
|
onclick="${clickPreferences}"
|
|
|
|
>
|
|
|
|
<img src="${assets.get('preferences.png')}" />
|
|
|
|
</a>
|
|
|
|
${header(state, emit)} ${main(state, emit)}
|
|
|
|
</body>
|
|
|
|
`;
|
2018-11-02 23:51:27 +01:00
|
|
|
|
|
|
|
function clickPreferences(event) {
|
|
|
|
event.preventDefault();
|
|
|
|
emit('pushState', '/preferences');
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2018-11-08 22:35:19 +01:00
|
|
|
app.use(require('./stores/state').default);
|
2018-11-02 23:51:27 +01:00
|
|
|
app.use((state, emitter) => {
|
|
|
|
state.translate = locale.getTranslator();
|
2018-11-08 22:35:19 +01:00
|
|
|
state.capabilities = {
|
|
|
|
account: true
|
|
|
|
}; //TODO
|
|
|
|
|
|
|
|
window.finishLogin = async function(accountInfo) {
|
|
|
|
await state.user.finishLogin(accountInfo);
|
|
|
|
emitter.emit('render');
|
|
|
|
};
|
2018-11-02 23:51:27 +01:00
|
|
|
|
|
|
|
// for debugging
|
|
|
|
window.appState = state;
|
|
|
|
window.appEmit = emitter.emit.bind(emitter);
|
|
|
|
});
|
2018-11-09 00:12:07 +01:00
|
|
|
app.use(require('../app/controller').default);
|
2018-08-16 18:07:12 +02:00
|
|
|
app.use(require('./stores/intents').default);
|
2018-11-02 23:51:27 +01:00
|
|
|
app.route('/', body(home));
|
2018-09-24 18:30:27 +02:00
|
|
|
app.route('/options', require('./pages/options').default);
|
2018-08-16 18:07:12 +02:00
|
|
|
app.route('/upload', require('./pages/upload').default);
|
|
|
|
app.route('/share/:id', require('./pages/share').default);
|
2018-09-07 00:56:04 +02:00
|
|
|
app.route('/preferences', require('./pages/preferences').default);
|
2018-09-24 18:30:27 +02:00
|
|
|
app.route('/error', require('./pages/error').default);
|
|
|
|
//app.route('/debugging', require('./pages/debugging').default);
|
|
|
|
// add /api/filelist
|
2018-08-16 18:07:12 +02:00
|
|
|
app.mount('body');
|