lbry-desktop/ui/component/viewers/comicBookViewer.jsx

39 lines
990 B
React
Raw Normal View History

2019-05-09 00:47:39 +02:00
// @flow
import * as React from 'react';
import Villain from 'villain-react';
import 'villain-react/dist/style.css';
2019-05-09 00:47:39 +02:00
type Props = {
theme: string,
2019-05-09 00:47:39 +02:00
source: {
fileType: string,
2019-05-16 08:32:53 +02:00
downloadPath: string,
2019-05-09 00:47:39 +02:00
},
};
let workerUrl = 'webworkers/worker-bundle.js';
2019-06-04 20:32:42 +02:00
if (process.env.NODE_ENV !== 'production') {
// Don't add a leading slash in production because electron treats it as an absolute path
workerUrl = `/${workerUrl}`;
2019-06-04 20:32:42 +02:00
}
2019-05-16 08:32:53 +02:00
class ComicBookViewer extends React.PureComponent<Props> {
2019-05-09 00:47:39 +02:00
render() {
2019-05-16 08:32:53 +02:00
const { downloadPath } = this.props.source || {};
// Archive source
2019-05-16 08:32:53 +02:00
const file = `file://${downloadPath}`;
// Villain options
const opts = {
theme: this.props.theme === 'dark' ? 'Dark' : 'Light',
allowFullScreen: true,
autoHideControls: false,
allowGlobalShortcuts: true,
};
2019-05-16 08:32:53 +02:00
2020-04-16 05:33:43 +02:00
return <Villain source={file} style={{ width: '100%', height: '100%' }} options={opts} workerUrl={workerUrl} />;
2019-05-09 00:47:39 +02:00
}
}
export default ComicBookViewer;