frontend: use new store inside new pages
Pedro Lucas Porcellis porcellis@eletrotupi.com · 5 months ago
b15446bb672c6f4cf6e2d0e055f0a78afd3c2b8b Browse filesParents
5516404Changed files
2
Additions
+21
Deletions
-4
frontend/app/(tabs)/new/entry.tsx
1 1
import { useState, useEffect } from 'react';
2 2
import {
3 3
Link, router, useLocalSearchParams
4 4
} from 'expo-router';
5 5
22 22
import { Section, SectionHeader } from '@/components/ui/Sections';
23 23
import { Spacing, Typography, Colors } from '@/constants/theme';
24 24
import { ScaleSlider } from '@/components/ui/ScaleSlider';
25 25
import { Ionicons } from '@expo/vector-icons';
26 26
import { useThemeColor } from '@/hooks/use-theme-color';
27 +
import {
28 +
useMoodEntryStore,
29 +
} from '@/stores/moodEntry';
30 +
31 +
import {
32 +
MOODS,
33 +
getMood
34 +
} from '@/constants/moods';
27 35
28 36
export default function NewMoodEntry() {
29 37
const { user } = useAuth();
30 38
const tintColor = useThemeColor({}, 'tint');
31 39
32 -
// TODO: transform this into a specific mood component
33 40
const { initialMood } = useLocalSearchParams();
34 41
const [stress, setStress] = useState(0);
35 42
const [anxiety, setAnxiety] = useState(0);
36 43
const [energy, setEnergy] = useState(0);
37 44
45 +
const {
46 +
selectedMood,
47 +
setSelectedMood,
48 +
components,
49 +
} = useMoodEntryStore();
50 +
51 +
useEffect(() => {
52 +
setSelectedMood(getMood(initialMood));
53 +
}, [initialMood]);
54 +
38 55
const editComponents = () => {
39 56
console.log("Wants to open the components");
57 +
58 +
router.push("/entry/mood-components")
40 59
}
41 60
42 61
return (
43 62
<View>
44 63
<ScrollView
48 67
<ThemedText style={styles.statusPrefix}>
49 68
Como você está se sentindo agora?
50 69
</ThemedText>
51 70
52 71
<ThemedText style={styles.statusText}>
53 -
Muito Bem
72 +
{selectedMood.label || "Neutro"}
54 73
</ThemedText>
55 74
</Center>
56 75
57 76
<Card style={styles.resumeCard}>
58 77
<Col gap={24}>
136 155
},
137 156
resumeCard: {
138 157
padding: Spacing.cardGap,
139 158
}
140 159
});
frontend/app/(tabs)/new/index.tsx
1 1
import { useEffect, useState } from 'react';
2 2
import {
3 3
StyleSheet
4 4
} from 'react-native';
5 5
29 29
{ id: 'great', icon: '🤩', label: 'Ótimo' },
30 30
{ id: 'angry', icon: '😠', label: 'Irritado' },
31 31
];
32 32
33 33
const initQuickRegister = () => {
34 -
console.log("Register: ", mood);
35 -
36 34
// TODO: Set down on camelCase vs kebab case
37 35
router.navigate(`/new/entry?initialMood=${mood}`)
38 36
};
39 37
40 38
return (
112 110
marginRight: 16,
113 111
marginBottom: 16,
114 112
...Shadows.lg
115 113
}
116 114
});