Add mock API and reorg code for clarity
This commit is contained in:
parent
de87ec17d1
commit
1d00f3b984
29 changed files with 356 additions and 168 deletions
|
@ -4,7 +4,7 @@ import * as ucan from 'ucans'
|
|||
import {InAppBrowser} from 'react-native-inappbrowser-reborn'
|
||||
import {isWeb} from '../platform/detection'
|
||||
import {extractHashFragment, makeAppUrl} from '../platform/urls'
|
||||
import {ReactNativeStore, parseUrlForUcan} from '../state/auth'
|
||||
import {ReactNativeStore, parseUrlForUcan} from '../state/lib/auth'
|
||||
import * as env from '../env'
|
||||
|
||||
export async function requestAppUcan(
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import * as auth from '@adxp/auth'
|
||||
import * as ucan from 'ucans'
|
||||
import {makeAppUrl} from '../platform/urls'
|
||||
import {ReactNativeStore} from '../state/auth'
|
||||
import {ReactNativeStore} from '../state/lib/auth'
|
||||
import * as env from '../env'
|
||||
|
||||
export async function requestAppUcan(
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
import React from 'react'
|
||||
import {Pressable, View, StyleSheet} from 'react-native'
|
||||
import {Link} from '@react-navigation/native'
|
||||
import {useRoute} from '@react-navigation/native'
|
||||
|
||||
export const NavItem: React.FC<{label: string; screen: string}> = ({
|
||||
label,
|
||||
screen,
|
||||
}) => {
|
||||
const route = useRoute()
|
||||
return (
|
||||
<View>
|
||||
<Pressable
|
||||
style={state => [
|
||||
// @ts-ignore it does exist! (react-native-web) -prf
|
||||
state.hovered && styles.navItemHovered,
|
||||
]}>
|
||||
<Link
|
||||
style={[
|
||||
styles.navItemLink,
|
||||
route.name === screen && styles.navItemLinkSelected,
|
||||
]}
|
||||
to={{screen, params: {}}}>
|
||||
{label}
|
||||
</Link>
|
||||
</Pressable>
|
||||
</View>
|
||||
)
|
||||
}
|
||||
|
||||
export const DesktopLeftColumn: React.FC = () => {
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<NavItem screen="Home" label="Home" />
|
||||
<NavItem screen="Search" label="Search" />
|
||||
<NavItem screen="Notifications" label="Notifications" />
|
||||
</View>
|
||||
)
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
position: 'absolute',
|
||||
left: 'calc(50vw - 500px)',
|
||||
width: '200px',
|
||||
height: '100%',
|
||||
},
|
||||
navItemHovered: {
|
||||
backgroundColor: 'gray',
|
||||
},
|
||||
navItemLink: {
|
||||
padding: '1rem',
|
||||
},
|
||||
navItemLinkSelected: {
|
||||
color: 'blue',
|
||||
},
|
||||
})
|
|
@ -1,19 +0,0 @@
|
|||
import React from 'react'
|
||||
import {Text, View, StyleSheet} from 'react-native'
|
||||
|
||||
export const DesktopRightColumn: React.FC = () => {
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<Text>Right Column</Text>
|
||||
</View>
|
||||
)
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
position: 'absolute',
|
||||
right: 'calc(50vw - 500px)',
|
||||
width: '200px',
|
||||
height: '100%',
|
||||
},
|
||||
})
|
|
@ -1,35 +0,0 @@
|
|||
import React from 'react'
|
||||
import {observer} from 'mobx-react-lite'
|
||||
import {View, StyleSheet} from 'react-native'
|
||||
import {DesktopLeftColumn} from './left-column'
|
||||
import {DesktopRightColumn} from './right-column'
|
||||
import {useStores} from '../../state'
|
||||
|
||||
export const DesktopWebShell: React.FC = observer(({children}) => {
|
||||
const store = useStores()
|
||||
return (
|
||||
<View style={styles.outerContainer}>
|
||||
{store.session.isAuthed ? (
|
||||
<>
|
||||
<DesktopLeftColumn />
|
||||
<View style={styles.innerContainer}>{children}</View>
|
||||
<DesktopRightColumn />
|
||||
</>
|
||||
) : (
|
||||
<View style={styles.innerContainer}>{children}</View>
|
||||
)}
|
||||
</View>
|
||||
)
|
||||
})
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
outerContainer: {
|
||||
height: '100%',
|
||||
},
|
||||
innerContainer: {
|
||||
marginLeft: 'auto',
|
||||
marginRight: 'auto',
|
||||
width: '600px',
|
||||
height: '100%',
|
||||
},
|
||||
})
|
|
@ -1,12 +0,0 @@
|
|||
import React from 'react'
|
||||
import {SafeAreaView} from 'react-native'
|
||||
import {isDesktopWeb} from './detection'
|
||||
import {DesktopWebShell} from './desktop-web/shell'
|
||||
|
||||
export const Shell: React.FC = ({children}) => {
|
||||
return isDesktopWeb ? (
|
||||
<DesktopWebShell>{children}</DesktopWebShell>
|
||||
) : (
|
||||
<SafeAreaView>{children}</SafeAreaView>
|
||||
)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue