Skip to content

Commit

Permalink
Mobile changes (#1784)
Browse files Browse the repository at this point in the history
* privacy link

* remove spacedrop screens, add browse

* icon

* changes and network screen

* bump react native
  • Loading branch information
utkubakir committed Nov 22, 2023
1 parent 3de321e commit 43b6453
Show file tree
Hide file tree
Showing 13 changed files with 213 additions and 319 deletions.
2 changes: 1 addition & 1 deletion apps/mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"phosphor-react-native": "^1.1.2",
"react": "^18.2.0",
"react-hook-form": "^7.47.0",
"react-native": "0.72.5",
"react-native": "0.72.6",
"react-native-document-picker": "^9.0.1",
"react-native-fs": "^2.20.0",
"react-native-gesture-handler": "~2.12.1",
Expand Down
3 changes: 0 additions & 3 deletions apps/mobile/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@ function AppNavigation() {

initPlausible({ platformType: 'mobile', buildInfo: buildInfo?.data });

// TODO: Make sure library has actually been loaded by this point - precache with useCachedLibraries?
// if (library === undefined) throw new Error("Tried to render AppNavigation before libraries fetched!")

const navRef = useNavigationContainerRef();
const routeNameRef = useRef<string>();

Expand Down
23 changes: 23 additions & 0 deletions apps/mobile/src/components/icons/Icon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { getIcon, iconNames } from '@sd/assets/util';
import { Image, ImageProps } from 'react-native';
import { isDarkTheme } from '@sd/client';

export type IconName = keyof typeof iconNames;

interface IconProps extends Omit<ImageProps, 'source'> {
name: IconName;
size?: number;
theme?: 'dark' | 'light';
}

export const Icon = ({ name, size, theme, ...props }: IconProps) => {
const isDark = isDarkTheme();

return (
<Image
{...props}
style={{ width: size, height: size }}
source={getIcon(name, theme ? theme === 'dark' : isDark)}
/>
);
};
24 changes: 12 additions & 12 deletions apps/mobile/src/navigation/TabNavigator.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { BottomTabScreenProps, createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { CompositeScreenProps, NavigatorScreenParams } from '@react-navigation/native';
import { Broadcast, CirclesFour, Planet } from 'phosphor-react-native';
import { CirclesFour, FolderOpen, Planet } from 'phosphor-react-native';
import { tw } from '~/lib/tailwind';

import type { HomeDrawerScreenProps } from './DrawerNavigator';
import BrowseStack, { BrowseStackParamList } from './tabs/BrowseStack';
import NetworkStack, { NetworkStackParamList } from './tabs/NetworkStack';
import OverviewStack, { OverviewStackParamList } from './tabs/OverviewStack';
import SpacedropStack, { SpacedropStackParamList } from './tabs/SpacedropStack';
import SpacesStack, { SpacesStackParamList } from './tabs/SpacesStack';

const Tab = createBottomTabNavigator<TabParamList>();

Expand Down Expand Up @@ -41,8 +41,8 @@ export default function TabNavigator() {
}}
/>
<Tab.Screen
name="SpacesStack"
component={SpacesStack}
name="NetworkStack"
component={NetworkStack}
options={{
tabBarIcon: ({ focused }) => (
<CirclesFour
Expand All @@ -51,22 +51,22 @@ export default function TabNavigator() {
color={focused ? tw.color('accent') : tw.color('ink')}
/>
),
tabBarLabel: 'Spaces',
tabBarLabel: 'Network',
tabBarLabelStyle: tw`text-[10px] font-semibold`
}}
/>
<Tab.Screen
name="SpacedropStack"
component={SpacedropStack}
name="BrowseStack"
component={BrowseStack}
options={{
tabBarIcon: ({ focused }) => (
<Broadcast
<FolderOpen
size={22}
weight={focused ? 'bold' : 'regular'}
color={focused ? tw.color('accent') : tw.color('ink')}
/>
),
tabBarLabel: 'Spacedrop',
tabBarLabel: 'Browse',
tabBarLabelStyle: tw`text-[10px] font-semibold`
}}
/>
Expand All @@ -76,8 +76,8 @@ export default function TabNavigator() {

export type TabParamList = {
OverviewStack: NavigatorScreenParams<OverviewStackParamList>;
SpacedropStack: NavigatorScreenParams<SpacedropStackParamList>;
SpacesStack: NavigatorScreenParams<SpacesStackParamList>;
NetworkStack: NavigatorScreenParams<NetworkStackParamList>;
BrowseStack: NavigatorScreenParams<BrowseStackParamList>;
};

export type TabScreenProps<Screen extends keyof TabParamList> = CompositeScreenProps<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,36 @@ import { CompositeScreenProps } from '@react-navigation/native';
import { createStackNavigator, StackScreenProps } from '@react-navigation/stack';
import Header from '~/components/header/Header';
import { tw } from '~/lib/tailwind';
import BrowseScreen from '~/screens/Browse';

import SpacesScreen from '../../screens/Spaces';
import { SharedScreens, SharedScreensParamList } from '../SharedScreens';
import { TabScreenProps } from '../TabNavigator';

const Stack = createStackNavigator<SpacesStackParamList>();
const Stack = createStackNavigator<BrowseStackParamList>();

export default function SpacesStack() {
export default function BrowseStack() {
return (
<Stack.Navigator
initialRouteName="Spaces"
initialRouteName="Browse"
screenOptions={{
headerStyle: { backgroundColor: tw.color('app-box') },
headerTintColor: tw.color('ink'),
headerTitleStyle: tw`text-base`,
headerBackTitleStyle: tw`text-base`
}}
>
<Stack.Screen name="Spaces" component={SpacesScreen} options={{ header: Header }} />
<Stack.Screen name="Browse" component={BrowseScreen} options={{ header: Header }} />
{SharedScreens(Stack as any)}
</Stack.Navigator>
);
}

export type SpacesStackParamList = {
Spaces: undefined;
export type BrowseStackParamList = {
Browse: undefined;
} & SharedScreensParamList;

export type SpacesStackScreenProps<Screen extends keyof SpacesStackParamList> =
export type BrowseStackScreenProps<Screen extends keyof BrowseStackParamList> =
CompositeScreenProps<
StackScreenProps<SpacesStackParamList, Screen>,
TabScreenProps<'SpacesStack'>
StackScreenProps<BrowseStackParamList, Screen>,
TabScreenProps<'BrowseStack'>
>;
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,36 @@ import { CompositeScreenProps } from '@react-navigation/native';
import { createStackNavigator, StackScreenProps } from '@react-navigation/stack';
import Header from '~/components/header/Header';
import { tw } from '~/lib/tailwind';
import SpacedropScreen from '~/screens/Spacedrop';

import NetworkScreen from '../../screens/Network';
import { SharedScreens, SharedScreensParamList } from '../SharedScreens';
import { TabScreenProps } from '../TabNavigator';

const Stack = createStackNavigator<SpacedropStackParamList>();
const Stack = createStackNavigator<NetworkStackParamList>();

export default function SpacedropStack() {
export default function NetworkStack() {
return (
<Stack.Navigator
initialRouteName="Spacedrop"
initialRouteName="Network"
screenOptions={{
headerStyle: { backgroundColor: tw.color('app-box') },
headerTintColor: tw.color('ink'),
headerTitleStyle: tw`text-base`,
headerBackTitleStyle: tw`text-base`
}}
>
<Stack.Screen
name="Spacedrop"
component={SpacedropScreen}
options={{ header: Header }}
/>
<Stack.Screen name="Network" component={NetworkScreen} options={{ header: Header }} />
{SharedScreens(Stack as any)}
</Stack.Navigator>
);
}

export type SpacedropStackParamList = {
Spacedrop: undefined;
export type NetworkStackParamList = {
Network: undefined;
} & SharedScreensParamList;

export type SpacedropStackScreenProps<Screen extends keyof SpacedropStackParamList> =
export type NetworkStackScreenProps<Screen extends keyof NetworkStackParamList> =
CompositeScreenProps<
StackScreenProps<SpacedropStackParamList, Screen>,
TabScreenProps<'SpacedropStack'>
StackScreenProps<NetworkStackParamList, Screen>,
TabScreenProps<'NetworkStack'>
>;
6 changes: 6 additions & 0 deletions apps/mobile/src/screens/Browse.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { View } from 'react-native';
import { BrowseStackScreenProps } from '~/navigation/tabs/BrowseStack';

export default function BrowseScreen({ navigation, route }: BrowseStackScreenProps<'Browse'>) {
return <View></View>;
}
17 changes: 17 additions & 0 deletions apps/mobile/src/screens/Network.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { Text, View } from 'react-native';
import { Icon } from '~/components/icons/Icon';
import { tw } from '~/lib/tailwind';
import { NetworkStackScreenProps } from '~/navigation/tabs/NetworkStack';

export default function NetworkScreen({ navigation }: NetworkStackScreenProps<'Network'>) {
return (
<View style={tw`flex-1 items-center justify-center`}>
<Icon name="Globe" size={128} />
<Text style={tw`mt-4 text-lg font-bold text-white`}>Your Local Network</Text>
<Text style={tw`mt-1 max-w-sm text-center text-sm text-ink-dull`}>
Other Spacedrive nodes on your LAN will appear here, along with your default OS
network mounts.
</Text>
</View>
);
}
146 changes: 0 additions & 146 deletions apps/mobile/src/screens/Spacedrop.tsx

This file was deleted.

11 changes: 0 additions & 11 deletions apps/mobile/src/screens/Spaces.tsx

This file was deleted.

Loading

1 comment on commit 43b6453

@vercel
Copy link

@vercel vercel bot commented on 43b6453 Nov 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.