浏览代码

dark mode, some cleanup

Alex Trofimov 10 月之前
父节点
当前提交
db6be731fd

+ 0 - 4
app.json

@@ -33,10 +33,6 @@
       "edgeToEdgeEnabled": true,
       "predictiveBackGestureEnabled": false
     },
-    "web": {
-      "output": "static",
-      "favicon": "./assets/images/favicon.png"
-    },
     "plugins": [
       [
           "onesignal-expo-plugin",

+ 0 - 24
app/1111_layout.tsx

@@ -1,24 +0,0 @@
-import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
-import { Stack } from 'expo-router';
-import { StatusBar } from 'expo-status-bar';
-import 'react-native-reanimated';
-
-import { useColorScheme } from '@/hooks/use-color-scheme';
-
-export const unstable_settings = {
-  anchor: '(tabs)',
-};
-
-export default function RootLayout() {
-  const colorScheme = useColorScheme();
-
-  return (
-    <ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
-      <Stack>
-        <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
-        <Stack.Screen name="modal" options={{ presentation: 'modal', title: 'Modal' }} />
-      </Stack>
-      <StatusBar style="auto" />
-    </ThemeProvider>
-  );
-}

+ 10 - 105
app/index.tsx

@@ -1,5 +1,8 @@
+import { ThemedView } from '@/components/themed-view';
+import { useColorScheme } from '@/hooks/use-color-scheme';
+import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
 import { useEffect, useRef, useState } from "react";
-import { BackHandler, Platform, StyleSheet, View } from "react-native";
+import { BackHandler, Platform, StyleSheet } from "react-native";
 import { LogLevel, OneSignal } from 'react-native-onesignal';
 import { WebView, WebViewNavigation } from "react-native-webview";
 import BottomTabs from "../components/bottom-tabs";
@@ -10,6 +13,7 @@ import { WebViewHandlers } from "../types/webview-handlers-type";
 import { requestAndroidPermissions } from "../utils/android-permissins-request";
 
 export default function App() {
+    const colorScheme = useColorScheme();
     const webViewRef = useRef<WebView>(null);
 
     const [loggedin, setLoggedIn] = useState(false);
@@ -99,7 +103,8 @@ export default function App() {
     };
 
     return (
-      <View style={styles.container}>
+      <ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
+      <ThemedView style={styles.container}>
         <Header
           title={title}
           loading={loading}
@@ -115,111 +120,11 @@ export default function App() {
         {loggedin === true && (
           <BottomTabs webViewRef={webViewRef} data={data} />
         )}
-      </View>
+      </ThemedView>
+      </ThemeProvider>
     );
 }
 
 const styles = StyleSheet.create({
   container: { flex: 1 },
-});
-
-/*
-import { Image } from 'expo-image';
-import { Platform, StyleSheet } from 'react-native';
-
-import { HelloWave } from '@/components/hello-wave';
-import ParallaxScrollView from '@/components/parallax-scroll-view';
-import { ThemedText } from '@/components/themed-text';
-import { ThemedView } from '@/components/themed-view';
-import { Link } from 'expo-router';
-
-export default function HomeScreen() {
-  return (
-    <ParallaxScrollView
-      headerBackgroundColor={{ light: '#A1CEDC', dark: '#1D3D47' }}
-      headerImage={
-        <Image
-          source={require('@/assets/images/partial-react-logo.png')}
-          style={styles.reactLogo}
-        />
-      }>
-      <ThemedView style={styles.titleContainer}>
-        <ThemedText type="title">Welcome!</ThemedText>
-        <HelloWave />
-      </ThemedView>
-      <ThemedView style={styles.stepContainer}>
-        <ThemedText type="subtitle">Step 1: Try it</ThemedText>
-        <ThemedText>
-          Edit <ThemedText type="defaultSemiBold">app/(tabs)/index.tsx</ThemedText> to see changes.
-          Press{' '}
-          <ThemedText type="defaultSemiBold">
-            {Platform.select({
-              ios: 'cmd + d',
-              android: 'cmd + m',
-              web: 'F12',
-            })}
-          </ThemedText>{' '}
-          to open developer tools.
-        </ThemedText>
-      </ThemedView>
-      <ThemedView style={styles.stepContainer}>
-        <Link href="/modal">
-          <Link.Trigger>
-            <ThemedText type="subtitle">Step 2: Explore</ThemedText>
-          </Link.Trigger>
-          <Link.Preview />
-          <Link.Menu>
-            <Link.MenuAction title="Action" icon="cube" onPress={() => alert('Action pressed')} />
-            <Link.MenuAction
-              title="Share"
-              icon="square.and.arrow.up"
-              onPress={() => alert('Share pressed')}
-            />
-            <Link.Menu title="More" icon="ellipsis">
-              <Link.MenuAction
-                title="Delete"
-                icon="trash"
-                destructive
-                onPress={() => alert('Delete pressed')}
-              />
-            </Link.Menu>
-          </Link.Menu>
-        </Link>
-
-        <ThemedText>
-          {`Tap the Explore tab to learn more about what's included in this starter app.`}
-        </ThemedText>
-      </ThemedView>
-      <ThemedView style={styles.stepContainer}>
-        <ThemedText type="subtitle">Step 3: Get a fresh start</ThemedText>
-        <ThemedText>
-          {`When you're ready, run `}
-          <ThemedText type="defaultSemiBold">npm run reset-project</ThemedText> to get a fresh{' '}
-          <ThemedText type="defaultSemiBold">app</ThemedText> directory. This will move the current{' '}
-          <ThemedText type="defaultSemiBold">app</ThemedText> to{' '}
-          <ThemedText type="defaultSemiBold">app-example</ThemedText>.
-        </ThemedText>
-      </ThemedView>
-    </ParallaxScrollView>
-  );
-}
-
-const styles = StyleSheet.create({
-  titleContainer: {
-    flexDirection: 'row',
-    alignItems: 'center',
-    gap: 8,
-  },
-  stepContainer: {
-    gap: 8,
-    marginBottom: 8,
-  },
-  reactLogo: {
-    height: 178,
-    width: 290,
-    bottom: 0,
-    left: 0,
-    position: 'absolute',
-  },
-});
-*/
+});

+ 0 - 29
app/modal.tsx

@@ -1,29 +0,0 @@
-import { Link } from 'expo-router';
-import { StyleSheet } from 'react-native';
-
-import { ThemedText } from '@/components/themed-text';
-import { ThemedView } from '@/components/themed-view';
-
-export default function ModalScreen() {
-  return (
-    <ThemedView style={styles.container}>
-      <ThemedText type="title">This is a modal</ThemedText>
-      <Link href="/" dismissTo style={styles.link}>
-        <ThemedText type="link">Go to home screen</ThemedText>
-      </Link>
-    </ThemedView>
-  );
-}
-
-const styles = StyleSheet.create({
-  container: {
-    flex: 1,
-    alignItems: 'center',
-    justifyContent: 'center',
-    padding: 20,
-  },
-  link: {
-    marginTop: 15,
-    paddingVertical: 15,
-  },
-});

二进制
assets/images/favicon.png


二进制
assets/images/partial-react-logo.png


二进制
assets/images/react-logo.png


二进制
assets/images/react-logo@2x.png


二进制
assets/images/react-logo@3x.png


+ 32 - 19
components/bottom-tabs.tsx

@@ -1,8 +1,11 @@
+import { HapticTab } from "@/components/haptic-tab";
+import { ThemedView } from '@/components/themed-view';
+import { useThemeColor } from '@/hooks/use-theme-color';
 import { RefObject } from "react";
-import { Pressable, StyleSheet, Text, View } from "react-native";
+import { StyleSheet, Text, View } from "react-native";
 import { WebView } from "react-native-webview";
 import { UNA_URL } from "../constants/settings";
-import { Bars, Bell, Chat, Plus, User } from "./icons";
+import { Bars, Bell, Chat, Plus, Search, User } from "./icons";
 
 type Props = {
   webViewRef: RefObject<WebView>;
@@ -10,6 +13,9 @@ type Props = {
 };
 
 export default function BottomTabs({ webViewRef, data }: Props) {
+  const iconColor = useThemeColor({}, 'icon');
+  const borderColor = useThemeColor({}, 'border');
+
   const runFuncJS = (js: string) => {
     webViewRef.current?.injectJavaScript(`
       if (window.${js}) {
@@ -36,31 +42,36 @@ export default function BottomTabs({ webViewRef, data }: Props) {
   };
 
   return (
-    <View style={styles.container}>
-      <Pressable onPress={() => runFuncJS("bx_mobile_apps_show_main_menu")}>
-        <Bars size={24} color="#111" />
-      </Pressable>
+    <ThemedView style={[{ borderColor }, styles.container]}>
+
+      <HapticTab onPress={() => runFuncJS("bx_mobile_apps_show_main_menu")}>
+        <Bars size={24} color={iconColor} />
+      </HapticTab>
 
-      <Pressable onPress={() => runJS(`document.location = "${UNA_URL}/page.php?i=notifications-view"`)}>
-        <Bell size={24} color="#111" />
+      <HapticTab onPress={() => runJS(`document.location = "${UNA_URL}/page.php?i=notifications-view"`)}>
+        <Bell size={24} color={iconColor} />
         {renderBadge(data.bubbles?.['notifications-preview'] ?? 0)}
-      </Pressable>
+      </HapticTab>
 
-      <Pressable onPress={() => runFuncJS("bx_mobile_apps_show_add_menu")}>
-        <Plus size={24} color="#111" />
-      </Pressable>
+      <HapticTab onPress={() => runFuncJS("bx_mobile_apps_show_add_menu")}>
+        <Plus size={24} color={iconColor} />
+      </HapticTab>
 
-      <Pressable onPress={() => runFuncJS("bx_mobile_apps_show_messenger_menu")}>
-        <Chat size={24} color="#111" />
+      <HapticTab onPress={() => runFuncJS("bx_mobile_apps_show_messenger_menu")}>
+        <Chat size={24} color={iconColor} />
         {renderBadge(data.bubbles?.['notifications-messenger'] ?? 0)}
-      </Pressable>
+      </HapticTab>
+
+      <HapticTab onPress={() => runJS(`document.location = "${UNA_URL}/searchKeyword.php"`)}>
+        <Search size={24} color={iconColor} />
+      </HapticTab>
 
-      <Pressable onPress={() => runFuncJS("bx_mobile_apps_show_profile_menu")}>
-        <User size={24} color="#111" />
+      <HapticTab onPress={() => runFuncJS("bx_mobile_apps_show_profile_menu")}>
+        <User size={24} color={iconColor} />
         {renderBadge(data.bubbles?.account ?? 0)}
-      </Pressable>
+      </HapticTab>
 
-    </View>
+    </ThemedView>
   );
 }
 
@@ -71,8 +82,10 @@ const styles = StyleSheet.create({
     justifyContent: "space-around",
     alignItems: "center",
     borderTopWidth: 1,
+    /*
     borderColor: "#ddd",
     backgroundColor: "#fff",
+    */
   },
   tab: {
     justifyContent: "center",

+ 14 - 12
components/header.tsx

@@ -1,4 +1,7 @@
-import { ActivityIndicator, Pressable, StyleSheet, Text, View } from "react-native";
+import { ThemedText } from '@/components/themed-text';
+import { ThemedView } from '@/components/themed-view';
+import { useThemeColor } from '@/hooks/use-theme-color';
+import { ActivityIndicator, Pressable, StyleSheet } from "react-native";
 
 type Props = {
   title: string;
@@ -8,26 +11,27 @@ type Props = {
 };
 
 export default function Header({ title, loading, canGoBack, onBack }: Props) {
+  const borderColor = useThemeColor({}, 'border');
   return (
-    <View style={styles.container}>
+    <ThemedView style={[{ borderColor }, styles.container]}>
       <Pressable
         onPress={onBack}
         disabled={!canGoBack}
         style={styles.back}
       >
-        <Text style={[styles.backText, !canGoBack && styles.disabled]}>
+        <ThemedText style={[styles.backText, !canGoBack && styles.disabled]}>
           ←
-        </Text>
+        </ThemedText>
       </Pressable>
 
-      <Text numberOfLines={1} style={styles.title}>
+      <ThemedText numberOfLines={1} style={styles.title}>
         {title || " "}
-      </Text>
+      </ThemedText>
 
-      <View style={styles.right}>
+      <ThemedView style={styles.right}>
         {loading && <ActivityIndicator size="small" />}
-      </View>
-    </View>
+      </ThemedView>
+    </ThemedView>
   );
 }
 
@@ -37,9 +41,7 @@ const styles = StyleSheet.create({
     flexDirection: "row",
     alignItems: "center",
     paddingHorizontal: 12,
-    borderBottomWidth: 1,
-    borderColor: "#ddd",
-    backgroundColor: "#fff",
+    borderBottomWidth: 1,    
   },
   back: {
     width: 40,

+ 0 - 19
components/hello-wave.tsx

@@ -1,19 +0,0 @@
-import Animated from 'react-native-reanimated';
-
-export function HelloWave() {
-  return (
-    <Animated.Text
-      style={{
-        fontSize: 28,
-        lineHeight: 32,
-        marginTop: -6,
-        animationName: {
-          '50%': { transform: [{ rotate: '25deg' }] },
-        },
-        animationIterationCount: 4,
-        animationDuration: '300ms',
-      }}>
-      👋
-    </Animated.Text>
-  );
-}

+ 1 - 63
components/icons.tsx

@@ -1,11 +1,7 @@
 import React from "react";
 import Svg, {
-  Defs,
   G,
-  LinearGradient,
-  Path,
-  RadialGradient,
-  Stop,
+  Path
 } from "react-native-svg";
 
 export type IconProps = {
@@ -14,64 +10,6 @@ export type IconProps = {
   style?: any;
 };
 
-/* ===================== LOGO ===================== */
-
-export function Logo({ size = 64, style }: IconProps) {
-  return (
-    <Svg
-      width={size}
-      height={(size * 1024) / 3264}
-      viewBox="0 0 3264 1024"
-      style={style}
-    >
-      <Path d="M840.961 925.025..." fill="url(#a)" />
-      <Path d="M181.2 100.447..." fill="url(#b)" />
-      <Path d="M512 992..." fill="url(#c)" />
-      <Path d="M709.38 302.273..." fill="url(#d)" />
-      <Path d="M1706.33 771.031..." fill="url(#e)" />
-      <Path d="M2123.11 242.93..." fill="url(#f)" />
-      <Path d="M3263.25 501.331..." fill="url(#g)" />
-
-      <Defs>
-        <RadialGradient id="a" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 260 -165.059 0 992 732)">
-          <Stop stopColor="#FB923C" />
-          <Stop offset={1} stopColor="#EF4444" />
-        </RadialGradient>
-
-        <RadialGradient id="b" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 -260 171.858 0 32 291.999)">
-          <Stop stopColor="#0EA5E9" />
-          <Stop offset={1} stopColor="#38BDF8" />
-        </RadialGradient>
-
-        <RadialGradient id="c" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 864 -719.971 0 632 128)">
-          <Stop stopColor="#38BDF8" />
-          <Stop offset={1} stopColor="#0284C7" />
-        </RadialGradient>
-
-        <RadialGradient id="d" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 864 -719.971 0 525.5 32)">
-          <Stop stopColor="#34D399" />
-          <Stop offset={1} stopColor="#059669" />
-        </RadialGradient>
-
-        <LinearGradient id="e" x1="1566" y1="203" x2="1566" y2="805">
-          <Stop stopColor="#F59E0B" />
-          <Stop offset={1} stopColor="#F97316" />
-        </LinearGradient>
-
-        <LinearGradient id="f" x1="2263" y1="208" x2="2263" y2="810">
-          <Stop stopColor="#F59E0B" />
-          <Stop offset={1} stopColor="#F97316" />
-        </LinearGradient>
-
-        <LinearGradient id="g" x1="2962" y1="208" x2="2962" y2="812">
-          <Stop stopColor="#F59E0B" />
-          <Stop offset={1} stopColor="#F97316" />
-        </LinearGradient>
-      </Defs>
-    </Svg>
-  );
-}
-
 /* ===================== ICON TEMPLATE ===================== */
 
 function StrokeIcon({

+ 0 - 79
components/parallax-scroll-view.tsx

@@ -1,79 +0,0 @@
-import type { PropsWithChildren, ReactElement } from 'react';
-import { StyleSheet } from 'react-native';
-import Animated, {
-  interpolate,
-  useAnimatedRef,
-  useAnimatedStyle,
-  useScrollOffset,
-} from 'react-native-reanimated';
-
-import { ThemedView } from '@/components/themed-view';
-import { useColorScheme } from '@/hooks/use-color-scheme';
-import { useThemeColor } from '@/hooks/use-theme-color';
-
-const HEADER_HEIGHT = 250;
-
-type Props = PropsWithChildren<{
-  headerImage: ReactElement;
-  headerBackgroundColor: { dark: string; light: string };
-}>;
-
-export default function ParallaxScrollView({
-  children,
-  headerImage,
-  headerBackgroundColor,
-}: Props) {
-  const backgroundColor = useThemeColor({}, 'background');
-  const colorScheme = useColorScheme() ?? 'light';
-  const scrollRef = useAnimatedRef<Animated.ScrollView>();
-  const scrollOffset = useScrollOffset(scrollRef);
-  const headerAnimatedStyle = useAnimatedStyle(() => {
-    return {
-      transform: [
-        {
-          translateY: interpolate(
-            scrollOffset.value,
-            [-HEADER_HEIGHT, 0, HEADER_HEIGHT],
-            [-HEADER_HEIGHT / 2, 0, HEADER_HEIGHT * 0.75]
-          ),
-        },
-        {
-          scale: interpolate(scrollOffset.value, [-HEADER_HEIGHT, 0, HEADER_HEIGHT], [2, 1, 1]),
-        },
-      ],
-    };
-  });
-
-  return (
-    <Animated.ScrollView
-      ref={scrollRef}
-      style={{ backgroundColor, flex: 1 }}
-      scrollEventThrottle={16}>
-      <Animated.View
-        style={[
-          styles.header,
-          { backgroundColor: headerBackgroundColor[colorScheme] },
-          headerAnimatedStyle,
-        ]}>
-        {headerImage}
-      </Animated.View>
-      <ThemedView style={styles.content}>{children}</ThemedView>
-    </Animated.ScrollView>
-  );
-}
-
-const styles = StyleSheet.create({
-  container: {
-    flex: 1,
-  },
-  header: {
-    height: HEADER_HEIGHT,
-    overflow: 'hidden',
-  },
-  content: {
-    flex: 1,
-    padding: 32,
-    gap: 16,
-    overflow: 'hidden',
-  },
-});

+ 1 - 2
components/themed-view.tsx

@@ -1,6 +1,5 @@
-import { View, type ViewProps } from 'react-native';
-
 import { useThemeColor } from '@/hooks/use-theme-color';
+import { View, type ViewProps } from 'react-native';
 
 export type ThemedViewProps = ViewProps & {
   lightColor?: string;

+ 0 - 45
components/ui/collapsible.tsx

@@ -1,45 +0,0 @@
-import { PropsWithChildren, useState } from 'react';
-import { StyleSheet, TouchableOpacity } from 'react-native';
-
-import { ThemedText } from '@/components/themed-text';
-import { ThemedView } from '@/components/themed-view';
-import { IconSymbol } from '@/components/ui/icon-symbol';
-import { Colors } from '@/constants/theme';
-import { useColorScheme } from '@/hooks/use-color-scheme';
-
-export function Collapsible({ children, title }: PropsWithChildren & { title: string }) {
-  const [isOpen, setIsOpen] = useState(false);
-  const theme = useColorScheme() ?? 'light';
-
-  return (
-    <ThemedView>
-      <TouchableOpacity
-        style={styles.heading}
-        onPress={() => setIsOpen((value) => !value)}
-        activeOpacity={0.8}>
-        <IconSymbol
-          name="chevron.right"
-          size={18}
-          weight="medium"
-          color={theme === 'light' ? Colors.light.icon : Colors.dark.icon}
-          style={{ transform: [{ rotate: isOpen ? '90deg' : '0deg' }] }}
-        />
-
-        <ThemedText type="defaultSemiBold">{title}</ThemedText>
-      </TouchableOpacity>
-      {isOpen && <ThemedView style={styles.content}>{children}</ThemedView>}
-    </ThemedView>
-  );
-}
-
-const styles = StyleSheet.create({
-  heading: {
-    flexDirection: 'row',
-    alignItems: 'center',
-    gap: 6,
-  },
-  content: {
-    marginTop: 6,
-    marginLeft: 24,
-  },
-});

+ 0 - 32
components/ui/icon-symbol.ios.tsx

@@ -1,32 +0,0 @@
-import { SymbolView, SymbolViewProps, SymbolWeight } from 'expo-symbols';
-import { StyleProp, ViewStyle } from 'react-native';
-
-export function IconSymbol({
-  name,
-  size = 24,
-  color,
-  style,
-  weight = 'regular',
-}: {
-  name: SymbolViewProps['name'];
-  size?: number;
-  color: string;
-  style?: StyleProp<ViewStyle>;
-  weight?: SymbolWeight;
-}) {
-  return (
-    <SymbolView
-      weight={weight}
-      tintColor={color}
-      resizeMode="scaleAspectFit"
-      name={name}
-      style={[
-        {
-          width: size,
-          height: size,
-        },
-        style,
-      ]}
-    />
-  );
-}

+ 0 - 41
components/ui/icon-symbol.tsx

@@ -1,41 +0,0 @@
-// Fallback for using MaterialIcons on Android and web.
-
-import MaterialIcons from '@expo/vector-icons/MaterialIcons';
-import { SymbolWeight, SymbolViewProps } from 'expo-symbols';
-import { ComponentProps } from 'react';
-import { OpaqueColorValue, type StyleProp, type TextStyle } from 'react-native';
-
-type IconMapping = Record<SymbolViewProps['name'], ComponentProps<typeof MaterialIcons>['name']>;
-type IconSymbolName = keyof typeof MAPPING;
-
-/**
- * Add your SF Symbols to Material Icons mappings here.
- * - see Material Icons in the [Icons Directory](https://icons.expo.fyi).
- * - see SF Symbols in the [SF Symbols](https://developer.apple.com/sf-symbols/) app.
- */
-const MAPPING = {
-  'house.fill': 'home',
-  'paperplane.fill': 'send',
-  'chevron.left.forwardslash.chevron.right': 'code',
-  'chevron.right': 'chevron-right',
-} as IconMapping;
-
-/**
- * An icon component that uses native SF Symbols on iOS, and Material Icons on Android and web.
- * This ensures a consistent look across platforms, and optimal resource usage.
- * Icon `name`s are based on SF Symbols and require manual mapping to Material Icons.
- */
-export function IconSymbol({
-  name,
-  size = 24,
-  color,
-  style,
-}: {
-  name: IconSymbolName;
-  size?: number;
-  color: string | OpaqueColorValue;
-  style?: StyleProp<TextStyle>;
-  weight?: SymbolWeight;
-}) {
-  return <MaterialIcons color={color} size={size} name={MAPPING[name]} style={style} />;
-}

+ 1 - 1
components/web-view.tsx

@@ -45,6 +45,6 @@ const WebViewContainer = forwardRef<WebView, WebViewHandlers>((handlers, ref) =>
 
 export default WebViewContainer;
 
-const styles = StyleSheet.create({
+const styles = StyleSheet.create({  
   container: { flex: 1 },
 });

+ 5 - 9
constants/theme.ts

@@ -15,15 +15,17 @@ export const Colors = {
     tint: tintColorLight,
     icon: '#687076',
     tabIconDefault: '#687076',
-    tabIconSelected: tintColorLight,
+    tabIconSselected: tintColorLight,
+    border: "#ddd",
   },
   dark: {
     text: '#ECEDEE',
-    background: '#151718',
+    background: '#1f2837',
     tint: tintColorDark,
     icon: '#9BA1A6',
     tabIconDefault: '#9BA1A6',
     tabIconSelected: tintColorDark,
+    border: "#36404e",
   },
 };
 
@@ -43,11 +45,5 @@ export const Fonts = Platform.select({
     serif: 'serif',
     rounded: 'normal',
     mono: 'monospace',
-  },
-  web: {
-    sans: "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
-    serif: "Georgia, 'Times New Roman', serif",
-    rounded: "'SF Pro Rounded', 'Hiragino Maru Gothic ProN', Meiryo, 'MS PGothic', sans-serif",
-    mono: "SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
-  },
+  }
 });

+ 1 - 2
package.json

@@ -4,10 +4,9 @@
   "version": "3.0.0",
   "scripts": {
     "start": "expo start",
-    "reset-project": "node ./scripts/reset-project.js",
+    "rebrand": "node ./scripts/reset-project.js",
     "android": "expo run:android",
     "ios": "expo run:ios",
-    "web": "expo start --web",
     "lint": "expo lint"
   },
   "dependencies": {