Page MenuHomePhorge

D14421.1767129854.diff
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

D14421.1767129854.diff

diff --git a/native/components/community-joiner-modal.react.js b/native/components/community-joiner-modal.react.js
--- a/native/components/community-joiner-modal.react.js
+++ b/native/components/community-joiner-modal.react.js
@@ -15,9 +15,12 @@
import type { ClientCommunityInfoWithCommunityName } from 'lib/types/community-types.js';
import Modal from './modal.react.js';
+import type { NUXTip } from './nux-tips-context.react.js';
+import { nuxTip } from './nux-tips-context.react.js';
import CommunityList from '../components/community-list.react.js';
import type { RootNavigationProp } from '../navigation/root-navigator.react.js';
import type { NavigationRoute } from '../navigation/route-names.js';
+import { NUXTipOverlayBackdropRouteName } from '../navigation/route-names.js';
import { useSelector } from '../redux/redux-utils.js';
import { useColors, useStyles } from '../themes/colors.js';
import {
@@ -28,8 +31,11 @@
export type CommunityJoinerModalParams = {
+communities: $ReadOnlyArray<ClientCommunityInfoWithCommunityName>,
+ +showCommunityDirectoryTip?: boolean,
};
+const orderedTips: $ReadOnlyArray<NUXTip> = [nuxTip.COMMUNITY_DIRECTORY];
+
type Props = {
+navigation: RootNavigationProp<'CommunityJoinerModal'>,
+route: NavigationRoute<'CommunityJoinerModal'>,
@@ -41,8 +47,9 @@
];
function CommunityJoinerModal(props: Props): React.Node {
- const { params } = props.route;
- const { communities } = params;
+ const { navigation, route } = props;
+ const { navigate, goBack } = navigation;
+ const { communities, showCommunityDirectoryTip } = route.params;
const viewerID = useSelector(
state => state.currentUserInfo && state.currentUserInfo.id,
@@ -191,8 +198,19 @@
[tabProps, styles.tabBarContainer],
);
+ const onClose = React.useCallback(() => {
+ if (showCommunityDirectoryTip) {
+ navigate<'NUXTipOverlayBackdrop'>({
+ name: NUXTipOverlayBackdropRouteName,
+ params: { orderedTips },
+ });
+ } else {
+ goBack();
+ }
+ }, [showCommunityDirectoryTip, navigate, goBack]);
+
return (
- <Modal>
+ <Modal onRequestClose={onClose}>
<View style={styles.headerContainer}>
<Text style={styles.headerText}>Discover communities</Text>
</View>
diff --git a/native/components/directory-prompt-bottom-sheet.react.js b/native/components/directory-prompt-bottom-sheet.react.js
--- a/native/components/directory-prompt-bottom-sheet.react.js
+++ b/native/components/directory-prompt-bottom-sheet.react.js
@@ -61,7 +61,7 @@
goBack();
navigate<'CommunityJoinerModal'>({
name: CommunityJoinerModalRouteName,
- params: { communities },
+ params: { communities, showCommunityDirectoryTip: true },
});
}, [communities, goBack, navigate]);
diff --git a/native/components/modal.react.js b/native/components/modal.react.js
--- a/native/components/modal.react.js
+++ b/native/components/modal.react.js
@@ -20,6 +20,7 @@
+modalStyle?: ViewStyle,
+safeAreaEdges?: $ReadOnlyArray<'top' | 'right' | 'bottom' | 'left'>,
+disableClosing?: boolean,
+ +onRequestClose?: () => void,
}>;
function Modal(props: Props): React.Node {
const navigation = useNavigation();
@@ -27,10 +28,12 @@
if (props.disableClosing) {
return;
}
- if (navigation.isFocused()) {
+ if (props.onRequestClose) {
+ props.onRequestClose();
+ } else if (navigation.isFocused()) {
navigation.goBack();
}
- }, [navigation, props.disableClosing]);
+ }, [navigation, props]);
const styles = useStyles(unboundStyles);
const { containerStyle, modalStyle, children, safeAreaEdges } = props;

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 30, 9:24 PM (16 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5870160
Default Alt Text
D14421.1767129854.diff (3 KB)

Event Timeline