Components

ProfileGroupsScreen

<ProfileGroupsScreen />

Constructor

# <ProfileGroupsScreen />

You can use this component to display the Profile Groups Screen in your custom screen.

Properties:
Name Type Attributes Description
userId Number <optional>

You can use this to display a specific user's profile groups by assigning their userId as this props's value

screenTitle String <optional>

List screen title

searchTerm String <optional>

If the user is not yet available in the app state, the component will attempt to load a list of users. You can use this field to search for the specific user you want to load instead of loading a list of users.

hideBackButton Boolean <optional>

Use true to hide the back button. By default, the button will use react-navigation's goBack() function. This can be changed using the setBackButtonRenderer hook.

hideNavigationHeader Boolean <optional>

Use true to hide the screen title container

filters Array <optional>

Filters to show in the screen. Note: The invites screen will be hidden if the userId used is not the logged-in user.

LoadingComponent ReactComponent <optional>

Use this to display your own loading component while the screen is loading

Examples

Display groups which the logged-in user is a member of

//In custom_code/components/MyCustomScreen.js...
import React from 'react';
import ProfileGroupsScreen from "@src/containers/Custom/Profile/ProfileGroupsScreen";

const MyCustomScreen = (props) => {

 const t = props.screenProps.t;

 const filters = [
   {value: "my-groups", label: t("groups:my-groups")},
   // {value: "invites", label: t("groups:invites")} //commented out "invites" to only show My Groups
 ];

 if (!props.isFocused)
   return null;

 return (
   <>
       <ProfileGroupsScreen
         screenTitle="MY GROUPS"
         hideBackButton={true}
         filters={filters}
         {...props}
       />
   </>
 )
}

MyCustomScreen.navigationOptions = { header: null };

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"
 );
}

Display groups of a specific user

//In custom_code/components/MyCustomScreen.js...
import React from "react";
import ProfileGroupsScreen from "@src/containers/Custom/Profile/ProfileGroupsScreen";
import {useScreenProps} from "@src/navigators/v5/ScreenPropsProvider";
const MyCustomScreen = props => {
    const {t} = useScreenProps(["t"]);

    const filters = [
        {value: "my-groups", label: t("groups:my-groups")}
        // {value: "invites", label: t("groups:invites")} //commented out "invites" to only show My Groups
    ];

    if (!props.isFocused) return null;

    return (
        <>
            <ProfileGroupsScreen
                screenTitle="MY GROUPS"
                hideBackButton={true}
                filters={filters}
                {...props}
            />
        </>
    );
};

MyCustomScreen.navigationOptions = {header: null};

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"
 );
}