Skip to content

Commit 4ac0724

Browse files
authored
Merge pull request #18 from grupadotnet/8693hb63x-add-components-page
add components page
2 parents 6fe6633 + a3bcd1b commit 4ac0724

File tree

10 files changed

+197
-31
lines changed

10 files changed

+197
-31
lines changed

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
# dependencies
44
node_modules/
5-
yarn.lock
65

76
# Expo
87
.expo/

App.tsx

+18-22
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,27 @@
1-
import { StatusBar } from 'expo-status-bar';
2-
import { StyleSheet, Text, View } from 'react-native';
1+
import { NavigationContainer } from '@react-navigation/native';
2+
import { createNativeStackNavigator } from '@react-navigation/native-stack';
33

4-
import { PrimaryButton, SwitchTheme } from '@/components';
54
import { ThemeProvider } from '@/hooks';
5+
import { Components, Home } from '@/screens';
6+
import { RootStackParamList } from '@/types/param';
7+
8+
const Stack = createNativeStackNavigator<RootStackParamList>();
69

710
const App = () => {
811
return (
9-
<ThemeProvider>
10-
<View style={styles.container}>
11-
<Text>Open up App.tsx to start working on your app!</Text>
12-
<StatusBar style="auto" />
13-
<SwitchTheme />
14-
<PrimaryButton onPress={() => {}} title="dasdsa" />
15-
</View>
16-
</ThemeProvider>
12+
<NavigationContainer>
13+
<ThemeProvider>
14+
<Stack.Navigator initialRouteName="Home">
15+
<Stack.Screen
16+
name="Home"
17+
component={Home}
18+
options={{ title: 'Welcome' }}
19+
/>
20+
<Stack.Screen name="Components" component={Components} />
21+
</Stack.Navigator>
22+
</ThemeProvider>
23+
</NavigationContainer>
1724
);
1825
};
1926

20-
const styles = StyleSheet.create({
21-
container: {
22-
color: 'red',
23-
height: '100%',
24-
width: '100%',
25-
backgroundColor: 'white',
26-
alignItems: 'center',
27-
justifyContent: 'center',
28-
},
29-
});
30-
3127
export default App;

package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,17 @@
1111
"test": "jest"
1212
},
1313
"dependencies": {
14-
"@react-native-async-storage/async-storage": "^1.21.0",
14+
"@react-native-async-storage/async-storage": "1.18.2",
1515
"@react-native/metro-config": "^0.73.3",
16+
"@react-navigation/native": "^6.1.9",
17+
"@react-navigation/native-stack": "^6.9.17",
1618
"expo": "~49.0.15",
1719
"expo-status-bar": "~1.6.0",
1820
"react": "18.2.0",
1921
"react-hook-form": "^7.48.2",
2022
"react-native": "0.72.6",
23+
"react-native-safe-area-context": "4.6.3",
24+
"react-native-screens": "~3.22.0",
2125
"yarn": "^1.22.21",
2226
"yup": "^1.3.2"
2327
},

src/components/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
export { default as PrimaryButton } from './PrimaryButton';
21
export { default as SwitchTheme } from './SwitchTheme';

src/screens/.placeholder

Whitespace-only changes.

src/screens/Components.tsx

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { NativeStackScreenProps } from '@react-navigation/native-stack';
2+
import React from 'react';
3+
import { StyleSheet, Text, View } from 'react-native';
4+
import { globalStyles } from 'style';
5+
6+
import { SwitchTheme } from '@/components';
7+
import { PrimaryButton } from '@/components/Button';
8+
import { RootStackParamList } from '@/types/param';
9+
10+
type Props = NativeStackScreenProps<RootStackParamList, 'Components'>;
11+
12+
const Home = ({ navigation }: Props) => {
13+
return (
14+
<View style={styles.container}>
15+
<Text>Components screen</Text>
16+
<PrimaryButton
17+
title="Wróć do Home Screen"
18+
onPress={() => navigation.navigate('Home')}
19+
/>
20+
<SwitchTheme />
21+
<PrimaryButton title="primary button" onPress={() => {}} />
22+
</View>
23+
);
24+
};
25+
26+
const styles = StyleSheet.create({
27+
container: {
28+
...globalStyles.verticalFlex,
29+
...globalStyles.centerFlex,
30+
},
31+
});
32+
33+
export default Home;

src/screens/Home.tsx

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { NativeStackScreenProps } from '@react-navigation/native-stack';
2+
import React from 'react';
3+
import { StyleSheet, View } from 'react-native';
4+
import { globalStyles } from 'style';
5+
6+
import { PrimaryButton } from '@/components/Button';
7+
import { RootStackParamList } from '@/types/param';
8+
9+
type Props = NativeStackScreenProps<RootStackParamList, 'Home'>;
10+
11+
const Home = ({ navigation }: Props) => {
12+
return (
13+
<View style={styles.container}>
14+
<PrimaryButton
15+
title="Idź do Components Screen"
16+
onPress={() => navigation.navigate('Components')}
17+
/>
18+
</View>
19+
);
20+
};
21+
22+
const styles = StyleSheet.create({
23+
container: {
24+
...globalStyles.horizontalFlex,
25+
...globalStyles.centerFlex,
26+
},
27+
});
28+
29+
export default Home;

