diff --git a/native/navigation/route-names.js b/native/navigation/route-names.js --- a/native/navigation/route-names.js +++ b/native/navigation/route-names.js @@ -44,6 +44,7 @@ import type { RelationshipListItemTooltipModalParams } from '../profile/relationship-list-item-tooltip-modal.react.js'; import type { ChangeRolesScreenParams } from '../roles/change-roles-screen.react.js'; import type { CommunityRolesScreenParams } from '../roles/community-roles-screen.react.js'; +import type { CreateRolesScreenParams } from '../roles/create-roles-screen.react.js'; import type { MessageSearchParams } from '../search/message-search.react.js'; export const ActionResultModalRouteName = 'ActionResultModal'; @@ -125,6 +126,7 @@ export const RegistrationTermsRouteName = 'RegistrationTerms'; export const RolesNavigatorRouteName = 'RolesNavigator'; export const CommunityRolesScreenRouteName = 'CommunityRolesScreen'; +export const CreateRolesScreenRouteName = 'CreateRolesScreen'; export type RootParamList = { +LoggedOutModal: void, @@ -242,6 +244,7 @@ export type RolesParamList = { +CommunityRolesScreen: CommunityRolesScreenParams, + +CreateRolesScreen: CreateRolesScreenParams, }; export type ScreenParamList = { diff --git a/native/roles/community-roles-screen.react.js b/native/roles/community-roles-screen.react.js --- a/native/roles/community-roles-screen.react.js +++ b/native/roles/community-roles-screen.react.js @@ -11,6 +11,7 @@ import type { RolesNavigationProp } from './roles-navigator.react.js'; import Button from '../components/button.react.js'; import type { NavigationRoute } from '../navigation/route-names.js'; +import { CreateRolesScreenRouteName } from '../navigation/route-names.js'; import { useStyles } from '../themes/colors.js'; export type CommunityRolesScreenParams = { @@ -47,7 +48,13 @@ return rolePanelEntries; }, [roleNamesToMembers]); - const navigateToCreateRole = React.useCallback(() => {}, []); + const navigateToCreateRole = React.useCallback( + () => + props.navigation.navigate(CreateRolesScreenRouteName, { + threadInfo, + }), + [threadInfo, props.navigation], + ); return ( diff --git a/native/roles/create-roles-screen.react.js b/native/roles/create-roles-screen.react.js new file mode 100644 --- /dev/null +++ b/native/roles/create-roles-screen.react.js @@ -0,0 +1,24 @@ +// @flow + +import * as React from 'react'; + +import type { ThreadInfo } from 'lib/types/thread-types.js'; + +import type { RolesNavigationProp } from './roles-navigator.react.js'; +import type { NavigationRoute } from '../navigation/route-names.js'; + +export type CreateRolesScreenParams = { + +threadInfo: ThreadInfo, +}; + +type CreateRolesScreenProps = { + +navigation: RolesNavigationProp<'CreateRolesScreen'>, + +route: NavigationRoute<'CreateRolesScreen'>, +}; + +// eslint-disable-next-line no-unused-vars +function CreateRolesScreen(props: CreateRolesScreenProps): React.Node { + return <>; +} + +export default CreateRolesScreen; diff --git a/native/roles/roles-navigator.react.js b/native/roles/roles-navigator.react.js --- a/native/roles/roles-navigator.react.js +++ b/native/roles/roles-navigator.react.js @@ -10,11 +10,13 @@ import CommunityRolesHeaderLeftButton from './community-roles-header-left-button.react.js'; import CommunityRolesScreen from './community-roles-screen.react.js'; +import CreateRolesScreen from './create-roles-screen.react.js'; import type { RootNavigationProp } from '../navigation/root-navigator.react.js'; import { type ScreenParamList, type RolesParamList, CommunityRolesScreenRouteName, + CreateRolesScreenRouteName, } from '../navigation/route-names.js'; import { useStyles, useColors } from '../themes/colors.js'; @@ -37,6 +39,10 @@ ), }; +const createRolesScreenOptions = { + headerTitle: 'Create role', +}; + type RolesNavigatorProps = { +navigation: RootNavigationProp<'RolesNavigator'>, ... @@ -69,6 +75,11 @@ component={CommunityRolesScreen} options={communityRolesScreenOptions} /> + );