Skip to content

Commit 7af4e19

Browse files
committed
chore: pages has only index but no calculated stuff => pages list, also old app should use PageList
1 parent 3639661 commit 7af4e19

14 files changed

Lines changed: 49 additions & 89 deletions

example/src/App.tsx

Lines changed: 10 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -7,52 +7,12 @@ import {
77
} from 'react-native';
88
import { NavigationContainer } from '@react-navigation/native';
99
import { createStackNavigator } from '@react-navigation/stack';
10-
import RiveFileLoadingExample from './pages/RiveFileLoadingExample';
11-
import DataBindingExample from './pages/RiveDataBindingExample';
12-
import TemplatePage from './pages/TemplatePage';
13-
import EventsExample from './pages/RiveEventsExample';
14-
import StateMachineInputsExample from './pages/RiveStateMachineInputsExample';
15-
import TextRunExample from './pages/RiveTextRunExample';
16-
import OutOfBandAssets from './pages/OutOfBandAssets';
17-
18-
const Examples = [
19-
{
20-
title: 'Rive File Loading Examples',
21-
screenId: 'RiveFileLoading',
22-
component: RiveFileLoadingExample,
23-
},
24-
{
25-
title: 'Rive Data Binding Example',
26-
screenId: 'RiveDataBinding',
27-
component: DataBindingExample,
28-
},
29-
{
30-
title: 'Rive Events Example',
31-
screenId: 'RiveEvents',
32-
component: EventsExample,
33-
},
34-
{
35-
title: 'Rive State Machine Inputs Example',
36-
screenId: 'RiveStateMachineInputs',
37-
component: StateMachineInputsExample,
38-
},
39-
{
40-
title: 'Rive Text Run Example',
41-
screenId: 'RiveTextRun',
42-
component: TextRunExample,
43-
},
44-
{
45-
title: 'Out of band assets',
46-
screenId: 'OutOfBandAssets',
47-
component: OutOfBandAssets,
48-
},
49-
{ title: 'Template Page', screenId: 'Template', component: TemplatePage },
50-
] as const;
10+
import { PagesList } from './PagesList';
5111

5212
type RootStackParamList = {
5313
Home: undefined;
5414
} & {
55-
[K in (typeof Examples)[number]['screenId']]: undefined;
15+
[K in (typeof PagesList)[number]['id']]: undefined;
5616
};
5717

5818
const Stack = createStackNavigator<RootStackParamList>();
@@ -62,13 +22,13 @@ function HomeScreen({ navigation }: { navigation: any }) {
6222
<ScrollView style={styles.container}>
6323
<Text style={styles.header}>Rive React Native Examples</Text>
6424
<View style={styles.buttonContainer}>
65-
{Examples.map(({ title, screenId }) => (
25+
{PagesList.map(({ id, name }) => (
6626
<TouchableOpacity
67-
key={screenId}
27+
key={id}
6828
style={styles.button}
69-
onPress={() => navigation.navigate(screenId)}
29+
onPress={() => navigation.navigate(id)}
7030
>
71-
<Text style={styles.buttonText}>{title}</Text>
31+
<Text style={styles.buttonText}>{name}</Text>
7232
</TouchableOpacity>
7333
))}
7434
</View>
@@ -95,12 +55,12 @@ export default function App() {
9555
component={HomeScreen}
9656
options={{ title: 'Rive Examples' }}
9757
/>
98-
{Examples.map(({ screenId, component, title }) => (
58+
{PagesList.map(({ id, component, name }) => (
9959
<Stack.Screen
100-
key={screenId}
101-
name={screenId}
60+
key={id}
61+
name={id}
10262
component={component}
103-
options={{ title }}
63+
options={{ title: name }}
10464
/>
10565
))}
10666
</Stack.Navigator>

example/src/PagesList.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import type { Metadata } from './helpers/metadata';
2+
import * as Pages from './pages';
3+
4+
type PageIds = keyof typeof Pages;
5+
type PageType = React.ComponentType & { metadata?: Metadata };
6+
7+
const PageEntries = Object.entries(Pages) as [PageIds, PageType][];
8+
9+
export type PageItem = {
10+
id: PageIds;
11+
name: string;
12+
description: string;
13+
component: React.ComponentType;
14+
};
15+
16+
const PagesList: PageItem[] = PageEntries.map(([key, Component]) => ({
17+
id: key,
18+
name: Component.metadata?.name ?? key,
19+
description: Component.metadata?.description ?? '',
20+
component: Component,
21+
}));
22+
23+
export { PagesList };

example/src/pages/OutOfBandAssets.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
RiveView,
1414
} from 'react-native-rive';
1515
import { Picker } from '@react-native-picker/picker';
16-
import { type Metadata } from './metadata';
16+
import { type Metadata } from '../helpers/metadata';
1717

1818
export default function StateMachine() {
1919
const [uri, setUri] = React.useState('https://picsum.photos/id/372/500/500');

example/src/pages/RiveDataBindingExample.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
useRiveTrigger,
1313
useRiveFile,
1414
} from 'react-native-rive';
15-
import { type Metadata } from './metadata';
15+
import { type Metadata } from '../helpers/metadata';
1616

1717
export default function WithRiveFile() {
1818
const { riveFile, isLoading, error } = useRiveFile(

example/src/pages/RiveEventsExample.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
type RiveEvent,
99
RiveEventType,
1010
} from 'react-native-rive';
11-
import { type Metadata } from './metadata';
11+
import { type Metadata } from '../helpers/metadata';
1212

1313
export default function EventsExample() {
1414
const { riveViewRef, setHybridRef } = useRive();

example/src/pages/RiveFileLoadingExample.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
} from 'react-native-rive';
1515
import { useState, useEffect } from 'react';
1616
import { downloadFileAsArrayBuffer } from '../helpers/fileHelpers';
17-
import { type Metadata } from './metadata';
17+
import { type Metadata } from '../helpers/metadata';
1818

1919
const LOADING_METHODS = {
2020
SOURCE: 'Source',

example/src/pages/RiveStateMachineInputsExample.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { View, Text, StyleSheet, ActivityIndicator } from 'react-native';
22
import { useEffect } from 'react';
33
import { Fit, RiveView, useRive, useRiveFile } from 'react-native-rive';
4-
import { type Metadata } from './metadata';
4+
import { type Metadata } from '../helpers/metadata';
55

66
export default function StateMachineInputsExample() {
77
const { riveViewRef, setHybridRef } = useRive();

example/src/pages/RiveTextRunExample.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { View, Text, StyleSheet, ActivityIndicator } from 'react-native';
22
import { useEffect } from 'react';
33
import { Fit, RiveView, useRive, useRiveFile } from 'react-native-rive';
4-
import { type Metadata } from './metadata';
4+
import { type Metadata } from '../helpers/metadata';
55

66
export default function TextRunExample() {
77
const { riveViewRef, setHybridRef } = useRive();

example/src/pages/TemplatePage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { View, Text, StyleSheet } from 'react-native';
2-
import { type Metadata } from './metadata';
2+
import { type Metadata } from '../helpers/metadata';
33

44
export default function TemplatePage() {
55
return (

0 commit comments

Comments
 (0)