Constructor
# <ProfileEmailInvitesScreen />
You can use this component to display the Profile Email Invites Screen in your custom screen.
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
redirectScreen
|
String |
<optional> |
After sending an email invite, the current screen will redirect to ProfileScreen by default. Use this prop to change its redirect navigation. |
Example
//In custom_code/components/MyCustomScreen.js...
import React, {useContext, useEffect} from "react";
import {Text, StyleSheet, Platform} from "react-native";
import {NavigationContext} from "@react-navigation/native";
import {backButtonProfile} from "@src/utils";
import {useScreenProps} from "@src/navigators/v5/ScreenPropsProvider";
import EmailInviteTabsScreen from "@src/containers/Custom/Profile/EmailInviteTabsScreen";
const MyCustomScreen = props => {
if (!props.isFocused) return null;
const {global, colors, t} = useScreenProps([
"global",
"colors",
"t",
"calcFontSize"
]);
const {params = {}} = props.route;
const {borderColor} = colors;
const options = () => {
const headerLeft = () => backButtonProfile({
navigation,
global,
name: "John"
});
const headerRight = null;
if (Platform.OS === "android") {
headerRight = () => <View style={global.headerFakeRight} />;
}
return {
headerShown: true,
headerTitleAlign: "center",
headerTitle: () => (
<Text
ellipsizeMode="tail"
numberOfLines={1}
style={global.appHeaderTitle}
>
{t("profile:emailInvites")}
</Text>
),
headerLeft,
headerRight,
headerStyle: {
...StyleSheet.flatten(global.header),
borderBottomColor: borderColor,
borderBottomWidth: StyleSheet.hairlineWidth
}
};
};
const navigation = useContext(NavigationContext);
useEffect(
() => {
navigation?.setOptions(options());
},
[params]
);
return (
<>
<EmailInviteTabsScreen
//In the given example, a "book" route is registered using the addNavigationRoute() hook.
//Therefore, you can use it to redirect back to the custom screen by choosing it as the redirectScreen's value
redirectScreen="book"
{...props}
/>
</>
);
};
export default MyCustomScreen;
//In custom_code/index.js...
...
import MyCustomScreen from "./components/MyCustomScreen";
export const applyCustomCode = externalCodeSetup => {
externalCodeSetup.navigationApi.addNavigationRoute(
"book",
"BookScreen",
MyCustomScreen,
"All"
);
externalCodeSetup.navigationApi.addNavigationRoute(
"book",
"BookScreen",
MyCustomScreen,
"Main"
);
}