Setup/tones init #4
8 changed files with 457 additions and 338 deletions
16
app.json
16
app.json
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"expo": {
|
"expo": {
|
||||||
"name": "test-application",
|
"name": "Tones",
|
||||||
"slug": "test-application",
|
"slug": "Tones",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"orientation": "portrait",
|
"orientation": "portrait",
|
||||||
"icon": "./assets/images/icon.png",
|
"icon": "./assets/images/icon.png",
|
||||||
"scheme": "myapp",
|
"scheme": "myapp",
|
||||||
|
|
@ -23,11 +23,11 @@
|
||||||
},
|
},
|
||||||
"package": "com.anonymous.testapplication"
|
"package": "com.anonymous.testapplication"
|
||||||
},
|
},
|
||||||
"web": {
|
// "web": {
|
||||||
"bundler": "metro",
|
// "bundler": "metro",
|
||||||
"output": "static",
|
// "output": "static",
|
||||||
"favicon": "./assets/images/favicon.png"
|
// "favicon": "./assets/images/favicon.png"
|
||||||
},
|
// },
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"expo-router"
|
"expo-router"
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import Constants from 'expo-constants';
|
import Constants from 'expo-constants';
|
||||||
import { View, Text, Image, TextInput, TouchableOpacity } from 'react-native';
|
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;
|
const StatusBarHeight = Constants.statusBarHeight;
|
||||||
|
|
||||||
|
|
@ -19,7 +20,7 @@ export const InnerContainer = styled.View`
|
||||||
|
|
||||||
export const StyledFormArea = styled.View`
|
export const StyledFormArea = styled.View`
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
width: 80%;
|
width: 90%;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export const Title = styled.Text`
|
export const Title = styled.Text`
|
||||||
|
|
@ -117,25 +118,47 @@ export const TextLinkContent = styled.Text`
|
||||||
`
|
`
|
||||||
|
|
||||||
export const LoginTextInput = ({
|
export const LoginTextInput = ({
|
||||||
label,
|
label,
|
||||||
icon,
|
icon,
|
||||||
isPassword = false,
|
isPassword = false,
|
||||||
hidePassword = true,
|
hidePassword = true,
|
||||||
setHidePassword = (boolean) => {},
|
setHidePassword = (boolean) => {},
|
||||||
...props
|
...props
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<View>
|
<View>
|
||||||
<LeftIcon>
|
<LeftIcon>
|
||||||
<Ionicons name={icon} size={30} color='red' />
|
<Ionicons name={icon} size={30} color='red' />
|
||||||
</LeftIcon>
|
</LeftIcon>
|
||||||
<StyledInputLabel>{label}</StyledInputLabel>
|
<StyledInputLabel>{label}</StyledInputLabel>
|
||||||
<StyledTextInput {...props} />
|
<StyledTextInput {...props} />
|
||||||
{isPassword ? (
|
{isPassword ? (
|
||||||
<RightIcon onPress={() => {setHidePassword(!hidePassword)}}>
|
<RightIcon onPress={() => {setHidePassword(!hidePassword)}}>
|
||||||
<Ionicons name={hidePassword ? 'eye-off-outline' : 'eye-outline'} size={30} color="gray" />
|
<Ionicons name={hidePassword ? 'eye-off-outline' : 'eye-outline'} size={30} color="gray" />
|
||||||
</RightIcon>
|
</RightIcon>
|
||||||
) : null}
|
) : null}
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const LoginDropdownInput = ({
|
||||||
|
label,
|
||||||
|
icon,
|
||||||
|
selectedValue,
|
||||||
|
onValueChange,
|
||||||
|
items,
|
||||||
|
}) => {
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
<StyledInputLabel>{label}</StyledInputLabel>
|
||||||
|
<Picker
|
||||||
|
selectedValue={selectedValue}
|
||||||
|
onValueChange={onValueChange}
|
||||||
|
>
|
||||||
|
{items.map((provider) => {
|
||||||
|
return <Picker.Item label={provider.label} value={provider.value} key={provider.value} />
|
||||||
|
})}
|
||||||
|
</Picker>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
109
app/login.jsx
109
app/login.jsx
|
|
@ -1,6 +1,6 @@
|
||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import { StatusBar } from 'expo-status-bar';
|
import { StatusBar } from 'expo-status-bar';
|
||||||
import { Formik } from 'formik';
|
import { useFormik } from 'formik';
|
||||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||||
import { Tabs, Link } from 'expo-router';
|
import { Tabs, Link } from 'expo-router';
|
||||||
import { useColorScheme } from '@/hooks/useColorScheme';
|
import { useColorScheme } from '@/hooks/useColorScheme';
|
||||||
|
|
@ -23,9 +23,33 @@ import {
|
||||||
|
|
||||||
export default function TabLayout() {
|
export default function TabLayout() {
|
||||||
const colorScheme = useColorScheme();
|
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 [login, setLogin] = useState(false);
|
||||||
const [hidePassword, setHidePassword] = useState(true);
|
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 (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
|
|
@ -61,52 +85,43 @@ export default function TabLayout() {
|
||||||
<PageImage resizeMode="cover" source={require('./../assets/images/tones-logo.png')} />
|
<PageImage resizeMode="cover" source={require('./../assets/images/tones-logo.png')} />
|
||||||
<Title>Tones</Title>
|
<Title>Tones</Title>
|
||||||
<SubTitle>Account Login</SubTitle>
|
<SubTitle>Account Login</SubTitle>
|
||||||
|
<StyledFormArea>
|
||||||
<Formik
|
<LoginTextInput
|
||||||
initialValues={{ number: '', password: '' }}
|
label="Phone Number"
|
||||||
onSubmit={(values) => {
|
icon="call-outline"
|
||||||
console.log(values);
|
placeholder="123-456-7890"
|
||||||
}}
|
placeholderTextColor="gray"
|
||||||
>
|
onChangeText={formik.handleChange('number')}
|
||||||
{({handleChange, handleBlur, handleSubmit, values}) => (
|
onBlur={formik.handleBlur('number')}
|
||||||
<StyledFormArea>
|
value={formik.values.number.replace(/^(\d{3})(\d{3})(\d+)$/, "($1) $2-$3")}
|
||||||
<LoginTextInput
|
keyboardType="number-pad"
|
||||||
label="Phone Number"
|
maxLength={14}
|
||||||
icon="call-outline"
|
/>
|
||||||
placeholder="123-456-7890"
|
<LoginTextInput
|
||||||
placeholderTextColor="gray"
|
label="Password"
|
||||||
onChangeText={handleChange('number')}
|
icon="lock-closed-outline"
|
||||||
onBlur={handleBlur('number')}
|
placeholder="* * * * * *"
|
||||||
value={values.number}
|
placeholderTextColor="gray"
|
||||||
keyboardType="number-pad"
|
onChangeText={formik.handleChange('password')}
|
||||||
/>
|
onBlur={formik.handleBlur('password')}
|
||||||
<LoginTextInput
|
value={formik.values.password}
|
||||||
label="Password"
|
secureTextEntry={hidePassword}
|
||||||
icon="lock-closed-outline"
|
isPassword
|
||||||
placeholder="* * * * * *"
|
hidePassword={hidePassword}
|
||||||
placeholderTextColor="gray"
|
setHidePassword={setHidePassword}
|
||||||
onChangeText={handleChange('password')}
|
/>
|
||||||
onBlur={handleBlur('password')}
|
<MessageBox>...</MessageBox>
|
||||||
value={values.password}
|
<StyledButton onPress={formik.handleSubmit} disabled={loginButtonDisabled} style={loginButtonDisabled ? {backgroundColor: 'grey'} : {}}>
|
||||||
secureTextEntry={hidePassword}
|
<ButtonText>Login</ButtonText>
|
||||||
isPassword
|
</StyledButton>
|
||||||
hidePassword={hidePassword}
|
<Line />
|
||||||
setHidePassword={setHidePassword}
|
<ExtraView>
|
||||||
/>
|
<ExtraText>Don't have an account already? </ExtraText>
|
||||||
<MessageBox>...</MessageBox>
|
<Link href='./register'>
|
||||||
<StyledButton onPress={handleSubmit}>
|
<TextLinkContent>Register</TextLinkContent>
|
||||||
<ButtonText>Login</ButtonText>
|
</Link>
|
||||||
</StyledButton>
|
</ExtraView>
|
||||||
<Line />
|
</StyledFormArea>
|
||||||
<ExtraView>
|
|
||||||
<ExtraText>Don't have an account already? </ExtraText>
|
|
||||||
<Link href='./register'>
|
|
||||||
<TextLinkContent>Register</TextLinkContent>
|
|
||||||
</Link>
|
|
||||||
</ExtraView>
|
|
||||||
</StyledFormArea>
|
|
||||||
)}
|
|
||||||
</Formik>
|
|
||||||
</InnerContainer>
|
</InnerContainer>
|
||||||
</StyledContainer>
|
</StyledContainer>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
156
app/register.jsx
Normal file
156
app/register.jsx
Normal file
|
|
@ -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 (
|
||||||
|
<ScrollView>
|
||||||
|
<StyledContainer>
|
||||||
|
<StatusBar style="dark" />
|
||||||
|
<SafeAreaView />
|
||||||
|
<InnerContainer>
|
||||||
|
<PageImage resizeMode="cover" source={require('./../assets/images/tones-logo.png')} />
|
||||||
|
<Title>Tones</Title>
|
||||||
|
<SubTitle>Account Register</SubTitle>
|
||||||
|
<StyledFormArea>
|
||||||
|
<LoginTextInput
|
||||||
|
label="First Name"
|
||||||
|
icon="person-outline"
|
||||||
|
placeholder="Bud"
|
||||||
|
placeholderTextColor="gray"
|
||||||
|
onChangeText={formik.handleChange('firstName')}
|
||||||
|
onBlur={formik.handleBlur('firstName')}
|
||||||
|
value={formik.values.firstName}
|
||||||
|
/>
|
||||||
|
<LoginTextInput
|
||||||
|
label="Last Name"
|
||||||
|
icon="people-outline"
|
||||||
|
placeholder="Doble"
|
||||||
|
placeholderTextColor="gray"
|
||||||
|
onChangeText={formik.handleChange('lastName')}
|
||||||
|
onBlur={formik.handleBlur('lastName')}
|
||||||
|
value={formik.values.lastName}
|
||||||
|
/>
|
||||||
|
<LoginTextInput
|
||||||
|
label="Phone Number"
|
||||||
|
icon="call-outline"
|
||||||
|
placeholder="123-456-7890"
|
||||||
|
placeholderTextColor="gray"
|
||||||
|
onChangeText={formik.handleChange('number')}
|
||||||
|
onBlur={formik.handleBlur('number')}
|
||||||
|
value={formik.values.number.replace(/^(\d{3})(\d{3})(\d+)$/, "($1) $2-$3")}
|
||||||
|
keyboardType="number-pad"
|
||||||
|
maxLength={14}
|
||||||
|
/>
|
||||||
|
<LoginDropdownInput
|
||||||
|
label="Cellular Provider"
|
||||||
|
selectedValue={formik.values.provider}
|
||||||
|
onValueChange={formik.handleChange('provider')}
|
||||||
|
items={providers}
|
||||||
|
/>
|
||||||
|
<LoginTextInput
|
||||||
|
label="Email Address"
|
||||||
|
icon="mail-outline"
|
||||||
|
placeholder="test@organization.com"
|
||||||
|
placeholderTextColor="gray"
|
||||||
|
onChangeText={formik.handleChange('email')}
|
||||||
|
onBlur={formik.handleBlur('email')}
|
||||||
|
value={formik.values.email}
|
||||||
|
keyboardType="email-address"
|
||||||
|
/>
|
||||||
|
<LoginTextInput
|
||||||
|
label="Password"
|
||||||
|
icon="lock-closed-outline"
|
||||||
|
placeholder="* * * * * *"
|
||||||
|
placeholderTextColor="gray"
|
||||||
|
onChangeText={formik.handleChange('password')}
|
||||||
|
onBlur={formik.handleBlur('password')}
|
||||||
|
value={formik.values.password}
|
||||||
|
secureTextEntry={hidePassword}
|
||||||
|
isPassword
|
||||||
|
hidePassword={hidePassword}
|
||||||
|
setHidePassword={setHidePassword}
|
||||||
|
/>
|
||||||
|
<LoginTextInput
|
||||||
|
label="Confirm Password"
|
||||||
|
icon="shield-checkmark-outline"
|
||||||
|
placeholder="* * * * * *"
|
||||||
|
placeholderTextColor="gray"
|
||||||
|
onChangeText={formik.handleChange('passwordConfirmation')}
|
||||||
|
onBlur={formik.handleBlur('passwordConfirmation')}
|
||||||
|
value={formik.values.passwordConfirmation}
|
||||||
|
secureTextEntry={hidePassword}
|
||||||
|
isPassword
|
||||||
|
hidePassword={hidePassword}
|
||||||
|
setHidePassword={setHidePassword}
|
||||||
|
/>
|
||||||
|
<MessageBox>...</MessageBox>
|
||||||
|
<StyledButton onPress={formik.handleSubmit} style={registerButtonDisabled ? {backgroundColor: 'grey'} : {}}>
|
||||||
|
<ButtonText>Register</ButtonText>
|
||||||
|
</StyledButton>
|
||||||
|
</StyledFormArea>
|
||||||
|
</InnerContainer>
|
||||||
|
</StyledContainer>
|
||||||
|
</ScrollView>
|
||||||
|
)
|
||||||
|
}
|
||||||
107
app/register.tsx
107
app/register.tsx
|
|
@ -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 (
|
|
||||||
<ScrollView>
|
|
||||||
<StyledContainer>
|
|
||||||
<StatusBar style="dark" />
|
|
||||||
<SafeAreaView />
|
|
||||||
<InnerContainer>
|
|
||||||
<PageImage resizeMode="cover" source={require('./../assets/images/tones-logo.png')} />
|
|
||||||
<Title>Tones</Title>
|
|
||||||
<SubTitle>Account Register</SubTitle>
|
|
||||||
|
|
||||||
<Formik
|
|
||||||
initialValues={{
|
|
||||||
firstName: '',
|
|
||||||
lastName: '',
|
|
||||||
number: '',
|
|
||||||
email: '',
|
|
||||||
password: '',
|
|
||||||
passwordConfirmation: ''
|
|
||||||
}}
|
|
||||||
onSubmit={(values) => {
|
|
||||||
values.number = values.number.replace(/[()\-\s]/g, '');
|
|
||||||
console.log(values);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{({handleChange, handleBlur, handleSubmit, values}) => (
|
|
||||||
<StyledFormArea>
|
|
||||||
<LoginTextInput
|
|
||||||
label="Phone Number"
|
|
||||||
icon="call-outline"
|
|
||||||
placeholder="123-456-7890"
|
|
||||||
placeholderTextColor="gray"
|
|
||||||
onChangeText={handleChange('number')}
|
|
||||||
onBlur={handleBlur('number')}
|
|
||||||
value={values.number.replace(/^(\d{3})(\d{3})(\d+)$/, "($1) $2-$3")}
|
|
||||||
keyboardType="number-pad"
|
|
||||||
maxLength={14}
|
|
||||||
/>
|
|
||||||
<LoginTextInput
|
|
||||||
label="Email Address"
|
|
||||||
icon="mail-outline"
|
|
||||||
placeholder="test-email@post53.org"
|
|
||||||
placeholderTextColor="gray"
|
|
||||||
onChangeText={handleChange('email')}
|
|
||||||
onBlur={handleBlur('email')}
|
|
||||||
value={values.email}
|
|
||||||
keyboardType="email-address"
|
|
||||||
/>
|
|
||||||
<LoginTextInput
|
|
||||||
label="Password"
|
|
||||||
icon="lock-closed-outline"
|
|
||||||
placeholder="* * * * * *"
|
|
||||||
placeholderTextColor="gray"
|
|
||||||
onChangeText={handleChange('password')}
|
|
||||||
onBlur={handleBlur('password')}
|
|
||||||
value={values.password}
|
|
||||||
secureTextEntry={hidePassword}
|
|
||||||
isPassword
|
|
||||||
hidePassword={hidePassword}
|
|
||||||
setHidePassword={setHidePassword}
|
|
||||||
/>
|
|
||||||
<LoginTextInput
|
|
||||||
label="Confirm Password"
|
|
||||||
icon="lock-closed-outline"
|
|
||||||
placeholder="* * * * * *"
|
|
||||||
placeholderTextColor="gray"
|
|
||||||
onChangeText={handleChange('password')}
|
|
||||||
onBlur={handleBlur('password')}
|
|
||||||
value={values.passwordConfirmation}
|
|
||||||
secureTextEntry={hidePassword}
|
|
||||||
isPassword
|
|
||||||
hidePassword={hidePassword}
|
|
||||||
setHidePassword={setHidePassword}
|
|
||||||
/>
|
|
||||||
<MessageBox>...</MessageBox>
|
|
||||||
<StyledButton onPress={handleSubmit}>
|
|
||||||
<ButtonText>Register</ButtonText>
|
|
||||||
</StyledButton>
|
|
||||||
</StyledFormArea>
|
|
||||||
)}
|
|
||||||
</Formik>
|
|
||||||
</InnerContainer>
|
|
||||||
</StyledContainer>
|
|
||||||
</ScrollView>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
329
package-lock.json
generated
329
package-lock.json
generated
|
|
@ -1,14 +1,15 @@
|
||||||
{
|
{
|
||||||
"name": "test-application",
|
"name": "tones",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "test-application",
|
"name": "tones",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@expo/vector-icons": "^14.0.2",
|
"@expo/vector-icons": "^14.0.2",
|
||||||
|
"@react-native-picker/picker": "^2.7.7",
|
||||||
"@react-navigation/native": "^6.0.2",
|
"@react-navigation/native": "^6.0.2",
|
||||||
"expo": "~51.0.24",
|
"expo": "~51.0.24",
|
||||||
"expo-constants": "~16.0.2",
|
"expo-constants": "~16.0.2",
|
||||||
|
|
@ -28,6 +29,7 @@
|
||||||
"react-native-safe-area-context": "4.10.5",
|
"react-native-safe-area-context": "4.10.5",
|
||||||
"react-native-screens": "3.31.1",
|
"react-native-screens": "3.31.1",
|
||||||
"react-native-textinput-effects": "^0.6.3",
|
"react-native-textinput-effects": "^0.6.3",
|
||||||
|
"react-native-ui-kitten": "^4.4.1",
|
||||||
"react-native-web": "~0.19.10",
|
"react-native-web": "~0.19.10",
|
||||||
"styled-components": "^6.1.12"
|
"styled-components": "^6.1.12"
|
||||||
},
|
},
|
||||||
|
|
@ -2167,6 +2169,16 @@
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
|
||||||
"integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ=="
|
"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": {
|
"node_modules/@expo/bunyan": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
|
||||||
|
|
@ -5853,6 +5865,15 @@
|
||||||
"node": ">=8"
|
"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": {
|
"node_modules/@react-native/assets-registry": {
|
||||||
"version": "0.74.85",
|
"version": "0.74.85",
|
||||||
"resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.85.tgz",
|
"resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.85.tgz",
|
||||||
|
|
@ -7441,6 +7462,12 @@
|
||||||
"node": ">= 6"
|
"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": {
|
"node_modules/bplist-creator": {
|
||||||
"version": "0.0.7",
|
"version": "0.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz",
|
||||||
|
|
@ -8275,6 +8302,18 @@
|
||||||
"hyphenate-style-name": "^1.0.3"
|
"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": {
|
"node_modules/css-to-react-native": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz",
|
"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"
|
"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": {
|
"node_modules/cssom": {
|
||||||
"version": "0.5.0",
|
"version": "0.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
|
||||||
|
|
@ -8639,6 +8712,43 @@
|
||||||
"node": ">=8"
|
"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": {
|
"node_modules/domexception": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
|
||||||
|
|
@ -8652,6 +8762,16 @@
|
||||||
"node": ">=12"
|
"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": {
|
"node_modules/dotenv": {
|
||||||
"version": "16.4.5",
|
"version": "16.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
|
||||||
"integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
|
"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": {
|
"node_modules/fetch-retry": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
|
"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": {
|
"node_modules/function-bind": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
||||||
|
|
@ -13373,139 +13485,6 @@
|
||||||
"lightningcss-win32-x64-msvc": "1.19.0"
|
"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": {
|
"node_modules/lightningcss-win32-x64-msvc": {
|
||||||
"version": "1.19.0",
|
"version": "1.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
|
||||||
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
|
"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": {
|
"node_modules/lodash.throttle": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
|
"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",
|
"resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
|
||||||
"integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
|
"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": {
|
"node_modules/memoize-one": {
|
||||||
"version": "5.2.1",
|
"version": "5.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
|
||||||
|
|
@ -14730,6 +14720,15 @@
|
||||||
"node": ">=4"
|
"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": {
|
"node_modules/nullthrows": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
|
||||||
|
|
@ -15681,6 +15680,20 @@
|
||||||
"react-native": "*"
|
"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": {
|
"node_modules/react-native-textinput-effects": {
|
||||||
"version": "0.6.3",
|
"version": "0.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-textinput-effects/-/react-native-textinput-effects-0.6.3.tgz",
|
"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"
|
"@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": {
|
"node_modules/react-native-web": {
|
||||||
"version": "0.19.12",
|
"version": "0.19.12",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.12.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.12.tgz",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "test-application",
|
"name": "tones",
|
||||||
"main": "expo-router/entry",
|
"main": "expo-router/entry",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "expo start",
|
"start": "expo start",
|
||||||
"reset-project": "node ./scripts/reset-project.js",
|
"reset-project": "node ./scripts/reset-project.js",
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@expo/vector-icons": "^14.0.2",
|
"@expo/vector-icons": "^14.0.2",
|
||||||
|
"@react-native-picker/picker": "^2.7.7",
|
||||||
"@react-navigation/native": "^6.0.2",
|
"@react-navigation/native": "^6.0.2",
|
||||||
"expo": "~51.0.24",
|
"expo": "~51.0.24",
|
||||||
"expo-constants": "~16.0.2",
|
"expo-constants": "~16.0.2",
|
||||||
|
|
@ -35,6 +36,7 @@
|
||||||
"react-native-safe-area-context": "4.10.5",
|
"react-native-safe-area-context": "4.10.5",
|
||||||
"react-native-screens": "3.31.1",
|
"react-native-screens": "3.31.1",
|
||||||
"react-native-textinput-effects": "^0.6.3",
|
"react-native-textinput-effects": "^0.6.3",
|
||||||
|
"react-native-ui-kitten": "^4.4.1",
|
||||||
"react-native-web": "~0.19.10",
|
"react-native-web": "~0.19.10",
|
||||||
"styled-components": "^6.1.12"
|
"styled-components": "^6.1.12"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
"include": [
|
"include": [
|
||||||
"**/*.ts",
|
"**/*.ts",
|
||||||
"**/*.tsx",
|
"**/*.tsx",
|
||||||
|
"**/*.jsx",
|
||||||
".expo/types/**/*.ts",
|
".expo/types/**/*.ts",
|
||||||
"expo-env.d.ts"
|
"expo-env.d.ts"
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue