Skip to content

Commit 3a3af57

Browse files
committed
merged and fixed responsive set size change
2 parents 353ffb0 + cbea801 commit 3a3af57

File tree

6 files changed

+34
-22
lines changed

6 files changed

+34
-22
lines changed

app/(tabs)/settings.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414

1515
type SettingsProps = {
1616
numCards: number;
17-
setNumCards: Dispatch<SetStateAction<number>>;
17+
setNumCards: (num: number) => void;
1818
soundEnabled: boolean;
1919
setSoundEnabled: Dispatch<SetStateAction<boolean>>;
2020
};

app/spondee.tsx

+9-6
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,19 @@ export default function TestScreen() {
5050
/**
5151
* Randomizes cards shown, updates state, and returns that list (not limited by set size)
5252
*/
53-
function randomizeSelectedCards() {
54-
const initialSelectedCards = shuffleArray(SpondeeCards).slice(0, numCards);
53+
function randomizeSelectedCards(numberOfCards: number) {
54+
numberOfCards = numberOfCards ? numberOfCards : 4;
55+
const initialSelectedCards = shuffleArray(SpondeeCards).slice(
56+
0,
57+
numberOfCards
58+
);
5559
setSelectedCards(initialSelectedCards);
5660
return initialSelectedCards;
5761
}
5862

5963
// Initialize selected cards and first correct card
6064
useEffect(() => {
61-
console.log("should only be called once");
62-
const initialSelectedCards = randomizeSelectedCards();
65+
const initialSelectedCards = randomizeSelectedCards(numCards);
6366

6467
const initialCorrectCard =
6568
initialSelectedCards[Math.floor(Math.random() * numCards)].word;
@@ -101,7 +104,7 @@ export default function TestScreen() {
101104

102105
useEffect(() => {
103106
console.log("hello i'm in heree");
104-
const list = randomizeSelectedCards();
107+
const list = randomizeSelectedCards(numCards);
105108
generateNewCard(list);
106109
}, [numCards]);
107110

@@ -115,7 +118,7 @@ export default function TestScreen() {
115118
// Callback when rain finishes
116119
console.log("Rain completed");
117120
// Generate new list
118-
let list = randomizeSelectedCards();
121+
let list = randomizeSelectedCards(numCards);
119122
generateNewCard(list);
120123
setRainTrigger(false);
121124
}}

components/authentication/authScreen.tsx

+16-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
TextInput,
88
View,
99
} from "react-native";
10-
import { supabase } from "../../lib/supabase";
10+
import { supabase } from "@/lib/supabase";
1111
import { THIText } from "../THIText";
1212

1313
export default function AuthScreen() {
@@ -18,6 +18,11 @@ export default function AuthScreen() {
1818
const [isLoggedIn, setIsLoggedIn] = React.useState(false);
1919
const [isSigningUp, setIsSigningUp] = React.useState(false);
2020

21+
const validateEmail = (email: string): boolean => {
22+
const emailRegex = /^[a-zA-Z0-9._%+-]+@texashearing\.org$/;
23+
return emailRegex.test(email);
24+
};
25+
2126
const handleLoginPress = async () => {
2227
if (!email || !password) {
2328
Alert.alert(
@@ -27,6 +32,11 @@ export default function AuthScreen() {
2732
return;
2833
}
2934

35+
if (!validateEmail(email)) {
36+
Alert.alert("Invalid email", "Please use an email ending in '@texashearing.org' to log in.")
37+
return;
38+
}
39+
3040
const { data, error } = await supabase.auth.signInWithPassword({
3141
email: email,
3242
password: password,
@@ -49,6 +59,11 @@ export default function AuthScreen() {
4959
return;
5060
}
5161

62+
if (!validateEmail(email)) {
63+
Alert.alert("Invalid email", "Please use an email ending in '@texashearing.org' to log in.")
64+
return;
65+
}
66+
5267
const { data, error } = await supabase.auth.signUp({
5368
email: email,
5469
password: password,

components/spondee/SessionControls.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Settings from "@/app/(tabs)/settings";
22
import { Trial } from "@/app/spondee";
33
import { router } from "expo-router";
4-
import { Dispatch, SetStateAction, useState } from "react";
4+
import { useState } from "react";
55
import { StyleSheet, TouchableOpacity, View } from "react-native";
66
import { THIText } from "../THIText";
77

@@ -10,7 +10,7 @@ type SessionControlProps = {
1010
numCorrect: number;
1111
attempts: Trial[];
1212
numCards: number;
13-
setNumCards: Dispatch<SetStateAction<number>>;
13+
setNumCards: (num: number) => void;
1414
};
1515

1616
export interface SessionData {

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@
3232
"expo-web-browser": "~14.0.2",
3333
"react": "18.3.1",
3434
"react-dom": "18.3.1",
35-
"react-native": "0.76.6",
35+
"react-native": "0.76.7",
3636
"react-native-emoji-rain": "^0.0.1",
3737
"react-native-gesture-handler": "~2.20.2",
3838
"react-native-progress": "^5.0.1",
39-
"react-native-reanimated": "^3.16.1",
39+
"react-native-reanimated": "3.16.1",
4040
"react-native-safe-area-context": "4.12.0",
4141
"react-native-screens": "~4.4.0",
4242
"react-native-url-polyfill": "^2.0.0",

tsconfig.json

+4-10
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,9 @@
44
"jsx": "react-jsx",
55
"strict": true,
66
"paths": {
7-
"@/*": [
8-
"./*"
9-
]
10-
}
7+
"@/*": ["./*"]
8+
},
9+
"allowImportingTsExtensions": true
1110
},
12-
"include": [
13-
"**/*.ts",
14-
"**/*.tsx",
15-
".expo/types/**/*.ts",
16-
"expo-env.d.ts"
17-
]
11+
"include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts"]
1812
}

0 commit comments

Comments
 (0)