Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/expo-go/ios/Exponent/Supporting/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>55.0.8</string>
<string>55.0.9</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
Expand Down Expand Up @@ -61,7 +61,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>55.0.8</string>
<string>55.0.9</string>
<key>FacebookAdvertiserIDCollectionEnabled</key>
<false/>
<key>FacebookAppID</key>
Expand Down
17 changes: 2 additions & 15 deletions apps/router-e2e/__e2e__/link-preview/app/zoom-dest-list.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,9 @@
import { Link, usePreventZoomTransitionDismissal } from 'expo-router';
import { useState } from 'react';
import { Link } from 'expo-router';
import { Image, ScrollView, View } from 'react-native';

export default function ZoomDestScreen() {
const [shouldPrevent, setShouldPrevent] = useState(false);
usePreventZoomTransitionDismissal(
shouldPrevent
? undefined
: {
unstable_dismissalBoundsRect: { minX: 0, minY: 0 },
}
);
return (
<ScrollView
style={{ flex: 1 }}
onScroll={(event) => {
setShouldPrevent(event.nativeEvent.contentOffset.y > 1);
}}>
<ScrollView style={{ flex: 1 }}>
<Link.AppleZoomTarget>
<View style={{ width: '100%', aspectRatio: 1 }}>
<Image
Expand Down
226 changes: 113 additions & 113 deletions apps/router-e2e/__e2e__/native-navigation/app/header-items.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -166,137 +166,137 @@ export default function HeaderItemsScreen() {
color: '#00f',
fontFamily: 'Arial',
}}>
<Stack.Toolbar.Label>Menu</Stack.Toolbar.Label>
<Stack.Toolbar.Badge
style={{
backgroundColor: '#eee',
fontFamily: 'Courier New',
fontWeight: 100,
}}>
99
</Stack.Toolbar.Badge>

{/* Simple actions */}
<Stack.Toolbar.MenuAction onPress={handleSendEmail}>
<Stack.Toolbar.Label>Send email</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="paperplane" />
<Stack.Toolbar.Label>Menu</Stack.Toolbar.Label>
<Stack.Toolbar.Badge
style={{
backgroundColor: '#eee',
fontFamily: 'Courier New',
fontWeight: 100,
}}>
99
</Stack.Toolbar.Badge>

{/* Simple actions */}
<Stack.Toolbar.MenuAction onPress={handleSendEmail}>
<Stack.Toolbar.Label>Send email</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="paperplane" />
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction destructive onPress={handleDeleteEmail}>
<Stack.Toolbar.Label>Delete email</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="trash" />
</Stack.Toolbar.MenuAction>

{/* Toggle action */}
<Stack.Toolbar.MenuAction isOn={emailsArchived} onPress={handleArchiveToggle}>
<Stack.Toolbar.Label>
{emailsArchived ? 'Unarchive emails' : 'Archive emails'}
</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf={emailsArchived ? 'tray.full' : 'tray'} />
</Stack.Toolbar.MenuAction>

{/* Nested inline menu - View mode */}
<Stack.Toolbar.Menu inline>
<Stack.Toolbar.Label>View Mode</Stack.Toolbar.Label>
<Stack.Toolbar.MenuAction
isOn={viewMode === 'icons'}
onPress={() => handleViewModeSelect('icons')}>
<Stack.Toolbar.Label>Icons</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="square.grid.2x2" />
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={viewMode === 'list'}
onPress={() => handleViewModeSelect('list')}>
<Stack.Toolbar.Label>List</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="list.bullet" />
</Stack.Toolbar.MenuAction>
</Stack.Toolbar.Menu>

{/* Nested inline menu - Sort by */}
<Stack.Toolbar.Menu inline>
<Stack.Toolbar.Label>Sort By</Stack.Toolbar.Label>
<Stack.Toolbar.MenuAction
isOn={sortBy === 'name'}
subtitle="Ascending"
onPress={() => handleSortBySelect('name')}>
Name
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction destructive onPress={handleDeleteEmail}>
<Stack.Toolbar.Label>Delete email</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="trash" />
<Stack.Toolbar.MenuAction
isOn={sortBy === 'kind'}
onPress={() => handleSortBySelect('kind')}>
Kind
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={sortBy === 'date'}
onPress={() => handleSortBySelect('date')}>
Date
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={sortBy === 'size'}
onPress={() => handleSortBySelect('size')}>
Size
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={sortBy === 'tags'}
onPress={() => handleSortBySelect('tags')}>
Tags
</Stack.Toolbar.MenuAction>
</Stack.Toolbar.Menu>

{/* Toggle action */}
<Stack.Toolbar.MenuAction isOn={emailsArchived} onPress={handleArchiveToggle}>
{/* Nested menu - Preferences */}
<Stack.Toolbar.Menu title="Preferences">
<Stack.Toolbar.MenuAction
isOn={notificationsEnabled}
onPress={handleNotificationsToggle}>
<Stack.Toolbar.Label>
{emailsArchived ? 'Unarchive emails' : 'Archive emails'}
{notificationsEnabled ? 'Disable notifications' : 'Enable notifications'}
</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf={emailsArchived ? 'tray.full' : 'tray'} />
<Stack.Toolbar.Icon sf="bell" />
</Stack.Toolbar.MenuAction>

{/* Nested inline menu - View mode */}
<Stack.Toolbar.Menu inline>
<Stack.Toolbar.Label>View Mode</Stack.Toolbar.Label>
<Stack.Toolbar.MenuAction
isOn={viewMode === 'icons'}
onPress={() => handleViewModeSelect('icons')}>
<Stack.Toolbar.Label>Icons</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="square.grid.2x2" />
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={viewMode === 'list'}
onPress={() => handleViewModeSelect('list')}>
<Stack.Toolbar.Label>List</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="list.bullet" />
</Stack.Toolbar.MenuAction>
</Stack.Toolbar.Menu>

{/* Nested inline menu - Sort by */}
<Stack.Toolbar.Menu inline>
<Stack.Toolbar.Label>Sort By</Stack.Toolbar.Label>
<Stack.Toolbar.MenuAction
isOn={sortBy === 'name'}
subtitle="Ascending"
onPress={() => handleSortBySelect('name')}>
Name
</Stack.Toolbar.MenuAction>
{/* Color selection submenu */}
<Stack.Toolbar.Menu inline title="Favorite Color">
<Stack.Toolbar.MenuAction
isOn={sortBy === 'kind'}
onPress={() => handleSortBySelect('kind')}>
Kind
isOn={favoriteColors.includes('red')}
onPress={() => handleColorSelect('red')}>
<Stack.Toolbar.Label>Red</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="circle.fill" />
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={sortBy === 'date'}
onPress={() => handleSortBySelect('date')}>
Date
isOn={favoriteColors.includes('blue')}
onPress={() => handleColorSelect('blue')}>
<Stack.Toolbar.Label>Blue</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="circle.fill" />
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={sortBy === 'size'}
onPress={() => handleSortBySelect('size')}>
Size
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={sortBy === 'tags'}
onPress={() => handleSortBySelect('tags')}>
Tags
</Stack.Toolbar.MenuAction>
</Stack.Toolbar.Menu>

{/* Nested menu - Preferences */}
<Stack.Toolbar.Menu title="Preferences">
<Stack.Toolbar.MenuAction
isOn={notificationsEnabled}
onPress={handleNotificationsToggle}>
<Stack.Toolbar.Label>
{notificationsEnabled ? 'Disable notifications' : 'Enable notifications'}
</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="bell" />
</Stack.Toolbar.MenuAction>

{/* Color selection submenu */}
<Stack.Toolbar.Menu inline title="Favorite Color">
<Stack.Toolbar.MenuAction
isOn={favoriteColors.includes('red')}
onPress={() => handleColorSelect('red')}>
<Stack.Toolbar.Label>Red</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="circle.fill" />
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={favoriteColors.includes('blue')}
onPress={() => handleColorSelect('blue')}>
<Stack.Toolbar.Label>Blue</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="circle.fill" />
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction
isOn={favoriteColors.includes('green')}
onPress={() => handleColorSelect('green')}>
<Stack.Toolbar.Label>Green</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="circle.fill" />
</Stack.Toolbar.MenuAction>
</Stack.Toolbar.Menu>
</Stack.Toolbar.Menu>

{/* Palette menu */}
<Stack.Toolbar.Menu palette destructive title="quick-actions">
<Label>Quick Actions</Label>
<Stack.Toolbar.MenuAction isOn icon="star" onPress={() => Alert.alert('Star')}>
Star
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction icon="flag" onPress={() => Alert.alert('Flag')}>
Flag
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction icon="pin" onPress={() => Alert.alert('Pin')}>
Pin
isOn={favoriteColors.includes('green')}
onPress={() => handleColorSelect('green')}>
<Stack.Toolbar.Label>Green</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="circle.fill" />
</Stack.Toolbar.MenuAction>
</Stack.Toolbar.Menu>
</Stack.Toolbar.Menu>

{/* Disabled action */}
<Stack.Toolbar.MenuAction disabled onPress={() => {}}>
<Stack.Toolbar.Label>Locked action</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="lock" />
{/* Palette menu */}
<Stack.Toolbar.Menu palette destructive title="quick-actions">
<Label>Quick Actions</Label>
<Stack.Toolbar.MenuAction isOn icon="star" onPress={() => Alert.alert('Star')}>
Star
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction icon="flag" onPress={() => Alert.alert('Flag')}>
Flag
</Stack.Toolbar.MenuAction>
<Stack.Toolbar.MenuAction icon="pin" onPress={() => Alert.alert('Pin')}>
Pin
</Stack.Toolbar.MenuAction>
</Stack.Toolbar.Menu>

{/* Disabled action */}
<Stack.Toolbar.MenuAction disabled onPress={() => {}}>
<Stack.Toolbar.Label>Locked action</Stack.Toolbar.Label>
<Stack.Toolbar.Icon sf="lock" />
</Stack.Toolbar.MenuAction>
</Stack.Toolbar.Menu>

<Stack.Toolbar.Menu hidden={!showRightMenu2} title="second-menu">
<Stack.Toolbar.Label>Second</Stack.Toolbar.Label>
</Stack.Toolbar.Menu>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/static/data/unversioned/expo-router.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/public/static/data/v55.0.0/expo-router.json

Large diffs are not rendered by default.

Loading
Loading