Skip to content

Commit 11e0992

Browse files
committed
ready for testflight
1 parent 5670cae commit 11e0992

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+402
-172
lines changed

App.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default function App() {
1111

1212
const getStoredPreferences = async () => {
1313
try {
14-
const jsonValue = await AsyncStorage.getItem('preferences')
14+
const jsonValue = await AsyncStorage.getItem('@preferences')
1515
return jsonValue != null ? JSON.parse(jsonValue) : null;
1616
} catch (e) {
1717
console.error("getStoredPreferences error: ", e)
@@ -21,7 +21,7 @@ export default function App() {
2121
const storePreferences = async (preferenceObject) => {
2222
try {
2323
const jsonValue = JSON.stringify(preferenceObject)
24-
await AsyncStorage.setItem('settings', jsonValue)
24+
await AsyncStorage.setItem('@preferences', jsonValue)
2525
} catch (e) {
2626
console.error("storePreferences error: ", e)
2727
}
@@ -35,9 +35,9 @@ export default function App() {
3535
deckTheme: "Default",
3636
sounds: false
3737
}
38-
storePreferences(newPreferencesObj)
3938
setAppPreferences(newPreferencesObj)
40-
} else setAppPreferences(storedPrefences)
39+
storePreferences(newPreferencesObj)
40+
} else setAppPreferences(storedPreferences)
4141
}
4242

4343
useEffect(() => {

Components/CalllingTeamIndicator.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

Components/Card.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@ import { DataContext } from "../GameContext"
44
import { cardImages, blankCard, sleep } from "../Data/data"
55

66
export default function Card({ card, scale, use, position }) {
7-
const { setPlayerChoice, upTrump, deckTheme } = useContext(DataContext)
7+
const { setPlayerChoice, upTrump, appPreferences } = useContext(DataContext)
88
const [isTrump, setIsTrump] = useState(false)
99
const cardCode = card === blankCard ? "blank" : "" + card.suit.code + card.faceValue.toLowerCase()
10+
const [imageURL, setImageURL] = useState(cardImages[appPreferences.deckTheme][cardCode])
11+
12+
useEffect(() => {
13+
setImageURL(cardImages[appPreferences.deckTheme][cardCode])
14+
}, [appPreferences.deckTheme, cardCode])
1015

1116
const moveAnim = useRef(new Animated.ValueXY()).current;
1217
const fadeAnim = useRef(new Animated.Value(1)).current
@@ -97,7 +102,7 @@ export default function Card({ card, scale, use, position }) {
97102

98103
return (
99104
<Animated.Image
100-
source={cardImages[deckTheme][cardCode]}
105+
source={imageURL}
101106
style={selectedStyle}
102107
{...dragResponder.panHandlers}
103108
/>

Components/ControlPanel.js

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import React, { useContext } from 'react'
2+
import { View, Text, Pressable, StyleSheet } from 'react-native'
3+
import { iconSVGs } from '../CoreElements/theme'
4+
import { DataContext } from '../GameContext'
5+
6+
export default function ControlPanel() {
7+
const { setShowHelpModal, setShowSettingsModal, setShowPromptModal } = useContext(DataContext)
8+
9+
const handleSettings = () => {
10+
setShowPromptModal(false)
11+
setShowSettingsModal(true)
12+
}
13+
14+
const handleHelp = () => {
15+
setShowPromptModal(false)
16+
setShowHelpModal(true)
17+
}
18+
19+
return (
20+
<View style={localStyles.panel}>
21+
<Pressable
22+
onPress={handleHelp}
23+
>
24+
{iconSVGs.help}
25+
</Pressable>
26+
<Pressable
27+
onPress={handleSettings}
28+
>
29+
{iconSVGs.settingsMedium}
30+
</Pressable>
31+
</View>
32+
)
33+
}
34+
35+
const localStyles = StyleSheet.create({
36+
panel: {
37+
width: "100%",
38+
flexDirection: "row",
39+
justifyContent: "space-between",
40+
paddingHorizontal: 14,
41+
opacity: .67
42+
}
43+
})
44+
45+
// style = {({ pressed }) => {
46+
// return (
47+
// {
48+
// accessibilityLabel: altText,
49+
// backgroundColor: pressed ? pressColor : color,
50+
// paddingVertical: 10,
51+
// paddingHorizontal: 20,
52+
// borderRadius: 30,
53+
// margin: 10
54+
// }
55+
// )
56+
// }}

Components/DeckThemeChoice.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useContext } from 'react'
1+
import React, { useContext, useEffect, useState } from 'react'
22
import { Image, Pressable, StyleSheet, View } from 'react-native'
33
import { Body, DefaultText, Subtitle } from '../CoreElements/fontStyles'
44
import { DataContext } from "../GameContext"
@@ -7,11 +7,16 @@ import Svg, { Path } from 'react-native-svg'
77

88
export default function DeckThemeChoice({ deck }) {
99
const { appPreferences, setAppPreferences } = useContext(DataContext)
10+
const [chosen, setChosen] = useState(false)
1011

1112
const handleThemeChange = () => {
1213
setAppPreferences({ ...appPreferences, deckTheme: deck })
1314
}
1415

16+
useEffect(() => {
17+
if (appPreferences.deckTheme === deck) setChosen(true)
18+
else setChosen(false)
19+
}, [appPreferences.deckTheme])
1520

1621
const styles = StyleSheet.create({
1722
container: {
@@ -32,13 +37,7 @@ export default function DeckThemeChoice({ deck }) {
3237
<Subtitle align="left" override={{ fontSize: 18 }}>{deck}</Subtitle>
3338
<Image source={themeSamples[deck]} />
3439
<View style={{ position: "absolute", top: 10, left: 10 }}>
35-
{appPreferences.deckTheme === deck ?
36-
<Svg width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
37-
<Path d="M16.5 32.6562C25.2188 32.6562 32.4375 25.4219 32.4375 16.7188C32.4375 8 25.2031 0.78125 16.4844 0.78125C7.78125 0.78125 0.5625 8 0.5625 16.7188C0.5625 25.4219 7.79688 32.6562 16.5 32.6562ZM16.5 30C9.125 30 3.23438 24.0938 3.23438 16.7188C3.23438 9.34375 9.10938 3.4375 16.4844 3.4375C23.8594 3.4375 29.7656 9.34375 29.7812 16.7188C29.7969 24.0938 23.875 30 16.5 30ZM14.7812 24.1406C15.2969 24.1406 15.7344 23.8906 16.0469 23.4062L23.1875 12.1719C23.3594 11.8594 23.5625 11.5156 23.5625 11.1719C23.5625 10.4688 22.9375 10.0156 22.2812 10.0156C21.8906 10.0156 21.5 10.2656 21.2031 10.7188L14.7188 21.125L11.6406 17.1406C11.2656 16.6406 10.9219 16.5156 10.4844 16.5156C9.8125 16.5156 9.28125 17.0625 9.28125 17.75C9.28125 18.0938 9.42188 18.4219 9.64062 18.7188L13.4531 23.4062C13.8438 23.9219 14.2656 24.1406 14.7812 24.1406Z" fill={colors.green} />
38-
</Svg>
39-
: <Svg width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
40-
<Path d="M16.5 32.6562C25.2188 32.6562 32.4375 25.4219 32.4375 16.7188C32.4375 8 25.2031 0.78125 16.4844 0.78125C7.78125 0.78125 0.5625 8 0.5625 16.7188C0.5625 25.4219 7.79688 32.6562 16.5 32.6562ZM16.5 30C9.125 30 3.23438 24.0938 3.23438 16.7188C3.23438 9.34375 9.10938 3.4375 16.4844 3.4375C23.8594 3.4375 29.7656 9.34375 29.7812 16.7188C29.7969 24.0938 23.875 30 16.5 30Z" fill={colors.white} />
41-
</Svg>}
40+
{appPreferences.deckTheme === deck ? iconSVGs.toggleOn : iconSVGs.toggleOff}
4241
</View>
4342
</View>
4443
</Pressable>

Components/DownHand.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,17 @@ import { View, Image, StyleSheet } from "react-native";
55
import { cardImages } from "../Data/data";
66

77
export default function DownHand({ position, handLength }) {
8+
const { matchTricks, goAlone, dealer, appPreferences } = useContext(DataContext)
89
const [image, setImage] = useState(0);
9-
const { deckTheme, matchTricks, goAlone, dealer } = useContext(DataContext)
10+
const [imageURLS, setImageURLS] = useState([cardImages[appPreferences.deckTheme].down0, cardImages[appPreferences.deckTheme].down1, cardImages[appPreferences.deckTheme].down2, cardImages[appPreferences.deckTheme].down3, cardImages[appPreferences.deckTheme].down4, cardImages[appPreferences.deckTheme].down5])
1011

11-
const imageURLS = [cardImages[deckTheme].down0, cardImages[deckTheme].down1, cardImages[deckTheme].down2, cardImages[deckTheme].down3, cardImages[deckTheme].down4, cardImages[deckTheme].down5]
12+
useEffect(() => {
13+
setImageURLS([cardImages[appPreferences.deckTheme].down0, cardImages[appPreferences.deckTheme].down1, cardImages[appPreferences.deckTheme].down2, cardImages[appPreferences.deckTheme].down3, cardImages[appPreferences.deckTheme].down4, cardImages[appPreferences.deckTheme].down5])
14+
}, [appPreferences.deckTheme])
15+
16+
useEffect(() => {
17+
setImage(imageURLS[handLength])
18+
}, [imageURLS])
1219

1320
const handStyles = [
1421
null,

Components/GameLayer.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import TrumpIndicator from '../Components/TrumpIndicator';
1515
import MatchTricksCount from './MatchTricksCount';
1616
import SettingsModal from '../Modals/SettingsModal';
1717
import RulesModal from '../Modals/RulesModal';
18-
// import CallingTeamIndicator from './CalllingTeamIndicator';
19-
// import GameScore from './GameScore';
18+
import HelpModal from '../Modals/HelpModal';
19+
2020

2121
export default function GameLayer() {
2222
const { trump, matchStage, teamScore, matchTricks, showActionPrompt, yourSeat, dealer } = useContext(DataContext)
@@ -35,10 +35,11 @@ export default function GameLayer() {
3535

3636
return (
3737
<SafeAreaView style={styles.screen}>
38+
<GameOverModal />
3839
<StartModal />
3940
<SettingsModal />
4041
<RulesModal />
41-
<GameOverModal />
42+
<HelpModal />
4243
<PromptModal />
4344
{showActionPrompt && <PromptAction />}
4445
<View style={localStyles.hud}>
@@ -48,7 +49,7 @@ export default function GameLayer() {
4849
{matchStage !== "PREGAME" &&
4950
<Flex fill={2} align="center" justify="center" height="100%" width="100%">
5051
<DownHands />
51-
<Flex align="center" justify="center" height="100%" width="100%" override={{ position: "absolute" }}>
52+
<Flex align="center" justify="center" height="100%" width="100%" override={{ position: "absolute", bottom: 20 }}>
5253
{(matchStage !== "PLAY" || matchStage !== "RESULT" || matchStage !== "GAMEOVER") ? <TrumpStack /> : null}
5354
{matchStage === "PLAY" && <PlayField />}
5455
</Flex>

Components/PlayField.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import React, { useContext } from "react"
22
import { DataContext } from "../GameContext"
33
import { blankCard } from "../Data/data"
44
import Card from "./Card"
5-
import { Flex } from "../CoreElements/containerStyles"
65
import { StyleSheet, View } from "react-native"
76

87
export default function PlayField() {

Components/ShareButton.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import React from 'react';
2+
import { Share, Pressable } from 'react-native';
3+
import { iconSVGs } from '../CoreElements/theme';
4+
5+
export default function ShareButton({ styles }) {
6+
const handleShare = async () => {
7+
try {
8+
const result = await Share.share({
9+
message: 'Check out "Euchre" - a new iOS app based on the classic cardgame!\n\n',
10+
url: "https://sleeptil3software.com/"
11+
});
12+
if (result.action === Share.sharedAction) {
13+
if (result.activityType) {
14+
console.log(result.activityType)
15+
} else {
16+
console.log("no result.activityType")
17+
}
18+
} else if (result.action === Share.dismissedAction) {
19+
console.log("dismissed")
20+
}
21+
} catch (error) {
22+
alert(error.message);
23+
}
24+
};
25+
return (
26+
<Pressable
27+
accessibilityLabel={"Change settings"}
28+
onPress={handleShare}
29+
style={styles.icon}
30+
>
31+
{iconSVGs.share}
32+
</Pressable>
33+
);
34+
}
35+
36+

Components/TrumpCard.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { DataContext } from "../GameContext"
55
import { cardImages, sleep } from "../Data/data"
66

77
export default function TrumpCard(props) {
8-
const { deckTheme, showTrumpCard, setShowTrumpCard, suits, matchStage, yourSeat, upTrump, currentPlayer } = useContext(DataContext)
8+
const { appPreferences, showTrumpCard, upTrump } = useContext(DataContext)
99
const [cardCode, setCardCode] = useState("")
1010
const [scaleValue, setScaleValue] = useState(.6)
1111

@@ -46,7 +46,7 @@ export default function TrumpCard(props) {
4646

4747
return (
4848
<Animated.Image
49-
source={cardImages[deckTheme][cardCode]}
49+
source={cardImages[appPreferences.deckTheme][cardCode]}
5050
style={
5151
{
5252
transform: [{ scale: scaleValue }],

0 commit comments

Comments
 (0)