diff --git a/app/components/InfoButton/InfoButton.styles.ts b/app/components/InfoButton/InfoButton.styles.ts
index 18142fe0..ef743819 100644
--- a/app/components/InfoButton/InfoButton.styles.ts
+++ b/app/components/InfoButton/InfoButton.styles.ts
@@ -1,11 +1,9 @@
import { StyleSheet } from "react-native";
-import { Layout } from "constant";
import { Colors } from "style";
export default StyleSheet.create({
infoIcon: {
- marginRight: Layout.PADDING_HORIZONTAL,
color: Colors.secondary,
},
});
diff --git a/app/components/InfoButton/__tests__/__snapshots__/InfoButton.test.tsx.snap b/app/components/InfoButton/__tests__/__snapshots__/InfoButton.test.tsx.snap
index 32918604..597cd23c 100644
--- a/app/components/InfoButton/__tests__/__snapshots__/InfoButton.test.tsx.snap
+++ b/app/components/InfoButton/__tests__/__snapshots__/InfoButton.test.tsx.snap
@@ -11,7 +11,6 @@ exports[`renders correctly 1`] = `
style={
{
"color": "#3957D0",
- "marginRight": 16,
}
}
/>
diff --git a/app/constant/Layout.ts b/app/constant/Layout.ts
index 30cac351..8c1109fb 100644
--- a/app/constant/Layout.ts
+++ b/app/constant/Layout.ts
@@ -17,6 +17,6 @@ const screen = {
};
// Standard Android Bottom Tab Bar height (typically 56dp) plus a small 4dp buffer. We must use a hardcoded value here because the dynamic useBottomTabBarHeight hook causes a crash when used outside the Tab Navigator context (which is the case with our Native Tabs setup)
-const ANDROID_TAB_BAR_HEIGHT = 60;
+const ANDROID_TAB_BAR_HEIGHT = 90;
export { screen, isSmallDevice, PADDING_HORIZONTAL, SPACING, ANDROID_TAB_BAR_HEIGHT };
diff --git a/app/interfaces/navigation/navigation.ts b/app/interfaces/navigation/navigation.ts
index 11a14f10..66b48ede 100644
--- a/app/interfaces/navigation/navigation.ts
+++ b/app/interfaces/navigation/navigation.ts
@@ -1,7 +1,8 @@
import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
interface NavStatelessComponent extends React.FC {
- navigationOptions?: StackNavigationOptions;
+ navigationOptions?: StackNavigationOptions | NativeStackNavigationOptions;
}
export default NavStatelessComponent;
diff --git a/app/navigation/Navigator/BottomTab/ActNavigator.tsx b/app/navigation/Navigator/BottomTab/ActNavigator.tsx
index 163543ee..18f94338 100644
--- a/app/navigation/Navigator/BottomTab/ActNavigator.tsx
+++ b/app/navigation/Navigator/BottomTab/ActNavigator.tsx
@@ -1,22 +1,22 @@
import React from "react";
-import { createStackNavigator } from "@react-navigation/stack";
+import { createNativeStackNavigator, NativeStackNavigationOptions } from "@react-navigation/native-stack";
import ActTabNavigator from "./ActTabNavigator";
import ActDetailScreen from "../../../screens/ActDetail";
-const Stack = createStackNavigator();
+const Stack = createNativeStackNavigator();
const ActNavigator = (): React.ReactElement => (
);
diff --git a/app/navigation/Navigator/BottomTab/ActTabNavigator.tsx b/app/navigation/Navigator/BottomTab/ActTabNavigator.tsx
index 30132b6d..10fee656 100644
--- a/app/navigation/Navigator/BottomTab/ActTabNavigator.tsx
+++ b/app/navigation/Navigator/BottomTab/ActTabNavigator.tsx
@@ -1,11 +1,11 @@
import React from "react";
import { StyleSheet, TouchableOpacity, View } from "react-native";
import { createMaterialTopTabNavigator } from "@react-navigation/material-top-tabs";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
import { Text } from "components";
import { t } from "utils";
-import { ComponentsStyle, Colors, Font } from "style";
+import { Colors, Font } from "style";
import { NavStatelessComponent } from "interfaces";
import { GuideCategory } from "../../../types/guide";
@@ -83,13 +83,14 @@ const ActTabNavigator: NavStatelessComponent = () => (
);
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("ACT_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
- headerTitle: () => {t("ACT_SCREEN_TITLE")},
+ headerTintColor: Colors.grey100,
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
ActTabNavigator.navigationOptions = navigationOptions();
diff --git a/app/navigation/Navigator/BottomTab/AddEmissionNavigator.tsx b/app/navigation/Navigator/BottomTab/AddEmissionNavigator.tsx
index 68ade3b0..0c4b5fe4 100644
--- a/app/navigation/Navigator/BottomTab/AddEmissionNavigator.tsx
+++ b/app/navigation/Navigator/BottomTab/AddEmissionNavigator.tsx
@@ -1,33 +1,33 @@
import React from "react";
-import { createStackNavigator } from "@react-navigation/stack";
+import { createNativeStackNavigator, NativeStackNavigationOptions } from "@react-navigation/native-stack";
import AddEmissionScreen from "../../../screens/AddEmission";
import CategorySelectionScreen from "../../../screens/CategorySelection";
import SubCategorySelectionScreen from "../../../screens/SubCategorySelection";
import BarCodeScanScreen from "../../../screens/BarCodeScan";
-const Stack = createStackNavigator();
+const Stack = createNativeStackNavigator();
const AddEmissionNavigator = (): React.ReactElement => (
diff --git a/app/navigation/Navigator/BottomTab/BudgetNavigator.tsx b/app/navigation/Navigator/BottomTab/BudgetNavigator.tsx
index 3d1d8abb..839c39b8 100644
--- a/app/navigation/Navigator/BottomTab/BudgetNavigator.tsx
+++ b/app/navigation/Navigator/BottomTab/BudgetNavigator.tsx
@@ -1,23 +1,27 @@
import React from "react";
-import { createStackNavigator } from "@react-navigation/stack";
+import { createNativeStackNavigator, NativeStackNavigationOptions } from "@react-navigation/native-stack";
import BudgetScreen from "../../../screens/Budget";
import MontlyBudgetScreen from "../../../screens/MonthlyBudget";
import AddEmissionScreen from "../../../screens/AddEmission";
-const Stack = createStackNavigator();
+const Stack = createNativeStackNavigator();
const BudgetNavigator = (): React.ReactElement => (
-
+
diff --git a/app/navigation/Navigator/BottomTab/EmissionsNavigator.tsx b/app/navigation/Navigator/BottomTab/EmissionsNavigator.tsx
index 8f73a06a..1a5b4651 100644
--- a/app/navigation/Navigator/BottomTab/EmissionsNavigator.tsx
+++ b/app/navigation/Navigator/BottomTab/EmissionsNavigator.tsx
@@ -1,33 +1,33 @@
import React from "react";
-import { createStackNavigator } from "@react-navigation/stack";
+import { createNativeStackNavigator, NativeStackNavigationOptions } from "@react-navigation/native-stack";
import EmissionItemScreen from "../../../screens/EmissionItem";
import EmissionsScreen from "../../../screens/Emissions";
import MonthlyEmissionsScreen from "../../../screens/MonthlyEmissions";
import RecurringEmissionsScreen from "../../../screens/RecurringEmissions";
-const Stack = createStackNavigator();
+const Stack = createNativeStackNavigator();
const EmissionsNavigator = (): React.ReactElement => (
diff --git a/app/navigation/Navigator/BottomTab/SettingsNavigator.tsx b/app/navigation/Navigator/BottomTab/SettingsNavigator.tsx
index d1016ffe..d23d3db1 100644
--- a/app/navigation/Navigator/BottomTab/SettingsNavigator.tsx
+++ b/app/navigation/Navigator/BottomTab/SettingsNavigator.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { createStackNavigator } from "@react-navigation/stack";
+import { createNativeStackNavigator, NativeStackNavigationOptions } from "@react-navigation/native-stack";
import SettingsScreen from "../../../screens/Settings";
import AboutScreen from "../../../screens/About";
@@ -10,36 +10,36 @@ import NotificationsScreen from "../../../screens/Notifications";
import MyData from "../../../screens/MyData";
import LanguagesScreen from "../../../screens/Languages/LanguagesScreen";
-const Stack = createStackNavigator();
+const Stack = createNativeStackNavigator();
const SettingsNavigator = (): React.ReactElement => (
-
+
-
+
-
+
diff --git a/app/navigation/Navigator/BottomTabNavigator.tsx b/app/navigation/Navigator/BottomTabNavigator.tsx
index 5cdba2d3..bc38ba85 100644
--- a/app/navigation/Navigator/BottomTabNavigator.tsx
+++ b/app/navigation/Navigator/BottomTabNavigator.tsx
@@ -64,11 +64,9 @@ const BottomTabNavigator = (): React.ReactElement => {
options={AddEmissionOptions}
component={AddEmissionNavigator}
/>
-
+ {__DEV__ && (
+
+ )}
(
diff --git a/app/navigation/Navigator/ModalNavigator.tsx b/app/navigation/Navigator/ModalNavigator.tsx
index 320b5463..038ad7fd 100644
--- a/app/navigation/Navigator/ModalNavigator.tsx
+++ b/app/navigation/Navigator/ModalNavigator.tsx
@@ -1,27 +1,27 @@
import React from "react";
-import { createStackNavigator } from "@react-navigation/stack";
+import { createNativeStackNavigator, NativeStackNavigationOptions } from "@react-navigation/native-stack";
import ComingSoonScreen from "../../screens/ComingSoon";
import PeriodicityModalScreen from "../../screens/Periodicity";
import InfoModalScreen from "../../screens/InfoModal";
-const Stack = createStackNavigator();
+const Stack = createNativeStackNavigator();
const ModalNavigator = (): React.ReactElement => (
diff --git a/app/navigation/Navigator/PeriodicityModalNavigator.tsx b/app/navigation/Navigator/PeriodicityModalNavigator.tsx
index c3e4486c..0dfd39b8 100644
--- a/app/navigation/Navigator/PeriodicityModalNavigator.tsx
+++ b/app/navigation/Navigator/PeriodicityModalNavigator.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { createStackNavigator } from "@react-navigation/stack";
+import { createStackNavigator, StackNavigationOptions } from "@react-navigation/stack";
import PeriodicityModalScreen from "../../screens/Periodicity";
@@ -9,7 +9,7 @@ const PeriodicityModalNavigator = (): React.ReactElement => (
diff --git a/app/navigation/Navigator/RootNavigator.tsx b/app/navigation/Navigator/RootNavigator.tsx
index 94fa157d..aa56f89f 100644
--- a/app/navigation/Navigator/RootNavigator.tsx
+++ b/app/navigation/Navigator/RootNavigator.tsx
@@ -1,18 +1,16 @@
import React from "react";
-import { createStackNavigator } from "@react-navigation/stack";
+import { createNativeStackNavigator, NativeStackNavigationOptions } from "@react-navigation/native-stack";
import { useSelector } from "react-redux";
import { Preferences } from "constant";
import { userPreferences } from "ducks";
-import { ComponentsStyle } from "style";
import IntroScreen from "../../screens/Intro";
import BottomTabNavigator from "./BottomTabNavigator";
-const Stack = createStackNavigator();
-const screenOptions = {
+const Stack = createNativeStackNavigator();
+const screenOptions: NativeStackNavigationOptions = {
headerShown: false,
- ...ComponentsStyle.transitionBetweenScreenPresets,
};
const RootNavigator = (): React.ReactElement => {
diff --git a/app/screens/About/AboutScreen.navigationOptions.tsx b/app/screens/About/AboutScreen.navigationOptions.tsx
index 24026694..47de6676 100644
--- a/app/screens/About/AboutScreen.navigationOptions.tsx
+++ b/app/screens/About/AboutScreen.navigationOptions.tsx
@@ -1,20 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Layout, Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("ABOUT_SCREEN_TITLE"),
headerTintColor: Colors.grey100,
headerBackButtonDisplayMode: "minimal",
- headerTitle: () => (
- {t("ABOUT_SCREEN_TITLE")}
- ),
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/Act/ActScreen.navigationOptions.tsx b/app/screens/Act/ActScreen.navigationOptions.tsx
index 062c158e..0e01bf70 100644
--- a/app/screens/Act/ActScreen.navigationOptions.tsx
+++ b/app/screens/Act/ActScreen.navigationOptions.tsx
@@ -1,16 +1,15 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { ComponentsStyle } from "style";
+import { Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("ACT_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
- headerTitle: () => {t("ACT_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/ActDetail/ActDetailScreen.navigationOptions.tsx b/app/screens/ActDetail/ActDetailScreen.navigationOptions.tsx
index a463a467..6ff3310c 100644
--- a/app/screens/ActDetail/ActDetailScreen.navigationOptions.tsx
+++ b/app/screens/ActDetail/ActDetailScreen.navigationOptions.tsx
@@ -1,18 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("ACT_DETAIL_SCREEN_TITLE"),
headerTintColor: Colors.grey100,
headerBackButtonDisplayMode: "minimal",
- headerTitle: () => {t("ACT_DETAIL_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/AddEmission/AddEmissionScreen.navigationOptions.tsx b/app/screens/AddEmission/AddEmissionScreen.navigationOptions.tsx
index 4c6bcce8..871d11ce 100644
--- a/app/screens/AddEmission/AddEmissionScreen.navigationOptions.tsx
+++ b/app/screens/AddEmission/AddEmissionScreen.navigationOptions.tsx
@@ -1,19 +1,19 @@
import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text, InfoButton } from "components";
+import { InfoButton } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("ADD_EMISSION_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
headerRight: () => ,
- headerTitle: () => {t("ADD_EMISSION_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/BarCodeScan/BarCodeScanScreen.navigationOptions.tsx b/app/screens/BarCodeScan/BarCodeScanScreen.navigationOptions.tsx
index 5679e70e..0f5b060c 100644
--- a/app/screens/BarCodeScan/BarCodeScanScreen.navigationOptions.tsx
+++ b/app/screens/BarCodeScan/BarCodeScanScreen.navigationOptions.tsx
@@ -1,18 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("BAR_CODE_SCAN_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => {t("BAR_CODE_SCAN_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/Budget/BudgetScreen.navigationOptions.tsx b/app/screens/Budget/BudgetScreen.navigationOptions.tsx
index ab741249..e5be6b04 100644
--- a/app/screens/Budget/BudgetScreen.navigationOptions.tsx
+++ b/app/screens/Budget/BudgetScreen.navigationOptions.tsx
@@ -1,16 +1,23 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
-import { Text } from "components";
-import { t } from "utils";
-import { Layout, ComponentsStyle } from "style";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-const navigationOptions = (): StackNavigationOptions => ({
- headerStyle: {
- ...ComponentsStyle.header,
+import { t, platform } from "utils";
+import { Colors, Font } from "style";
+
+const navigationOptions: NativeStackNavigationOptions = {
+ title: t("BUDGET_SCREEN_TITLE"),
+ headerLargeTitleEnabled: true,
+ headerTransparent: platform.isIOS,
+ headerBlurEffect: platform.isIOS26OrLater() ? undefined : "regular",
+ headerBackButtonDisplayMode: "minimal",
+ headerTintColor: Colors.grey100,
+ headerLargeTitleStyle: {
+ fontFamily: Font.FontWeight.Black,
+ },
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
},
- headerBackTitle: null,
- headerTitle: () => {t("BUDGET_SCREEN_TITLE")},
-});
+};
export default navigationOptions;
diff --git a/app/screens/Budget/BudgetScreen.tsx b/app/screens/Budget/BudgetScreen.tsx
index 1fd513c8..84cf92d1 100644
--- a/app/screens/Budget/BudgetScreen.tsx
+++ b/app/screens/Budget/BudgetScreen.tsx
@@ -97,6 +97,6 @@ const BudgetScreen: NavStatelessComponent = () => {
);
};
-BudgetScreen.navigationOptions = navigationOptions();
+BudgetScreen.navigationOptions = navigationOptions;
export default BudgetScreen;
diff --git a/app/screens/CategorySelection/CategorySelectionScreen.navigationOptions.tsx b/app/screens/CategorySelection/CategorySelectionScreen.navigationOptions.tsx
index d4a2c98c..77bafb48 100644
--- a/app/screens/CategorySelection/CategorySelectionScreen.navigationOptions.tsx
+++ b/app/screens/CategorySelection/CategorySelectionScreen.navigationOptions.tsx
@@ -1,18 +1,23 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
-import { Text } from "components";
-import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+import { platform, t } from "utils";
+import { Colors, Font } from "style";
+
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("CATEGORY_SELECTION_SCREEN_TITLE"),
+ headerLargeTitleEnabled: true,
+ headerTransparent: platform.isIOS,
+ headerBlurEffect: platform.isIOS26OrLater() ? undefined : "regular",
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => {t("CATEGORY_SELECTION_SCREEN_TITLE")},
+ headerLargeTitleStyle: {
+ fontFamily: Font.FontWeight.Black,
+ },
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/ComingSoon/ComingSoonScreen.navigationOptions.tsx b/app/screens/ComingSoon/ComingSoonScreen.navigationOptions.tsx
index 637ffd44..7062ab6b 100644
--- a/app/screens/ComingSoon/ComingSoonScreen.navigationOptions.tsx
+++ b/app/screens/ComingSoon/ComingSoonScreen.navigationOptions.tsx
@@ -1,43 +1,34 @@
import React from "react";
import { TouchableOpacity } from "react-native";
import { Ionicons } from "@expo/vector-icons";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Layout } from "constant";
import { platform } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
import { navigate } from "navigation";
-const iconStyle = { paddingRight: Layout.PADDING_HORIZONTAL };
-const navigationOptionsAndroid = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
- headerTitle: () => null,
- headerRight: () => null,
-});
-
-const navigationOptionsIOS = ({ navigation }): StackNavigationOptions => ({
- headerStyle: {
- ...ComponentsStyle.header,
- borderBottomWidth: 0,
- },
+const navigationOptions = ({ navigation }): NativeStackNavigationOptions => ({
headerTitle: () => null,
+ headerBackVisible: false,
headerLeft: () => null,
- headerRight: () => (
- {
- navigate(navigation).goBack();
- }}
- >
-
-
- ),
+ headerTransparent: platform.isIOS,
+ headerBlurEffect: platform.isIOS26OrLater() ? undefined : "regular",
+ headerRight: platform.isIOS
+ ? () => (
+ {
+ navigate(navigation).goBack();
+ }}
+ >
+
+
+ )
+ : undefined,
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
-const navigationOptions = platform.isAndroid ? navigationOptionsAndroid : navigationOptionsIOS;
-
export default navigationOptions;
diff --git a/app/screens/EmissionItem/EmissionItemScreen.navigationOptions.tsx b/app/screens/EmissionItem/EmissionItemScreen.navigationOptions.tsx
index e141bec9..a0550437 100644
--- a/app/screens/EmissionItem/EmissionItemScreen.navigationOptions.tsx
+++ b/app/screens/EmissionItem/EmissionItemScreen.navigationOptions.tsx
@@ -1,35 +1,32 @@
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
+
import React from "react";
import { path, includes } from "ramda";
import { FoodType } from "carbon-footprint";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text, InfoButton } from "components";
+import { InfoButton } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
const emissionsInfoAvailable = [FoodType.cheese];
-const navigationOptions = (prop): StackNavigationOptions => {
+const navigationOptions = (prop): NativeStackNavigationOptions => {
const emissionModelType = path(["route", "params", "emissionModelType"], prop);
const showInfoButton = includes(emissionModelType, emissionsInfoAvailable);
const isRecurringEmission = path(["route", "params", "isRecurringEmission"], prop);
return {
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
- headerTintColor: Colors.grey100,
+ title: isRecurringEmission
+ ? t("EMISSION_ITEM_SCREEN_RECURRING_EMISSION")
+ : t("EMISSION_ITEM_SCREEN_EMISSION"),
headerBackButtonDisplayMode: "minimal",
+ headerTintColor: Colors.grey100,
headerRight: () => (showInfoButton ? : null),
- headerTitle: () => (
-
- {isRecurringEmission
- ? t("EMISSION_ITEM_SCREEN_RECURRING_EMISSION")
- : t("EMISSION_ITEM_SCREEN_EMISSION")}
-
- ),
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
};
};
diff --git a/app/screens/Emissions/EmissionsScreen.navigationOptions.tsx b/app/screens/Emissions/EmissionsScreen.navigationOptions.tsx
index 6605ba01..954e32d3 100644
--- a/app/screens/Emissions/EmissionsScreen.navigationOptions.tsx
+++ b/app/screens/Emissions/EmissionsScreen.navigationOptions.tsx
@@ -1,18 +1,23 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
-import { Text } from "components";
-import { t } from "utils";
-import { Layout, ComponentsStyle } from "style";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-const navigationOptions = (): StackNavigationOptions => ({
- headerStyle: {
- ...ComponentsStyle.header,
+import { platform, t } from "utils";
+import { Colors, Font } from "style";
+
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("EMISSIONS_SCREEN_TITLE"),
+ headerLargeTitleEnabled: true,
+ headerTransparent: platform.isIOS,
+ headerBlurEffect: platform.isIOS26OrLater() ? undefined : "regular",
+ headerBackButtonDisplayMode: "minimal",
+ headerTintColor: Colors.grey100,
+ headerLargeTitleStyle: {
+ fontFamily: Font.FontWeight.Black,
+ },
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
},
- headerBackTitle: null,
- headerTitle: () => (
- {t("EMISSIONS_SCREEN_TITLE")}
- ),
});
export default navigationOptions;
diff --git a/app/screens/Faq/FaqScreen.navigationOptions.tsx b/app/screens/Faq/FaqScreen.navigationOptions.tsx
index c3496da1..fd991d1a 100644
--- a/app/screens/Faq/FaqScreen.navigationOptions.tsx
+++ b/app/screens/Faq/FaqScreen.navigationOptions.tsx
@@ -1,20 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Layout, Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("FAQ_SCREEN_TITLE"),
headerTintColor: Colors.grey100,
headerBackButtonDisplayMode: "minimal",
- headerTitle: () => (
- {t("FAQ_SCREEN_TITLE")}
- ),
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/InfoModal/InfoModal.navigationOptions.tsx b/app/screens/InfoModal/InfoModal.navigationOptions.tsx
index 8e03faa3..3a1e5383 100644
--- a/app/screens/InfoModal/InfoModal.navigationOptions.tsx
+++ b/app/screens/InfoModal/InfoModal.navigationOptions.tsx
@@ -1,45 +1,23 @@
import React from "react";
import { TouchableOpacity } from "react-native";
import { Ionicons } from "@expo/vector-icons";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Layout } from "constant";
-import { Text } from "components";
import { platform, t, ui } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
import { navigate } from "navigation";
-const iconStyle = { paddingRight: Layout.PADDING_HORIZONTAL };
-const navigationOptionsAndroid = ({ route }): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
- headerTitle: () =>
- route.params?.emissionModelType ? (
- {ui.getTranslationEmissionModelType(route.params.emissionModelType)}
- ) : (
- {t("INFO_MODAL_SCREEN_METHODOLOGY")}
- ),
- headerRight: () => null,
-});
-
-const navigationOptionsIOS = ({ navigation, route }): StackNavigationOptions => ({
- headerStyle: {
- ...ComponentsStyle.header,
- borderBottomWidth: 0,
- },
- headerTitle: () =>
- route.params?.emissionModelType ? (
- {ui.getTranslationEmissionModelType(route.params.emissionModelType)}
- ) : (
- {t("INFO_MODAL_SCREEN_METHODOLOGY")}
- ),
+const navigationOptions = ({ navigation, route }): NativeStackNavigationOptions => ({
+ title: route.params?.emissionModelType
+ ? ui.getTranslationEmissionModelType(route.params.emissionModelType)
+ : t("INFO_MODAL_SCREEN_METHODOLOGY"),
+ headerBackVisible: false,
headerLeft: () => null,
+ headerTransparent: platform.isIOS,
+ headerBlurEffect: platform.isIOS26OrLater() ? undefined : "regular",
headerRight: () => (
{
navigate(navigation).goBack();
}}
@@ -47,8 +25,11 @@ const navigationOptionsIOS = ({ navigation, route }): StackNavigationOptions =>
),
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
+ headerTintColor: Colors.grey100,
});
-const navigationOptions = platform.isAndroid ? navigationOptionsAndroid : navigationOptionsIOS;
-
export default navigationOptions;
diff --git a/app/screens/InfoModal/InfoModalScreen.tsx b/app/screens/InfoModal/InfoModalScreen.tsx
index d1979599..d9669d8b 100644
--- a/app/screens/InfoModal/InfoModalScreen.tsx
+++ b/app/screens/InfoModal/InfoModalScreen.tsx
@@ -28,7 +28,10 @@ const InfoModalScreen: NavStatelessComponent = () => {
}
return (
-
+
);
diff --git a/app/screens/Languages/LanguagesScreen.navigationOptions.tsx b/app/screens/Languages/LanguagesScreen.navigationOptions.tsx
index 22ed94d5..7a468222 100644
--- a/app/screens/Languages/LanguagesScreen.navigationOptions.tsx
+++ b/app/screens/Languages/LanguagesScreen.navigationOptions.tsx
@@ -1,18 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("LANGUAGES_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => {t("LANGUAGES_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/MonthlyBudget/MonthlyBudgetScreen.navigationOptions.tsx b/app/screens/MonthlyBudget/MonthlyBudgetScreen.navigationOptions.tsx
index 46ae6844..210e60d0 100644
--- a/app/screens/MonthlyBudget/MonthlyBudgetScreen.navigationOptions.tsx
+++ b/app/screens/MonthlyBudget/MonthlyBudgetScreen.navigationOptions.tsx
@@ -1,18 +1,17 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
-import { Text } from "components";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
+
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("MONTHLY_BUDGET_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => {t("MONTHLY_BUDGET_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/MonthlyEmissions/MonthlyEmissionsScreen.navigationOptions.tsx b/app/screens/MonthlyEmissions/MonthlyEmissionsScreen.navigationOptions.tsx
index d170803a..96cbc7ff 100644
--- a/app/screens/MonthlyEmissions/MonthlyEmissionsScreen.navigationOptions.tsx
+++ b/app/screens/MonthlyEmissions/MonthlyEmissionsScreen.navigationOptions.tsx
@@ -1,21 +1,15 @@
-/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
-import React from "react";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
-import { Layout, ComponentsStyle, Colors } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = ({ route }) => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = ({ route }): NativeStackNavigationOptions => ({
+ title: route?.params?.monthAndYear,
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => (
-
- {route?.params?.monthAndYear}
-
- ),
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/MyData/MyDataScreen.navigationOptions.tsx b/app/screens/MyData/MyDataScreen.navigationOptions.tsx
index fed0b199..fd7a1638 100644
--- a/app/screens/MyData/MyDataScreen.navigationOptions.tsx
+++ b/app/screens/MyData/MyDataScreen.navigationOptions.tsx
@@ -1,18 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("MY_DATA_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => {t("MY_DATA_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/MyLocation/MyLocationScreen.navigationOptions.tsx b/app/screens/MyLocation/MyLocationScreen.navigationOptions.tsx
index ec6ac017..7c72517d 100644
--- a/app/screens/MyLocation/MyLocationScreen.navigationOptions.tsx
+++ b/app/screens/MyLocation/MyLocationScreen.navigationOptions.tsx
@@ -1,18 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("MY_LOCATION_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => {t("MY_LOCATION_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/Notifications/NotificationsScreen.navigationOptions.tsx b/app/screens/Notifications/NotificationsScreen.navigationOptions.tsx
index c5672c3f..211e1fe0 100644
--- a/app/screens/Notifications/NotificationsScreen.navigationOptions.tsx
+++ b/app/screens/Notifications/NotificationsScreen.navigationOptions.tsx
@@ -1,18 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("NOTIFICATIONS_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => {t("NOTIFICATIONS_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/Periodicity/PeriodicityModal.navigationOptions.tsx b/app/screens/Periodicity/PeriodicityModal.navigationOptions.tsx
index 5d00c77a..5dd41c90 100644
--- a/app/screens/Periodicity/PeriodicityModal.navigationOptions.tsx
+++ b/app/screens/Periodicity/PeriodicityModal.navigationOptions.tsx
@@ -1,39 +1,29 @@
import React from "react";
import { TouchableOpacity } from "react-native";
import { Ionicons } from "@expo/vector-icons";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Layout } from "constant";
-import { Text } from "components";
import { platform, t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
import { navigate } from "navigation";
-const iconStyle = { paddingRight: Layout.PADDING_HORIZONTAL };
-const navigationOptionsAndroid = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
- headerTitle: () => {t("PERIODICITY_MODAL_SCREEN_TITLE")},
- headerRight: () => null,
-});
-
-const navigationOptionsIOS = ({ navigation }): StackNavigationOptions => ({
- headerStyle: {
- ...ComponentsStyle.header,
- borderBottomWidth: 0,
- },
- headerTitle: () => {t("PERIODICITY_MODAL_SCREEN_TITLE")},
+const navigationOptions = ({ navigation }): NativeStackNavigationOptions => ({
+ title: t("PERIODICITY_MODAL_SCREEN_TITLE"),
+ headerBackVisible: false,
headerLeft: () => null,
+ headerTransparent: platform.isIOS,
+ headerBlurEffect: platform.isIOS26OrLater() ? undefined : "regular",
headerRight: () => (
- navigate(navigation).goBack()}>
+ navigate(navigation).goBack()}>
),
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
+ headerTintColor: Colors.grey100,
});
-const navigationOptions = platform.isAndroid ? navigationOptionsAndroid : navigationOptionsIOS;
-
export default navigationOptions;
diff --git a/app/screens/RecurringEmissions/RecurringEmissionsScreen.navigationOptions.tsx b/app/screens/RecurringEmissions/RecurringEmissionsScreen.navigationOptions.tsx
index 56aa80ce..27767e70 100644
--- a/app/screens/RecurringEmissions/RecurringEmissionsScreen.navigationOptions.tsx
+++ b/app/screens/RecurringEmissions/RecurringEmissionsScreen.navigationOptions.tsx
@@ -1,22 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Layout, Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("RECURRING_EMISSIONS_SCREEN_TITLE"),
headerTintColor: Colors.grey100,
headerBackButtonDisplayMode: "minimal",
- headerTitle: () => (
-
- {t("RECURRING_EMISSIONS_SCREEN_TITLE")}
-
- ),
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/Settings/SettingsScreen.navigationOptions.tsx b/app/screens/Settings/SettingsScreen.navigationOptions.tsx
index b80c18a9..afe36b52 100644
--- a/app/screens/Settings/SettingsScreen.navigationOptions.tsx
+++ b/app/screens/Settings/SettingsScreen.navigationOptions.tsx
@@ -1,16 +1,23 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
-import { Text } from "components";
-import { t } from "utils";
-import { Layout, ComponentsStyle } from "style";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-const navigationOptions = (): StackNavigationOptions => ({
- headerStyle: {
- ...ComponentsStyle.header,
+import { platform, t } from "utils";
+import { Colors, Font } from "style";
+
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("SETTINGS_SCREEN_TITLE"),
+ headerLargeTitleEnabled: true,
+ headerTransparent: platform.isIOS,
+ headerBlurEffect: platform.isIOS26OrLater() ? undefined : "regular",
+ headerBackButtonDisplayMode: "minimal",
+ headerTintColor: Colors.grey100,
+ headerLargeTitleStyle: {
+ fontFamily: Font.FontWeight.Black,
+ },
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
},
- headerBackTitle: null,
- headerTitle: () => {t("SETTINGS_SCREEN_TITLE")},
});
export default navigationOptions;
diff --git a/app/screens/SubCategorySelection/SubCategorySelectionScreen.navigationOptions.tsx b/app/screens/SubCategorySelection/SubCategorySelectionScreen.navigationOptions.tsx
index e12e4215..3932a96a 100644
--- a/app/screens/SubCategorySelection/SubCategorySelectionScreen.navigationOptions.tsx
+++ b/app/screens/SubCategorySelection/SubCategorySelectionScreen.navigationOptions.tsx
@@ -1,18 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("SUB_CATEGORY_SELECTION_SCREEN_TITLE"),
headerBackButtonDisplayMode: "minimal",
headerTintColor: Colors.grey100,
- headerTitle: () => {t("SUB_CATEGORY_SELECTION_SCREEN_TITLE")},
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/screens/SupportUs/SupportUsScreen.navigationOptions.tsx b/app/screens/SupportUs/SupportUsScreen.navigationOptions.tsx
index 094877fd..029ff145 100644
--- a/app/screens/SupportUs/SupportUsScreen.navigationOptions.tsx
+++ b/app/screens/SupportUs/SupportUsScreen.navigationOptions.tsx
@@ -1,20 +1,16 @@
-import React from "react";
-import { StackNavigationOptions } from "@react-navigation/stack";
+import { NativeStackNavigationOptions } from "@react-navigation/native-stack";
-import { Text } from "components";
import { t } from "utils";
-import { Layout, Colors, ComponentsStyle } from "style";
+import { Colors, Font } from "style";
-const navigationOptions = (): StackNavigationOptions => ({
- ...ComponentsStyle.transitionBetweenScreenPresets,
- headerStyle: {
- ...ComponentsStyle.header,
- },
+const navigationOptions = (): NativeStackNavigationOptions => ({
+ title: t("SUPPORT_US_SCREEN_TITLE"),
headerTintColor: Colors.grey100,
headerBackButtonDisplayMode: "minimal",
- headerTitle: () => (
- {t("SUPPORT_US_SCREEN_TITLE")}
- ),
+ headerTitleStyle: {
+ fontFamily: Font.FontWeight.Bold,
+ fontSize: Font.FontSize.Header,
+ },
});
export default navigationOptions;
diff --git a/app/utils/platform/platform.ts b/app/utils/platform/platform.ts
index 5e3596c4..8d735ef6 100644
--- a/app/utils/platform/platform.ts
+++ b/app/utils/platform/platform.ts
@@ -3,4 +3,15 @@ import { Platform } from "react-native";
const isIOS = Platform.OS === "ios";
const isAndroid = Platform.OS === "android";
-export default { isIOS, isAndroid };
+function getIOSVersion(): number {
+ if (isIOS) {
+ return parseInt(String(Platform.Version), 10);
+ }
+ return 0;
+}
+
+function isIOS26OrLater(): boolean {
+ return getIOSVersion() >= 26;
+}
+
+export default { isIOS, isAndroid, getIOSVersion, isIOS26OrLater };
diff --git a/package.json b/package.json
index fbe35dab..e0e0269b 100644
--- a/package.json
+++ b/package.json
@@ -34,6 +34,7 @@
"@react-navigation/bottom-tabs": "^7.8.12",
"@react-navigation/material-top-tabs": "^7.4.10",
"@react-navigation/native": "^7.1.25",
+ "@react-navigation/native-stack": "^7.2.0",
"@react-navigation/stack": "^7.6.12",
"@reduxjs/toolkit": "1.8.6",
"@sentry/react-native": "~7.2.0",
@@ -125,4 +126,4 @@
},
"name": "nmf-app",
"version": "1.0.0"
-}
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 25e12ffe..bcfbdbd3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1778,6 +1778,15 @@
use-latest-callback "^0.2.4"
use-sync-external-store "^1.5.0"
+"@react-navigation/elements@^2.9.3":
+ version "2.9.3"
+ resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-2.9.3.tgz#505ae38af347a0bc5326155318a3d9a54e2071e3"
+ integrity sha512-3+eyvWiVPIEf6tN9UdduhOEHcTuNe3R5WovgiVkfH9+jApHMTZDc2loePTpY/i2HDJhObhhChpJzO6BVjrpdYQ==
+ dependencies:
+ color "^4.2.3"
+ use-latest-callback "^0.2.4"
+ use-sync-external-store "^1.5.0"
+
"@react-navigation/material-top-tabs@^7.4.10":
version "7.4.10"
resolved "https://registry.yarnpkg.com/@react-navigation/material-top-tabs/-/material-top-tabs-7.4.10.tgz#413bd97ff3861da19117dbad21988e65fa06020e"
@@ -1787,6 +1796,16 @@
color "^4.2.3"
react-native-tab-view "^4.2.1"
+"@react-navigation/native-stack@^7.2.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-7.9.0.tgz#4fcd08a403ff86c465a908f3b49f86ab3f66d06a"
+ integrity sha512-C/mNPhI0Pnerl7C2cB+6fAkdgSmfKECMERrbyfjx3P6JmEuTC54o+GV1c62FUmlRaRUassVHbtw4EeaY2uLh0g==
+ dependencies:
+ "@react-navigation/elements" "^2.9.3"
+ color "^4.2.3"
+ sf-symbols-typescript "^2.1.0"
+ warn-once "^0.1.1"
+
"@react-navigation/native@^7.1.25":
version "7.1.25"
resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-7.1.25.tgz#48a267d5ab260d98edca63fab897d8fce244c665"
@@ -1799,9 +1818,9 @@
use-latest-callback "^0.2.4"
"@react-navigation/routers@^7.5.2":
- version "7.5.2"
- resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-7.5.2.tgz#c885a66a76286f1c4c94261814ceddad628fbbea"
- integrity sha512-kymreY5aeTz843E+iPAukrsOtc7nabAH6novtAPREmmGu77dQpfxPB2ZWpKb5nRErIRowp1kYRoN2Ckl+S6JYw==
+ version "7.5.3"
+ resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-7.5.3.tgz#8002930ef5f62351be2475d0dffde3ffaee174d7"
+ integrity sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg==
dependencies:
nanoid "^3.3.11"
@@ -8680,7 +8699,7 @@ walker@^1.0.7, walker@^1.0.8:
dependencies:
makeerror "1.0.12"
-warn-once@0.1.1, warn-once@^0.1.0:
+warn-once@0.1.1, warn-once@^0.1.0, warn-once@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/warn-once/-/warn-once-0.1.1.tgz#952088f4fb56896e73fd4e6a3767272a3fccce43"
integrity sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==