skolplattformen-backup/packages/app/components/modalWebView.component.js

57 lines
1.4 KiB
JavaScript
Raw Normal View History

import {useApi} from '@skolplattformen/api-hooks'
import {Icon, Text} from '@ui-kitten/components'
2021-01-26 11:02:24 +00:00
import React from 'react'
import {Modal, StyleSheet, View} from 'react-native'
import {TouchableOpacity} from 'react-native-gesture-handler'
import {SafeAreaView} from 'react-native-safe-area-context'
import {WebView} from 'react-native-webview'
2021-01-26 11:02:24 +00:00
import URI from 'jsuri'
export const ModalWebView = ({url, onClose}) => {
const {api} = useApi()
const cookie = api.getSessionCookie()
2021-01-26 11:02:24 +00:00
const uri = new URI(url)
return (
<Modal>
<SafeAreaView style={styles.container}>
<View style={styles.headerWrapper}>
<View style={styles.header}>
<Text category="s1">{uri.host()}</Text>
<TouchableOpacity onPress={onClose}>
<Icon name="close-circle" style={styles.icon} fill="#333333" />
2021-01-26 11:02:24 +00:00
</TouchableOpacity>
</View>
</View>
<WebView
style={styles.webview}
source={{uri: url, headers: {cookie}}}
/>
2021-01-26 11:02:24 +00:00
</SafeAreaView>
</Modal>
)
}
const styles = StyleSheet.create({
container: {
flex: 1,
2021-01-26 11:02:24 +00:00
},
headerWrapper: {
backgroundColor: '#333333',
padding: 5,
},
header: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
paddingHorizontal: 10,
paddingVertical: 4,
backgroundColor: '#ffffff',
borderRadius: 5,
},
icon: {
width: 30,
height: 30,
},
webview: {},
2021-01-26 11:02:24 +00:00
})