src/screens/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { default as Components } from './Components';
2+
export { default as Home } from './Home';

src/types/param.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export type RootStackParamList = {
2+
Home: undefined;
3+
Components: undefined;
4+
};

yarn.lock

+106-6
Original file line numberDiff line numberDiff line change
@@ -1966,10 +1966,10 @@
19661966
resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.0.tgz#7d8dacb7fdef0e4387caf7396cbd77f179867d06"
19671967
integrity sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==
19681968

1969-
"@react-native-async-storage/async-storage@^1.21.0":
1970-
version "1.21.0"
1971-
resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz#d7e370028e228ab84637016ceeb495878b7a44c8"
1972-
integrity sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==
1969+
"@react-native-async-storage/async-storage@1.18.2":
1970+
version "1.18.2"
1971+
resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.18.2.tgz#ec8fd487a0b6c9500b43ece4b8779d1561f12e91"
1972+
integrity sha512-dM8AfdoeIxlh+zqgr0o5+vCTPQ0Ru1mrPzONZMsr7ufp5h+6WgNxQNza7t0r5qQ6b04AJqTlBNixTWZxqP649Q==
19731973
dependencies:
19741974
merge-options "^3.0.4"
19751975

@@ -2281,6 +2281,48 @@
22812281
invariant "^2.2.4"
22822282
nullthrows "^1.1.1"
22832283

2284+
"@react-navigation/core@^6.4.10":
2285+
version "6.4.10"
2286+
resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.4.10.tgz#0c52621968b35e3a75e189e823d3b9e3bad77aff"
2287+
integrity sha512-oYhqxETRHNHKsipm/BtGL0LI43Hs2VSFoWMbBdHK9OqgQPjTVUitslgLcPpo4zApCcmBWoOLX2qPxhsBda644A==
2288+
dependencies:
2289+
"@react-navigation/routers" "^6.1.9"
2290+
escape-string-regexp "^4.0.0"
2291+
nanoid "^3.1.23"
2292+
query-string "^7.1.3"
2293+
react-is "^16.13.0"
2294+
use-latest-callback "^0.1.7"
2295+
2296+
"@react-navigation/elements@^1.3.21":
2297+
version "1.3.21"
2298+
resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.21.tgz#debac6becc6b6692da09ec30e705e476a780dfe1"
2299+
integrity sha512-eyS2C6McNR8ihUoYfc166O1D8VYVh9KIl0UQPI8/ZJVsStlfSTgeEEh+WXge6+7SFPnZ4ewzEJdSAHH+jzcEfg==
2300+
2301+
"@react-navigation/native-stack@^6.9.17":
2302+
version "6.9.17"
2303+
resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.17.tgz#4fc370b14be07296423ae8c00940fb002c6001b5"
2304+
integrity sha512-X8p8aS7JptQq7uZZNFEvfEcPf6tlK4PyVwYDdryRbG98B4bh2wFQYMThxvqa+FGEN7USEuHdv2mF0GhFKfX0ew==
2305+
dependencies:
2306+
"@react-navigation/elements" "^1.3.21"
2307+
warn-once "^0.1.0"
2308+
2309+
"@react-navigation/native@^6.1.9":
2310+
version "6.1.9"
2311+
resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.1.9.tgz#8ef87095cd9c2ed094308c726157c7f6fc28796e"
2312+
integrity sha512-AMuJDpwXE7UlfyhIXaUCCynXmv69Kb8NzKgKJO7v0k0L+u6xUTbt6xvshmJ79vsvaFyaEH9Jg5FMzek5/S5qNw==
2313+
dependencies:
2314+
"@react-navigation/core" "^6.4.10"
2315+
escape-string-regexp "^4.0.0"
2316+
fast-deep-equal "^3.1.3"
2317+
nanoid "^3.1.23"
2318+
2319+
"@react-navigation/routers@^6.1.9":
2320+
version "6.1.9"
2321+
resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-6.1.9.tgz#73f5481a15a38e36592a0afa13c3c064b9f90bed"
2322+
integrity sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==
2323+
dependencies:
2324+
nanoid "^3.1.23"
2325+
22842326
"@segment/loosely-validate-event@^2.0.0":
22852327
version "2.0.0"
22862328
resolved "https://registry.yarnpkg.com/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz#87dfc979e5b4e7b82c5f1d8b722dfd5d77644681"
@@ -4340,6 +4382,11 @@ decamelize@^1.2.0:
43404382
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
43414383
integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
43424384

4385+
decode-uri-component@^0.2.2:
4386+
version "0.2.2"
4387+
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
4388+
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
4389+
43434390
dedent@^1.0.0:
43444391
version "1.5.1"
43454392
resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff"
@@ -5363,6 +5410,11 @@ fill-range@^7.0.1:
53635410
dependencies:
53645411
to-regex-range "^5.0.1"
53655412

