diff --git a/packages/react-native/babel.config.js b/packages/react-native/babel.config.js
index b383161c..db1e1189 100644
--- a/packages/react-native/babel.config.js
+++ b/packages/react-native/babel.config.js
@@ -19,5 +19,6 @@ module.exports = {
},
},
],
+ 'react-native-reanimated/plugin',
],
};
diff --git a/packages/react-native/ios/Podfile.lock b/packages/react-native/ios/Podfile.lock
index 57fb9449..913dff6a 100644
--- a/packages/react-native/ios/Podfile.lock
+++ b/packages/react-native/ios/Podfile.lock
@@ -1235,6 +1235,27 @@ PODS:
- Yoga
- RNPermissions (4.1.5):
- React-Core
+ - RNReanimated (3.14.0):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Codegen
+ - React-Core
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-ImageManager
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-rendererdebug
+ - React-utils
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - Yoga
- RNScreens (3.32.0):
- DoubleConversion
- glog
@@ -1331,6 +1352,7 @@ DEPENDENCIES:
- ReactCommon/turbomodule/core (from `../../../node_modules/react-native/ReactCommon`)
- RNGestureHandler (from `../../../node_modules/react-native-gesture-handler`)
- RNPermissions (from `../../../node_modules/react-native-permissions`)
+ - RNReanimated (from `../../../node_modules/react-native-reanimated`)
- RNScreens (from `../../../node_modules/react-native-screens`)
- RNSVG (from `../../../node_modules/react-native-svg`)
- VisionCamera (from `../../../node_modules/react-native-vision-camera`)
@@ -1462,6 +1484,8 @@ EXTERNAL SOURCES:
:path: "../../../node_modules/react-native-gesture-handler"
RNPermissions:
:path: "../../../node_modules/react-native-permissions"
+ RNReanimated:
+ :path: "../../../node_modules/react-native-reanimated"
RNScreens:
:path: "../../../node_modules/react-native-screens"
RNSVG:
@@ -1532,6 +1556,7 @@ SPEC CHECKSUMS:
ReactCommon: f00e436b3925a7ae44dfa294b43ef360fbd8ccc4
RNGestureHandler: 8dbcccada4a7e702e7dec9338c251b1cf393c960
RNPermissions: 4da8c626e4ac9d71c1a199d500d52dd54da62e38
+ RNReanimated: 7e6fc1e80f412285a16ac3879b9e4672ffa91cef
RNScreens: 5aeecbb09aa7285379b6e9f3c8a3c859bb16401c
RNSVG: cb24fb322de8c1ebf59904e7aca0447bb8dbed5a
SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
diff --git a/packages/react-native/package.json b/packages/react-native/package.json
index 681d6612..a7cddedd 100644
--- a/packages/react-native/package.json
+++ b/packages/react-native/package.json
@@ -17,6 +17,8 @@
"@react-navigation/bottom-tabs": "^6.6.0",
"@react-navigation/native": "^6.1.17",
"@react-navigation/stack": "^6.4.0",
+ "@tanstack/react-query": "^5.51.9",
+ "axios": "^1.7.2",
"babel-plugin-module-resolver": "^5.0.2",
"design-system": "workspace:^",
"nativewind": "^2.0.11",
@@ -26,12 +28,15 @@
"react-native-image-picker": "^7.1.2",
"react-native-linear-gradient": "^2.8.3",
"react-native-permissions": "^4.1.5",
+ "react-native-reanimated": "^3.14.0",
"react-native-safe-area-context": "^4.10.8",
"react-native-screens": "^3.32.0",
"react-native-svg": "^15.4.0",
"react-native-view-shot": "^3.8.0",
"react-native-vision-camera": "^4.5.0",
- "tailwind-config": "workspace:*"
+ "reanimated-color-picker": "^3.0.4",
+ "tailwind-config": "workspace:*",
+ "tinycolor2": "^1.6.0"
},
"devDependencies": {
"@babel/core": "^7.20.0",
@@ -45,6 +50,7 @@
"@react-native/typescript-config": "0.74.84",
"@types/react": "^18.2.6",
"@types/react-test-renderer": "^18.0.0",
+ "@types/tinycolor2": "^1.4.6",
"@typescript-eslint/eslint-plugin": "^7.16.0",
"@typescript-eslint/parser": "^7.16.0",
"babel-jest": "^29.6.3",
diff --git a/packages/react-native/src/App.tsx b/packages/react-native/src/App.tsx
index 19ff52d6..c7fcaf0b 100644
--- a/packages/react-native/src/App.tsx
+++ b/packages/react-native/src/App.tsx
@@ -1,10 +1,14 @@
import { NavigationContainer } from '@react-navigation/native';
import StackNavigator from '@routes/StackNavigator';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+const queryClient = new QueryClient();
export default function App() {
return (
-
-
-
+
+
+
+
+
);
}
diff --git a/packages/react-native/src/apis/mutations/useSignup.ts b/packages/react-native/src/apis/mutations/useSignup.ts
new file mode 100644
index 00000000..1591edd9
--- /dev/null
+++ b/packages/react-native/src/apis/mutations/useSignup.ts
@@ -0,0 +1,26 @@
+import { useMutation } from '@tanstack/react-query';
+import axios from 'axios';
+
+interface UseSignupParams {
+ nickname: string;
+ profile?: string;
+ nicknameProfileColor?: string;
+}
+
+export default function useSignup({
+ nickname,
+ profile,
+ nicknameProfileColor,
+}: UseSignupParams) {
+ return useMutation({
+ // FIXME: 실제 연동 로직 필요
+ mutationFn: () =>
+ axios.post('SOME url...', {
+ nickname,
+ profile,
+ nicknameProfileColor,
+ }),
+ onSuccess: () => {},
+ onError: () => {},
+ });
+}
diff --git a/packages/react-native/src/components/signup/Header.tsx b/packages/react-native/src/components/signup/common/Header.tsx
similarity index 100%
rename from packages/react-native/src/components/signup/Header.tsx
rename to packages/react-native/src/components/signup/common/Header.tsx
diff --git a/packages/react-native/src/components/signup/Overlay.tsx b/packages/react-native/src/components/signup/common/Overlay.tsx
similarity index 100%
rename from packages/react-native/src/components/signup/Overlay.tsx
rename to packages/react-native/src/components/signup/common/Overlay.tsx
diff --git a/packages/react-native/src/components/signup/nicknameProfile/ColorSlider.tsx b/packages/react-native/src/components/signup/nicknameProfile/ColorSlider.tsx
new file mode 100644
index 00000000..48da7b64
--- /dev/null
+++ b/packages/react-native/src/components/signup/nicknameProfile/ColorSlider.tsx
@@ -0,0 +1,23 @@
+import ColorPicker, {
+ returnedResults,
+ SaturationSlider,
+} from 'reanimated-color-picker';
+import { NicknameColorSet } from '@/constants/NICKNAME_COLOR_SET';
+
+interface ColorSliderProps {
+ baseColor: NicknameColorSet;
+ onChange: ({ hex }: returnedResults) => void;
+}
+
+export default function ColorSlider({ baseColor, onChange }: ColorSliderProps) {
+ return (
+
+
+
+ );
+}
diff --git a/packages/react-native/src/components/signup/nicknameProfile/NicknameColorPalette.tsx b/packages/react-native/src/components/signup/nicknameProfile/NicknameColorPalette.tsx
new file mode 100644
index 00000000..ad613c75
--- /dev/null
+++ b/packages/react-native/src/components/signup/nicknameProfile/NicknameColorPalette.tsx
@@ -0,0 +1,36 @@
+import { TouchableOpacity } from 'react-native-gesture-handler';
+import { View } from 'react-native';
+import {
+ NICKNAME_COLOR_SET,
+ NicknameColorSet,
+} from '@/constants/NICKNAME_COLOR_SET';
+
+interface NicknameColorPaletteProps {
+ selectedPalette: NicknameColorSet;
+ changeSelectedPalette: (color: NicknameColorSet) => void;
+}
+
+export default function NicknameColorPalette({
+ selectedPalette,
+ changeSelectedPalette,
+}: NicknameColorPaletteProps) {
+ return (
+
+ {NICKNAME_COLOR_SET.map((color) => (
+ changeSelectedPalette(color)}
+ >
+
+
+ ))}
+
+ );
+}
diff --git a/packages/react-native/src/constants/NICKNAME_COLOR_SET.ts b/packages/react-native/src/constants/NICKNAME_COLOR_SET.ts
new file mode 100644
index 00000000..c575cbde
--- /dev/null
+++ b/packages/react-native/src/constants/NICKNAME_COLOR_SET.ts
@@ -0,0 +1,10 @@
+export const NICKNAME_COLOR_SET = [
+ '#F7AFAF',
+ '#F7D6AF',
+ '#F7F4AF',
+ '#AFF7B2',
+ '#AFE1F7',
+ '#BEAFF7',
+];
+
+export type NicknameColorSet = (typeof NICKNAME_COLOR_SET)[number];
diff --git a/packages/react-native/src/pages/Login/NicknameProfile.tsx b/packages/react-native/src/pages/Login/NicknameProfile.tsx
deleted file mode 100644
index aa0d6ed8..00000000
--- a/packages/react-native/src/pages/Login/NicknameProfile.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Font } from 'design-system';
-import { View } from 'react-native';
-import Header from '@/components/signup/Header';
-import Overlay from '@/components/signup/Overlay';
-import { SignupStackNavigation } from '@/types/navigation';
-
-interface NicknameProfileProps {
- navigation: SignupStackNavigation<'Signup/NicknameProfile'>;
-}
-
-export default function NicknameProfile({ navigation }: NicknameProfileProps) {
- return (
-
-
- navigation.goBack()}
- onCancel={() => navigation.goBack()}
- />
-
-
- 배경 색상을
-
-
- 선택하세요
-
-
-
-
- );
-}
diff --git a/packages/react-native/src/pages/Login/Nickname.tsx b/packages/react-native/src/pages/Signup/Nickname.tsx
similarity index 92%
rename from packages/react-native/src/pages/Login/Nickname.tsx
rename to packages/react-native/src/pages/Signup/Nickname.tsx
index 2f75b98c..4e049418 100644
--- a/packages/react-native/src/pages/Login/Nickname.tsx
+++ b/packages/react-native/src/pages/Signup/Nickname.tsx
@@ -1,8 +1,8 @@
import { Font, TextField } from 'design-system';
import { useState } from 'react';
import { View } from 'react-native';
-import Header from '@/components/signup/Header';
-import Overlay from '@/components/signup/Overlay';
+import Header from '@/components/signup/common/Header';
+import Overlay from '@/components/signup/common/Overlay';
import { SignupStackNavigation } from '@/types/navigation';
interface NicknameProps {
diff --git a/packages/react-native/src/pages/Signup/NicknameProfile.tsx b/packages/react-native/src/pages/Signup/NicknameProfile.tsx
new file mode 100644
index 00000000..b3165340
--- /dev/null
+++ b/packages/react-native/src/pages/Signup/NicknameProfile.tsx
@@ -0,0 +1,103 @@
+import { Button, Font } from 'design-system';
+import { Text, View } from 'react-native';
+import { returnedResults } from 'reanimated-color-picker';
+import { useState } from 'react';
+import tinycolor from 'tinycolor2';
+import { useRoute } from '@react-navigation/native';
+import { SignupRouteProps, SignupStackNavigation } from '@/types/navigation';
+import Overlay from '@/components/signup/common/Overlay';
+import Header from '@/components/signup/common/Header';
+import {
+ NICKNAME_COLOR_SET,
+ NicknameColorSet,
+} from '@/constants/NICKNAME_COLOR_SET';
+import NicknameColorPalette from '@/components/signup/nicknameProfile/NicknameColorPalette';
+import ColorSlider from '@/components/signup/nicknameProfile/ColorSlider';
+
+interface NicknameProfileProps {
+ navigation: SignupStackNavigation<'Signup/NicknameProfile'>;
+}
+
+export default function NicknameProfile({ navigation }: NicknameProfileProps) {
+ const route = useRoute>();
+ const { nickname } = route.params;
+ const [selectedColor, setSelectedColor] = useState(NICKNAME_COLOR_SET[0]);
+ const [selectedPalette, setSelectedPalette] = useState(
+ NICKNAME_COLOR_SET[0],
+ );
+
+ const onSelectColor = ({ hex }: returnedResults) => {
+ setSelectedColor(hex);
+ };
+
+ const onChangeSelectedBarColor = (color: NicknameColorSet) => {
+ setSelectedColor(color);
+ setSelectedPalette(color);
+ };
+
+ const getFontColor = () => {
+ const textColor = tinycolor(selectedColor);
+ return textColor.darken(25).toHexString();
+ };
+
+ const handleNext = () => {
+ navigation.navigate('Main');
+ };
+
+ return (
+
+
+ navigation.goBack()}
+ onCancel={() => navigation.goBack()}
+ />
+
+
+
+ 배경 색상을
+
+
+ 선택하세요
+
+
+
+
+
+ {nickname}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/packages/react-native/src/pages/Login/Profile.tsx b/packages/react-native/src/pages/Signup/Profile.tsx
similarity index 95%
rename from packages/react-native/src/pages/Login/Profile.tsx
rename to packages/react-native/src/pages/Signup/Profile.tsx
index 20553d5f..df2df392 100644
--- a/packages/react-native/src/pages/Login/Profile.tsx
+++ b/packages/react-native/src/pages/Signup/Profile.tsx
@@ -4,8 +4,8 @@ import { TouchableOpacity } from 'react-native-gesture-handler';
import { useState } from 'react';
import { useRoute } from '@react-navigation/native';
import SelectProfile from '@/assets/SelectProfile';
-import Header from '@/components/signup/Header';
-import Overlay from '@/components/signup/Overlay';
+import Header from '@/components/signup/common/Header';
+import Overlay from '@/components/signup/common/Overlay';
import { SignupRouteProps, SignupStackNavigation } from '@/types/navigation';
import useGallery from '@/hooks/useGallery';
diff --git a/packages/react-native/src/routes/SignupStackNavigator.tsx b/packages/react-native/src/routes/SignupStackNavigator.tsx
index 55b54f80..df768f3d 100644
--- a/packages/react-native/src/routes/SignupStackNavigator.tsx
+++ b/packages/react-native/src/routes/SignupStackNavigator.tsx
@@ -1,7 +1,7 @@
import { createStackNavigator } from '@react-navigation/stack';
-import Niakname from '@/pages/Login/Nickname';
-import Profile from '@/pages/Login/Profile';
-import NicknameProfile from '@/pages/Login/NicknameProfile';
+import Niakname from '@/pages/Signup/Nickname';
+import Profile from '@/pages/Signup/Profile';
+import NicknameProfile from '@/pages/Signup/NicknameProfile';
const Stack = createStackNavigator();
diff --git a/yarn.lock b/yarn.lock
index 80175a34..66cd0c93 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -357,6 +357,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-plugin-utils@npm:^7.24.8":
+ version: 7.24.8
+ resolution: "@babel/helper-plugin-utils@npm:7.24.8"
+ checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a
+ languageName: node
+ linkType: hard
+
"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7"
@@ -934,7 +941,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.24.7":
+"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.0.0-0, @babel/plugin-transform-arrow-functions@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7"
dependencies:
@@ -1276,7 +1283,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7":
+"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.0.0-0, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7"
dependencies:
@@ -1338,6 +1345,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-optional-chaining@npm:^7.0.0-0":
+ version: 7.24.8
+ resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.24.8
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7
+ "@babel/plugin-syntax-optional-chaining": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 45e55e3a2fffb89002d3f89aef59c141610f23b60eee41e047380bffc40290b59f64fc649aa7ec5281f73d41b2065410d788acc6afaad2a9f44cad6e8af04442
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7"
@@ -1509,7 +1529,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7":
+"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.0.0-0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7"
dependencies:
@@ -1543,7 +1563,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-template-literals@npm:^7.24.7":
+"@babel/plugin-transform-template-literals@npm:^7.0.0-0, @babel/plugin-transform-template-literals@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-transform-template-literals@npm:7.24.7"
dependencies:
@@ -1759,7 +1779,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.23.0":
+"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.23.0":
version: 7.24.7
resolution: "@babel/preset-typescript@npm:7.24.7"
dependencies:
@@ -4714,6 +4734,24 @@ __metadata:
languageName: node
linkType: hard
+"@tanstack/query-core@npm:5.51.9":
+ version: 5.51.9
+ resolution: "@tanstack/query-core@npm:5.51.9"
+ checksum: f3192fe32a2ac67be6f16f14e24867cf42587d3e6c3bc1715c44c6f899136a83d785986db5602b5da6ee4cc894bfb1c926d9a4e4574af32cbd9db243806f6113
+ languageName: node
+ linkType: hard
+
+"@tanstack/react-query@npm:^5.51.9":
+ version: 5.51.9
+ resolution: "@tanstack/react-query@npm:5.51.9"
+ dependencies:
+ "@tanstack/query-core": 5.51.9
+ peerDependencies:
+ react: ^18.0.0
+ checksum: f0e1612227b9d7a13a666fff4099c57200a084d5ac7e03d1771972e4d332ec47553426f4fdd745177754e4327eb6e114f0844264cb1d98202d3219464b79d729
+ languageName: node
+ linkType: hard
+
"@testing-library/dom@npm:10.1.0":
version: 10.1.0
resolution: "@testing-library/dom@npm:10.1.0"
@@ -5184,6 +5222,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/tinycolor2@npm:^1.4.6":
+ version: 1.4.6
+ resolution: "@types/tinycolor2@npm:1.4.6"
+ checksum: 50179851b32dcf78e0b4b691350a61043d8a00c3a8176d8155a257b34bb937136ff5d7950c814dca3c832673c7b6dc835f89dd154e85ccec3a4d4eac3993ed84
+ languageName: node
+ linkType: hard
+
"@types/unist@npm:*, @types/unist@npm:^3.0.0":
version: 3.0.2
resolution: "@types/unist@npm:3.0.2"
@@ -6360,6 +6405,13 @@ __metadata:
languageName: node
linkType: hard
+"asynckit@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "asynckit@npm:0.4.0"
+ checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be
+ languageName: node
+ linkType: hard
+
"autoprefixer@npm:^10.4.19":
version: 10.4.19
resolution: "autoprefixer@npm:10.4.19"
@@ -6394,6 +6446,17 @@ __metadata:
languageName: node
linkType: hard
+"axios@npm:^1.7.2":
+ version: 1.7.2
+ resolution: "axios@npm:1.7.2"
+ dependencies:
+ follow-redirects: ^1.15.6
+ form-data: ^4.0.0
+ proxy-from-env: ^1.1.0
+ checksum: e457e2b0ab748504621f6fa6609074ac08c824bf0881592209dfa15098ece7e88495300e02cd22ba50b3468fd712fe687e629dcb03d6a3f6a51989727405aedf
+ languageName: node
+ linkType: hard
+
"axobject-query@npm:~3.1.1":
version: 3.1.1
resolution: "axobject-query@npm:3.1.1"
@@ -7249,6 +7312,15 @@ __metadata:
languageName: node
linkType: hard
+"combined-stream@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: ~1.0.0
+ checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c
+ languageName: node
+ linkType: hard
+
"command-exists@npm:^1.2.8":
version: 1.2.9
resolution: "command-exists@npm:1.2.9"
@@ -7878,6 +7950,13 @@ __metadata:
languageName: node
linkType: hard
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020
+ languageName: node
+ linkType: hard
+
"denodeify@npm:^1.2.1":
version: 1.2.1
resolution: "denodeify@npm:1.2.1"
@@ -9625,6 +9704,16 @@ __metadata:
languageName: node
linkType: hard
+"follow-redirects@npm:^1.15.6":
+ version: 1.15.6
+ resolution: "follow-redirects@npm:1.15.6"
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5
+ languageName: node
+ linkType: hard
+
"for-each@npm:^0.3.3":
version: 0.3.3
resolution: "for-each@npm:0.3.3"
@@ -9667,6 +9756,17 @@ __metadata:
languageName: node
linkType: hard
+"form-data@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "form-data@npm:4.0.0"
+ dependencies:
+ asynckit: ^0.4.0
+ combined-stream: ^1.0.8
+ mime-types: ^2.1.12
+ checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c
+ languageName: node
+ linkType: hard
+
"forwarded@npm:0.2.0":
version: 0.2.0
resolution: "forwarded@npm:0.2.0"
@@ -12567,7 +12667,7 @@ __metadata:
languageName: node
linkType: hard
-"mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
+"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
dependencies:
@@ -14113,6 +14213,13 @@ __metadata:
languageName: node
linkType: hard
+"proxy-from-env@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "proxy-from-env@npm:1.1.0"
+ checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4
+ languageName: node
+ linkType: hard
+
"pump@npm:^2.0.0":
version: 2.0.1
resolution: "pump@npm:2.0.1"
@@ -14430,6 +14537,26 @@ __metadata:
languageName: node
linkType: hard
+"react-native-reanimated@npm:^3.14.0":
+ version: 3.14.0
+ resolution: "react-native-reanimated@npm:3.14.0"
+ dependencies:
+ "@babel/plugin-transform-arrow-functions": ^7.0.0-0
+ "@babel/plugin-transform-nullish-coalescing-operator": ^7.0.0-0
+ "@babel/plugin-transform-optional-chaining": ^7.0.0-0
+ "@babel/plugin-transform-shorthand-properties": ^7.0.0-0
+ "@babel/plugin-transform-template-literals": ^7.0.0-0
+ "@babel/preset-typescript": ^7.16.7
+ convert-source-map: ^2.0.0
+ invariant: ^2.2.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ react: "*"
+ react-native: "*"
+ checksum: 31eb58d1c7fbd233ce789de2f63779f485f07708e0a4168866ab9dfce555e970079a84ca34eef9cfb06ee48cfa9e1b0e452407a7938c066393034c046642a855
+ languageName: node
+ linkType: hard
+
"react-native-safe-area-context@npm:^4.10.8":
version: 4.10.8
resolution: "react-native-safe-area-context@npm:4.10.8"
@@ -14588,10 +14715,13 @@ __metadata:
"@react-navigation/bottom-tabs": ^6.6.0
"@react-navigation/native": ^6.1.17
"@react-navigation/stack": ^6.4.0
+ "@tanstack/react-query": ^5.51.9
"@types/react": ^18.2.6
"@types/react-test-renderer": ^18.0.0
+ "@types/tinycolor2": ^1.4.6
"@typescript-eslint/eslint-plugin": ^7.16.0
"@typescript-eslint/parser": ^7.16.0
+ axios: ^1.7.2
babel-jest: ^29.6.3
babel-plugin-module-resolver: ^5.0.2
design-system: "workspace:^"
@@ -14615,14 +14745,17 @@ __metadata:
react-native-image-picker: ^7.1.2
react-native-linear-gradient: ^2.8.3
react-native-permissions: ^4.1.5
+ react-native-reanimated: ^3.14.0
react-native-safe-area-context: ^4.10.8
react-native-screens: ^3.32.0
react-native-svg: ^15.4.0
react-native-view-shot: ^3.8.0
react-native-vision-camera: ^4.5.0
react-test-renderer: 18.2.0
+ reanimated-color-picker: ^3.0.4
tailwind-config: "workspace:*"
tailwindcss: 3.2.2
+ tinycolor2: ^1.6.0
typescript: 5.0.4
languageName: unknown
linkType: soft
@@ -14810,6 +14943,22 @@ __metadata:
languageName: node
linkType: hard
+"reanimated-color-picker@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "reanimated-color-picker@npm:3.0.4"
+ peerDependencies:
+ expo: ">=44.0.0"
+ react: "*"
+ react-native: "*"
+ react-native-gesture-handler: ">=2.0.0"
+ react-native-reanimated: ^2.0.0 || ^3.0.0
+ peerDependenciesMeta:
+ expo:
+ optional: true
+ checksum: c402ac803311810f97b48418270cd0a1a912f44cf856b8d84836cdb9c653f5c47d9e711a4c0208eacf9d391a4947d8d0756311e779dbd5d28eac5efa7649ddba
+ languageName: node
+ linkType: hard
+
"recast@npm:^0.21.0":
version: 0.21.5
resolution: "recast@npm:0.21.5"
@@ -16365,6 +16514,13 @@ __metadata:
languageName: node
linkType: hard
+"tinycolor2@npm:^1.6.0":
+ version: 1.6.0
+ resolution: "tinycolor2@npm:1.6.0"
+ checksum: 6df4d07fceeedc0a878d7bac47e2cd47c1ceeb1078340a9eb8a295bc0651e17c750f73d47b3028d829f30b85c15e0572c0fd4142083e4c21a30a597e47f47230
+ languageName: node
+ linkType: hard
+
"tinyspy@npm:^2.2.0":
version: 2.2.1
resolution: "tinyspy@npm:2.2.1"