diff --git a/app.json b/app.json
index 78a9007..b307ed0 100644
--- a/app.json
+++ b/app.json
@@ -1,8 +1,8 @@
{
"expo": {
- "name": "test-application",
- "slug": "test-application",
- "version": "1.0.0",
+ "name": "Tones",
+ "slug": "Tones",
+ "version": "1.0.1",
"orientation": "portrait",
"icon": "./assets/images/icon.png",
"scheme": "myapp",
@@ -23,11 +23,11 @@
},
"package": "com.anonymous.testapplication"
},
- "web": {
- "bundler": "metro",
- "output": "static",
- "favicon": "./assets/images/favicon.png"
- },
+ // "web": {
+ // "bundler": "metro",
+ // "output": "static",
+ // "favicon": "./assets/images/favicon.png"
+ // },
"plugins": [
"expo-router"
],
diff --git a/app/helpers.jsx b/app/helpers.jsx
index 69b8a4b..61e2f09 100644
--- a/app/helpers.jsx
+++ b/app/helpers.jsx
@@ -1,7 +1,8 @@
import styled from 'styled-components';
import Constants from 'expo-constants';
import { View, Text, Image, TextInput, TouchableOpacity } from 'react-native';
-import { Octicons, Ionicons } from '@expo/vector-icons';
+import { Ionicons } from '@expo/vector-icons';
+import { Picker } from '@react-native-picker/picker';
const StatusBarHeight = Constants.statusBarHeight;
@@ -19,7 +20,7 @@ export const InnerContainer = styled.View`
export const StyledFormArea = styled.View`
padding-top: 10px;
- width: 80%;
+ width: 90%;
`;
export const Title = styled.Text`
@@ -117,25 +118,47 @@ export const TextLinkContent = styled.Text`
`
export const LoginTextInput = ({
- label,
- icon,
- isPassword = false,
- hidePassword = true,
- setHidePassword = (boolean) => {},
- ...props
- }) => {
- return (
-
-
-
-
- {label}
-
- {isPassword ? (
- {setHidePassword(!hidePassword)}}>
-
-
- ) : null}
-
- )
- }
\ No newline at end of file
+ label,
+ icon,
+ isPassword = false,
+ hidePassword = true,
+ setHidePassword = (boolean) => {},
+ ...props
+}) => {
+ return (
+
+
+
+
+ {label}
+
+ {isPassword ? (
+ {setHidePassword(!hidePassword)}}>
+
+
+ ) : null}
+
+ )
+}
+
+export const LoginDropdownInput = ({
+ label,
+ icon,
+ selectedValue,
+ onValueChange,
+ items,
+}) => {
+ return (
+
+ {label}
+
+ {items.map((provider) => {
+ return
+ })}
+
+
+ )
+}
\ No newline at end of file
diff --git a/app/login.jsx b/app/login.jsx
index 09611e5..56bb74f 100644
--- a/app/login.jsx
+++ b/app/login.jsx
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { StatusBar } from 'expo-status-bar';
-import { Formik } from 'formik';
+import { useFormik } from 'formik';
import { SafeAreaView } from 'react-native-safe-area-context';
import { Tabs, Link } from 'expo-router';
import { useColorScheme } from '@/hooks/useColorScheme';
@@ -23,9 +23,33 @@ import {
export default function TabLayout() {
const colorScheme = useColorScheme();
+
+ const formik = useFormik({
+ initialValues: {
+ number: '',
+ password: ''
+ },
+ onSubmit: (values) => {
+ values.number = values.number.replace(/[()\-\s]/g, '');
+ console.log(values);
+ },
+ });
+
+ const formValues = formik.values;
const [login, setLogin] = useState(false);
const [hidePassword, setHidePassword] = useState(true);
+ const [loginButtonDisabled, setLoginButtonDisabled] = useState(true);
+
+ useEffect(() => {
+ if (formValues) {
+ if (formValues.number.length === 14 && formValues.password) {
+ setLoginButtonDisabled(false);
+ } else {
+ setLoginButtonDisabled(true);
+ }
+ }
+ }, [formValues])
return (
@@ -61,52 +85,43 @@ export default function TabLayout() {
Tones
Account Login
-
- {
- console.log(values);
- }}
- >
- {({handleChange, handleBlur, handleSubmit, values}) => (
-
-
-
- ...
-
- Login
-
-
-
- Don't have an account already?
-
- Register
-
-
-
- )}
-
+
+
+
+ ...
+
+ Login
+
+
+
+ Don't have an account already?
+
+ Register
+
+
+
)}
diff --git a/app/register.jsx b/app/register.jsx
new file mode 100644
index 0000000..bd76212
--- /dev/null
+++ b/app/register.jsx
@@ -0,0 +1,156 @@
+import React, { useState, useEffect } from 'react';
+import { ScrollView } from 'react-native';
+import { StatusBar } from 'expo-status-bar';
+import { useFormik, Formik } from 'formik';
+import { SafeAreaView } from 'react-native-safe-area-context';
+import {
+ StyledContainer,
+ InnerContainer,
+ StyledFormArea,
+ Title,
+ SubTitle,
+ PageImage,
+ StyledButton,
+ ButtonText,
+ MessageBox,
+ LoginTextInput,
+ LoginDropdownInput
+} from './helpers.jsx';
+
+const providers = [
+ {label: 'Verizon', value: 'verizon'},
+ {label: 'AT&T', value: 'att'},
+ {label: 'T-Mobile', value: 'tmobile'}
+]
+
+
+export default function Register() {
+
+ const [hidePassword, setHidePassword] = useState(true);
+ const [registerButtonDisabled, setRegisterButtonDisabled] = useState(true);
+
+ const formik = useFormik({
+ initialValues: {
+ firstName: '',
+ lastName: '',
+ number: '',
+ provider: '',
+ email: '',
+ password: '',
+ passwordConfirmation: ''
+ },
+ onSubmit: (values) => {
+ values.number = values.number.replace(/[()\-\s]/g, '');
+ console.log(values);
+ }
+ });
+
+ const formValues = formik.values;
+
+ useEffect(() => {
+ if (formValues) {
+ if ((formValues.number.length === 14 || (formValues.number.length === 10 && !formValues.number.includes('('))) && formValues.email && formValues.firstName && formValues.lastName) {
+ if (formValues.password.length !== 0 && (formValues.password === formValues.passwordConfirmation)) {
+ setRegisterButtonDisabled(false);
+ } else {
+ setRegisterButtonDisabled(true);
+ }
+ } else {
+ setRegisterButtonDisabled(true);
+ }
+ } else {
+ setRegisterButtonDisabled(true);
+ }
+ }, [formValues])
+
+ return (
+
+
+
+
+
+
+ Tones
+ Account Register
+
+
+
+
+
+
+
+
+ ...
+
+ Register
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/app/register.tsx b/app/register.tsx
deleted file mode 100644
index 33b1208..0000000
--- a/app/register.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-import React, { useState, useEffect } from 'react';
-import { ScrollView } from 'react-native';
-import { StatusBar } from 'expo-status-bar';
-import { Formik } from 'formik';
-import { SafeAreaView } from 'react-native-safe-area-context';
-import {
- StyledContainer,
- InnerContainer,
- StyledFormArea,
- Title,
- SubTitle,
- PageImage,
- StyledButton,
- ButtonText,
- MessageBox,
- LoginTextInput
- } from './helpers.jsx';
-
-export default function Register() {
-
- const [hidePassword, setHidePassword] = useState(true);
-
- return (
-
-
-
-
-
-
- Tones
- Account Register
-
- {
- values.number = values.number.replace(/[()\-\s]/g, '');
- console.log(values);
- }}
- >
- {({handleChange, handleBlur, handleSubmit, values}) => (
-
-
-
-
-
- ...
-
- Register
-
-
- )}
-
-
-
-
- )
-}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 183f336..c9a0889 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,14 +1,15 @@
{
- "name": "test-application",
- "version": "1.0.0",
+ "name": "tones",
+ "version": "1.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "test-application",
- "version": "1.0.0",
+ "name": "tones",
+ "version": "1.0.1",
"dependencies": {
"@expo/vector-icons": "^14.0.2",
+ "@react-native-picker/picker": "^2.7.7",
"@react-navigation/native": "^6.0.2",
"expo": "~51.0.24",
"expo-constants": "~16.0.2",
@@ -28,6 +29,7 @@
"react-native-safe-area-context": "4.10.5",
"react-native-screens": "3.31.1",
"react-native-textinput-effects": "^0.6.3",
+ "react-native-ui-kitten": "^4.4.1",
"react-native-web": "~0.19.10",
"styled-components": "^6.1.12"
},
@@ -2167,6 +2169,16 @@
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
"integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ=="
},
+ "node_modules/@eva-design/dss": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@eva-design/dss/-/dss-1.4.0.tgz",
+ "integrity": "sha512-T0qIZrTNjXiLIFA1Rwzqledw94pWoxQKIunYw+zmSG/vMDHYn6VDEnaZSdsoNBa7HflDgzADB1Sw2qimb9VgZQ=="
+ },
+ "node_modules/@eva-design/processor": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@eva-design/processor/-/processor-1.4.0.tgz",
+ "integrity": "sha512-QEiP6i2UORPNUZQHPvrCqyy2NQcLc9gvkeiuEckfiruwi++S89/HlJKcLvraiVD8RzZ7r8b7QcAIZdvyScNW7w=="
+ },
"node_modules/@expo/bunyan": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
@@ -5853,6 +5865,15 @@
"node": ">=8"
}
},
+ "node_modules/@react-native-picker/picker": {
+ "version": "2.7.7",
+ "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.7.7.tgz",
+ "integrity": "sha512-CTHthVmx8ujlH/u5AnxLQfsheh/DoEbo+Kbx0HGTlbKVLC1eZ4Kr9jXIIUcwB7JEgOXifdZIPQCsoTc/7GQ0ag==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/@react-native/assets-registry": {
"version": "0.74.85",
"resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.85.tgz",
@@ -7441,6 +7462,12 @@
"node": ">= 6"
}
},
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "peer": true
+ },
"node_modules/bplist-creator": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz",
@@ -8275,6 +8302,18 @@
"hyphenate-style-name": "^1.0.3"
}
},
+ "node_modules/css-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "peer": true,
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
"node_modules/css-to-react-native": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz",
@@ -8285,6 +8324,40 @@
"postcss-value-parser": "^4.0.2"
}
},
+ "node_modules/css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "peer": true,
+ "dependencies": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/css-tree/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "peer": true,
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/cssom": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
@@ -8639,6 +8712,43 @@
"node": ">=8"
}
},
+ "node_modules/dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "peer": true,
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "peer": true
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "peer": true,
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "peer": true
+ },
"node_modules/domexception": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
@@ -8652,6 +8762,16 @@
"node": ">=12"
}
},
+ "node_modules/domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "peer": true,
+ "dependencies": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
"node_modules/dotenv": {
"version": "16.4.5",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
@@ -9564,6 +9684,11 @@
"resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
"integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
},
+ "node_modules/fecha": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-3.0.3.tgz",
+ "integrity": "sha512-6LQK/1jud/FZnfEEZJ7y81vw7ge81DNd/XEsX0hgMUjhS+QMljkb1C0czBaP7dMNRVrd5mw/J2J7qI2Nw+TWZw=="
+ },
"node_modules/fetch-retry": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
@@ -9888,19 +10013,6 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -13373,139 +13485,6 @@
"lightningcss-win32-x64-msvc": "1.19.0"
}
},
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz",
- "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz",
- "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz",
- "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz",
- "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz",
- "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz",
- "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz",
- "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
"node_modules/lightningcss-win32-x64-msvc": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz",
@@ -13559,6 +13538,11 @@
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
},
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
"node_modules/lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
@@ -13815,6 +13799,12 @@
"resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
"integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
},
+ "node_modules/mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "peer": true
+ },
"node_modules/memoize-one": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
@@ -14730,6 +14720,15 @@
"node": ">=4"
}
},
+ "node_modules/nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "peer": true,
+ "dependencies": {
+ "boolbase": "~1.0.0"
+ }
+ },
"node_modules/nullthrows": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
@@ -15681,6 +15680,20 @@
"react-native": "*"
}
},
+ "node_modules/react-native-svg": {
+ "version": "9.13.6",
+ "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-9.13.6.tgz",
+ "integrity": "sha512-vjjuJhEhQCwWjqsgWyGy6/C/LIBM2REDxB40FU1PMhi8T3zQUwUHnA6M15pJKlQG8vaZyA+QnLyIVhjtujRgig==",
+ "peer": true,
+ "dependencies": {
+ "css-select": "^2.0.2",
+ "css-tree": "^1.0.0-alpha.37"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": ">=0.50.0"
+ }
+ },
"node_modules/react-native-textinput-effects": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/react-native-textinput-effects/-/react-native-textinput-effects-0.6.3.tgz",
@@ -15689,6 +15702,22 @@
"@types/react-native-vector-icons": "^6.4.5"
}
},
+ "node_modules/react-native-ui-kitten": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-native-ui-kitten/-/react-native-ui-kitten-4.4.1.tgz",
+ "integrity": "sha512-l3QZNKl+y4U4gcuFJYb1ozXPmIJ5ipz+cxCNwq+sWlymY3A7puvqhP9bP1T2tc1wqwR3Gpjnc9Jlnwwv1OUzsQ==",
+ "deprecated": "This package is renamed to @ui-kitten/components",
+ "dependencies": {
+ "@eva-design/dss": "^1.4.0",
+ "@eva-design/processor": "^1.4.0",
+ "fecha": "3.0.3",
+ "hoist-non-react-statics": "^3.2.1",
+ "lodash.merge": "^4.6.1"
+ },
+ "peerDependencies": {
+ "react-native-svg": "^9.4.0"
+ }
+ },
"node_modules/react-native-web": {
"version": "0.19.12",
"resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.12.tgz",
diff --git a/package.json b/package.json
index ec919b7..cce343b 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
- "name": "test-application",
+ "name": "tones",
"main": "expo-router/entry",
- "version": "1.0.0",
+ "version": "1.0.1",
"scripts": {
"start": "expo start",
"reset-project": "node ./scripts/reset-project.js",
@@ -16,6 +16,7 @@
},
"dependencies": {
"@expo/vector-icons": "^14.0.2",
+ "@react-native-picker/picker": "^2.7.7",
"@react-navigation/native": "^6.0.2",
"expo": "~51.0.24",
"expo-constants": "~16.0.2",
@@ -35,6 +36,7 @@
"react-native-safe-area-context": "4.10.5",
"react-native-screens": "3.31.1",
"react-native-textinput-effects": "^0.6.3",
+ "react-native-ui-kitten": "^4.4.1",
"react-native-web": "~0.19.10",
"styled-components": "^6.1.12"
},
diff --git a/tsconfig.json b/tsconfig.json
index 909e901..758cc93 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -11,6 +11,7 @@
"include": [
"**/*.ts",
"**/*.tsx",
+ "**/*.jsx",
".expo/types/**/*.ts",
"expo-env.d.ts"
]