5413+
filter-obj@^1.1.0:
5414+
version "1.1.0"
5415+
resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
5416+
integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==
5417+
53665418
53675419
version "1.1.2"
53685420
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
@@ -8116,7 +8168,7 @@ mz@^2.7.0:
81168168
object-assign "^4.0.1"
81178169
thenify-all "^1.0.0"
81188170

8119-
nanoid@^3.3.7:
8171+
nanoid@^3.1.23, nanoid@^3.3.7:
81208172
version "3.3.7"
81218173
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
81228174
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
@@ -9096,6 +9148,16 @@ [email protected]:
90969148
dependencies:
90979149
side-channel "^1.0.4"
90989150

9151+
query-string@^7.1.3:
9152+
version "7.1.3"
9153+
resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328"
9154+
integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==
9155+
dependencies:
9156+
decode-uri-component "^0.2.2"
9157+
filter-obj "^1.1.0"
9158+
split-on-first "^1.0.0"
9159+
strict-uri-encode "^2.0.0"
9160+
90999161
querystringify@^2.1.1:
91009162
version "2.2.0"
91019163
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
@@ -9171,6 +9233,11 @@ [email protected]:
91719233
loose-envify "^1.1.0"
91729234
scheduler "^0.23.0"
91739235

9236+
react-freeze@^1.0.0:
9237+
version "1.0.3"
9238+
resolved "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.3.tgz#5e3ca90e682fed1d73a7cb50c2c7402b3e85618d"
9239+
integrity sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==
9240+
91749241
react-hook-form@^7.48.2:
91759242
version "7.49.3"
91769243
resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.49.3.tgz#576a4567f8a774830812f4855e89f5da5830435c"
@@ -9181,7 +9248,7 @@ react-hook-form@^7.48.2:
91819248
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
91829249
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
91839250

9184-
react-is@^16.13.1:
9251+
react-is@^16.13.0, react-is@^16.13.1:
91859252
version "16.13.1"
91869253
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
91879254
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -9191,6 +9258,19 @@ react-is@^17.0.1:
91919258
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
91929259
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
91939260

9261+
9262+
version "4.6.3"
9263+
resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.6.3.tgz#f06cfea05b1c4b018aa9758667a109f619c62b55"
9264+
integrity sha512-3CeZM9HFXkuqiU9HqhOQp1yxhXw6q99axPWrT+VJkITd67gnPSU03+U27Xk2/cr9XrLUnakM07kj7H0hdPnFiQ==
9265+
9266+
react-native-screens@~3.22.0:
9267+
version "3.22.1"
9268+
resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.22.1.tgz#b0eb0696dbf1f9a852061cc71c0f8cdb95ed8e53"
9269+
integrity sha512-ffzwUdVKf+iLqhWSzN5DXBm0s2w5sN0P+TaHHPAx42LT7+DT0g8PkHT1QDvxpR5vCEPSS1i3EswyVK4HCuhTYg==
9270+
dependencies:
9271+
react-freeze "^1.0.0"
9272+
warn-once "^0.1.0"
9273+
91949274
react-native-web@~0.19.6:
91959275
version "0.19.10"
91969276
resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.19.10.tgz#5f7205f8909c0889bc89c9fde7c6e287defa7c63"
@@ -10000,6 +10080,11 @@ spdy@^4.0.2:
1000010080
select-hose "^2.0.0"
1000110081
spdy-transport "^3.0.0"
1000210082

10083+
split-on-first@^1.0.0:
10084+
version "1.1.0"
10085+
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
10086+
integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
10087+
1000310088
split@^1.0.1:
1000410089
version "1.0.1"
1000510090
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
@@ -10058,6 +10143,11 @@ [email protected]:
1005810143
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
1005910144
integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==
1006010145

10146+
strict-uri-encode@^2.0.0:
10147+
version "2.0.0"
10148+
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
10149+
integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
10150+
1006110151
string-length@^4.0.1:
1006210152
version "4.0.2"
1006310153
resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
@@ -10763,6 +10853,11 @@ url-parse@^1.5.9:
1076310853
querystringify "^2.1.1"
1076410854
requires-port "^1.0.0"
1076510855

10856+
use-latest-callback@^0.1.7:
10857+
version "0.1.9"
10858+
resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.9.tgz#10191dc54257e65a8e52322127643a8940271e2a"
10859+
integrity sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==
10860+
1076610861
use-sync-external-store@^1.0.0:
1076710862
version "1.2.0"
1076810863
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
@@ -10836,6 +10931,11 @@ walker@^1.0.7, walker@^1.0.8:
1083610931
dependencies:
1083710932
makeerror "1.0.12"
1083810933

10934+
warn-once@^0.1.0:
10935+
version "0.1.1"
10936+
resolved "https://registry.yarnpkg.com/warn-once/-/warn-once-0.1.1.tgz#952088f4fb56896e73fd4e6a3767272a3fccce43"
10937+
integrity sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==
10938+
1083910939
watchpack@^2.4.0:
1084010940
version "2.4.0"
1084110941
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"

0 commit comments

Comments
 (0)