Skip to content
This repository was archived by the owner on Nov 3, 2025. It is now read-only.

Commit d766189

Browse files
committed
🚧 (package) Add basic page and container
1 parent c641b85 commit d766189

12 files changed

Lines changed: 72 additions & 63 deletions

File tree

example/src/App.tsx

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,14 @@
1-
/**
2-
* Sample React Native App
3-
* https://github.com/facebook/react-native
4-
*
5-
* Generated with the TypeScript template
6-
* https://github.com/emin93/react-native-template-typescript
7-
*
8-
* @format
9-
*/
10-
11-
import React, { Component } from "react";
12-
import { Platform, StyleSheet, Text, View } from "react-native";
13-
import { FirstName } from "./tunnels/SignIn/FirstName";
1+
import React, { Component } from 'react';
2+
import { View } from 'react-native';
3+
import { NavigationProvider } from 'react-gondola';
144

155
interface Props {}
166
export default class App extends Component<Props> {
177
render() {
188
return (
19-
<View style={styles.container}>
20-
<FirstName />
21-
</View>
9+
<NavigationProvider>
10+
<View />
11+
</NavigationProvider>
2212
);
2313
}
2414
}
25-
26-
const styles = StyleSheet.create({
27-
container: {
28-
flex: 1
29-
}
30-
});
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import React, { Component } from 'react';
2+
import { Platform, StyleSheet, Text, View } from 'react-native';
3+
4+
interface Props {}
5+
export class FirstName extends Component<Props> {
6+
render() {
7+
return (
8+
<View style={styles.container}>
9+
<Text>FirstName</Text>
10+
</View>
11+
);
12+
}
13+
}
14+
15+
const styles = StyleSheet.create({
16+
container: {
17+
flex: 1,
18+
justifyContent: 'center',
19+
alignItems: 'center',
20+
backgroundColor: '#FFAAAA',
21+
},
22+
});
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import React, { Component } from "react";
2-
import { Platform, StyleSheet, Text, View } from "react-native";
1+
import React, { Component } from 'react';
2+
import { Platform, StyleSheet, Text, View } from 'react-native';
33

44
interface Props {}
55
export class LastName extends Component<Props> {
@@ -15,8 +15,8 @@ export class LastName extends Component<Props> {
1515
const styles = StyleSheet.create({
1616
container: {
1717
flex: 1,
18-
justifyContent: "center",
19-
alignItems: "center",
20-
backgroundColor: "#FF9999"
21-
}
18+
justifyContent: 'center',
19+
alignItems: 'center',
20+
backgroundColor: '#FF9999',
21+
},
2222
});

example/src/canals/SignIn/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { FirstName } from './FirstName';
2+
import { LastName } from './LastName';
3+
4+
export const SignIn = canal(FirstName, LastName);

example/src/tunnels/SignIn/FirstName.tsx

Lines changed: 0 additions & 28 deletions
This file was deleted.

example/src/tunnels/SignIn/index.ts

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/NavigationProvider.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import React from 'react';
2+
import { Provider } from 'mobx-react/native';
3+
4+
interface IProps {
5+
children: React.ReactNode;
6+
}
7+
export const NavigationProvider = ({ children }: IProps) => (
8+
<Provider navigation={{}}>{React.Children.only(children)}</Provider>
9+
);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import React from 'react';
2+
import TestRenderer from 'react-test-renderer';
3+
import { Provider } from 'mobx-react/native';
4+
import { View } from 'react-native';
5+
6+
import { NavigationProvider } from '../NavigationProvider';
7+
8+
describe('NavigationProvider', () => {
9+
it('renders a MobX provider with a navigation prop', () => {
10+
const testRenderer = TestRenderer.create(
11+
<NavigationProvider>
12+
<View />
13+
</NavigationProvider>
14+
);
15+
expect(testRenderer.toJSON()).toMatchSnapshot();
16+
const testInstance = testRenderer.root;
17+
const providerInstance = testInstance.findByType(Provider);
18+
expect(providerInstance.props.navigation).toBeDefined();
19+
});
20+
});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`NavigationProvider renders a MobX provider with a navigation prop 1`] = `<View />`;

src/__tests__/canal.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
it("should work", () => {
1+
it('should work', () => {
22
expect(true).toBe(true);
33
});

0 commit comments

Comments
 (0)