From 3e72bfa56c860826429a842f6c128d78d4a930db Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 1 Jun 2017 19:47:08 -0400 Subject: react-native-web port of fmf app --- client/src/lib/app/index.js | 164 ++ client/src/lib/components/button.js | 55 + client/src/lib/components/checkbox.js | 35 + client/src/lib/components/close.js | 33 + client/src/lib/components/container.js | 50 + client/src/lib/components/definition.js | 52 + client/src/lib/components/footer.js | 77 + client/src/lib/components/header.js | 52 + client/src/lib/components/heading.js | 34 + client/src/lib/components/htmlStyles.js | 32 + client/src/lib/components/mapStyle.js | 287 +++ client/src/lib/components/modal.js | 41 + client/src/lib/components/pushNotifications.js | 38 + client/src/lib/components/scrollableContainer.js | 51 + client/src/lib/components/text.js | 30 + client/src/lib/components/webViewModal.js | 56 + client/src/lib/components/youtube.js | 91 + client/src/lib/db/backupDB.js | 2278 ++++++++++++++++++++++ client/src/lib/db/hosts.js | 9 + client/src/lib/db/index.js | 85 + client/src/lib/drone/index.js | 216 ++ client/src/lib/timeline/index.js | 164 ++ client/src/lib/timeline/tickMarks.js | 192 ++ client/src/lib/timeline/timelineEvent.js | 102 + client/src/lib/timeline/timelineFilter.js | 127 ++ client/src/lib/timeline/timelineFull.js | 227 +++ client/src/lib/timeline/timelineHeader.js | 111 ++ client/src/lib/views/contact.js | 307 +++ client/src/lib/views/credits.js | 34 + client/src/lib/views/home.js | 98 + client/src/lib/views/information.js | 114 ++ client/src/lib/views/livestream.js | 134 ++ client/src/lib/views/nav.js | 119 ++ client/src/lib/views/privacy.js | 33 + 34 files changed, 5528 insertions(+) create mode 100644 client/src/lib/app/index.js create mode 100644 client/src/lib/components/button.js create mode 100644 client/src/lib/components/checkbox.js create mode 100644 client/src/lib/components/close.js create mode 100644 client/src/lib/components/container.js create mode 100644 client/src/lib/components/definition.js create mode 100644 client/src/lib/components/footer.js create mode 100644 client/src/lib/components/header.js create mode 100644 client/src/lib/components/heading.js create mode 100644 client/src/lib/components/htmlStyles.js create mode 100644 client/src/lib/components/mapStyle.js create mode 100644 client/src/lib/components/modal.js create mode 100644 client/src/lib/components/pushNotifications.js create mode 100644 client/src/lib/components/scrollableContainer.js create mode 100644 client/src/lib/components/text.js create mode 100644 client/src/lib/components/webViewModal.js create mode 100644 client/src/lib/components/youtube.js create mode 100644 client/src/lib/db/backupDB.js create mode 100644 client/src/lib/db/hosts.js create mode 100644 client/src/lib/db/index.js create mode 100644 client/src/lib/drone/index.js create mode 100644 client/src/lib/timeline/index.js create mode 100644 client/src/lib/timeline/tickMarks.js create mode 100644 client/src/lib/timeline/timelineEvent.js create mode 100644 client/src/lib/timeline/timelineFilter.js create mode 100644 client/src/lib/timeline/timelineFull.js create mode 100644 client/src/lib/timeline/timelineHeader.js create mode 100644 client/src/lib/views/contact.js create mode 100644 client/src/lib/views/credits.js create mode 100644 client/src/lib/views/home.js create mode 100644 client/src/lib/views/information.js create mode 100644 client/src/lib/views/livestream.js create mode 100644 client/src/lib/views/nav.js create mode 100644 client/src/lib/views/privacy.js (limited to 'client/src/lib') diff --git a/client/src/lib/app/index.js b/client/src/lib/app/index.js new file mode 100644 index 0000000..dc4d9ac --- /dev/null +++ b/client/src/lib/app/index.js @@ -0,0 +1,164 @@ +import React, { Component } from 'react' +import { + AppRegistry, + Dimensions, + Image, + StyleSheet, + StatusBar, + Text, + View +} from 'react-native' +import { Route, Link, Redirect, withRouter } from 'react-router-dom' + +const window = Dimensions.get('window') + +import db from '../db' + +import Home from '../views/home' +import Nav from '../views/nav' +import Timeline from '../timeline' +import Drone from '../drone' +import Livestream from '../views/livestream' +import Information from '../views/information' +import Contact from '../views/contact' +import Credits from '../views/credits' +import Privacy from '../views/privacy' +import WebViewModal from '../components/webViewModal' +import Footer from '../components/footer' +import Header from '../components/header' + +let touchTimeout; + +class App extends Component { + constructor() { + super() + this.state = { + view: 'home', + db: db.backup(), + visitedTimeline: false, + url: '', + } + + // reset to home screen after some period of inactivity + this.visitedTimeline = false + + this.onLinkPress = this.onLinkPress.bind(this) + this.onCloseWebViewModal = this.onCloseWebViewModal.bind(this) + } + onLinkPress(url) { + if (url.indexOf('/') === 0) { + this.props.history.push(url) + } + else { + global.open(url) + } + } + onCloseWebViewModal() { + this.setState({ url: '' }) + } + render() { + return ( + + { + return (
) + }}/> + + ( + + )}/> + { + if (! this.visitedTimeline) { + setTimeout(() => { + this.visitedTimeline = true + }, 600) + } + else if (this.timelineView) { + setImmediate( () => this.timelineView.onFilter('') ) + } + return ( + this.timelineView = ref} + firstTime={! this.visitedTimeline} + content={this.state.db.page['history-of-surveillance']} + events={this.state.db.timeline} + onLinkPress={this.onLinkPress} + {...props} + /> + ) + }}/> + ( + + )}/> + ( + + )}/> + ( + + )}/> + ( + + )}/> + ( + + )}/> + ( + + )}/> + + +