diff --git a/native/chat/settings/thread-settings-member-tooltip-modal.react.js b/native/chat/settings/thread-settings-member-tooltip-modal.react.js --- a/native/chat/settings/thread-settings-member-tooltip-modal.react.js +++ b/native/chat/settings/thread-settings-member-tooltip-modal.react.js @@ -13,6 +13,8 @@ } from 'lib/utils/action-utils.js'; import ThreadSettingsMemberTooltipButton from './thread-settings-member-tooltip-button.react.js'; +import type { AppNavigationProp } from '../../navigation/app-navigator.react'; +import { ChangeRolesScreenRouteName } from '../../navigation/route-names.js'; import { createTooltip, type TooltipParams, @@ -59,19 +61,29 @@ } function useOnChangeRole( - // This is temporary until we implement the change role flow - // eslint-disable-next-line no-unused-vars route: TooltipRoute<'ThreadSettingsMemberTooltipModal'>, + navigation: AppNavigationProp<'ThreadSettingsMemberTooltipModal'>, ) { - return React.useCallback(() => {}, []); + const { threadInfo, memberInfo } = route.params; + return React.useCallback(() => { + navigation.navigate<'ChangeRolesScreen'>({ + name: ChangeRolesScreenRouteName, + params: { + threadInfo, + memberInfo, + role: memberInfo.role, + }, + key: route.key, + }); + }, [navigation, route.key, threadInfo, memberInfo]); } function TooltipMenu( props: TooltipMenuProps<'ThreadSettingsMemberTooltipModal'>, ): React.Node { - const { route, tooltipItem: TooltipItem } = props; + const { route, navigation, tooltipItem: TooltipItem } = props; - const onChangeRole = useOnChangeRole(route); + const onChangeRole = useOnChangeRole(route, navigation); const onRemoveUser = useOnRemoveUser(route); return (