fix(mobile): remove custom font loader causing SIGABRT crash on iOS release

This commit is contained in:
AyrisAI
2026-08-20 02:43:22 +03:00
parent 3257f7fe57
commit 32818766f0
2 changed files with 33 additions and 41 deletions
+7 -23
View File
@@ -1,27 +1,11 @@
import { useEffect } from "react";
import { Stack } from "expo-router";
import { useFonts } from "expo-font";
import Ionicons from "@expo/vector-icons/Ionicons";
import * as SplashScreen from "expo-splash-screen";
SplashScreen.preventAutoHideAsync().catch(() => {});
import { StatusBar } from "expo-status-bar";
export default function RootLayout() {
const [loaded, error] = useFonts({
Ionicons: require("@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Ionicons.ttf"),
ionicons: require("@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Ionicons.ttf"),
...(Ionicons.font || {}),
});
useEffect(() => {
if (loaded || error) {
SplashScreen.hideAsync().catch(() => {});
}
}, [loaded, error]);
if (!loaded && !error) {
return null;
}
return <Stack screenOptions={{ headerShown: false }} />;
return (
<>
<StatusBar style="dark" />
<Stack screenOptions={{ headerShown: false }} />
</>
);
}
+26 -18
View File
@@ -20,19 +20,23 @@ export default function Index() {
let cancelled = false;
async function resolve() {
const { data } = await supabase.auth.getSession();
if (!data.session) {
router.replace("/(auth)/login");
return;
}
const cached = await getActiveRestaurant();
if (cached) {
router.replace("/menu");
return;
}
try {
const { data } = await supabase.auth.getSession();
if (!data?.session) {
if (!cancelled) {
router.replace("/(auth)/login");
}
return;
}
const cached = await getActiveRestaurant();
if (cached) {
if (!cancelled) {
router.replace("/menu");
}
return;
}
const { restaurant } = await api.get<MeRestaurantResponse>("/me/restaurant");
const location = restaurant?.locations[0];
const menu = location?.menus[0];
@@ -44,14 +48,18 @@ export default function Index() {
menuId: menu.id,
slug: restaurant.slug,
});
if (!cancelled) router.replace("/menu");
if (!cancelled) {
router.replace("/menu");
}
return;
}
} catch {
// fall through to onboarding
} catch (e) {
console.warn("Index resolve error:", e);
}
if (!cancelled) router.replace("/(onboarding)/restaurant");
if (!cancelled) {
router.replace("/(onboarding)/restaurant");
}
}
resolve().finally(() => {
@@ -64,8 +72,8 @@ export default function Index() {
}, []);
return (
<View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
{checking ? <ActivityIndicator /> : null}
<View style={{ flex: 1, alignItems: "center", justifyContent: "center", backgroundColor: "#FAF8F5" }}>
{checking ? <ActivityIndicator size="large" color="#C8A96B" /> : null}
</View>
);
}