From 24c14fb7ca13823f5d5c26b08bfaea56dab9c47b Mon Sep 17 00:00:00 2001 From: Dean Date: Tue, 20 Feb 2024 14:25:49 -0800 Subject: [PATCH] added session feed page and session component with click to details --- ...ion_footer.tsx => session-card-footer.tsx} | 4 +- ...ion_header.tsx => session-card-header.tsx} | 4 +- ...gregate_stat.tsx => session-card-stat.tsx} | 4 +- ...x => session-card-stats-row-container.tsx} | 19 ++++++---- src/component/session-card/session-card.tsx | 16 ++++---- src/navigation/tab-navigator.tsx | 18 +++++++-- src/screens/session-feed.tsx | 35 ------------------ src/screens/session-stack/session-feed.tsx | 37 +++++++++++++++++++ src/screens/{ => session-stack}/session.tsx | 8 ++-- 9 files changed, 81 insertions(+), 64 deletions(-) rename src/component/session-card/{session_footer.tsx => session-card-footer.tsx} (84%) rename src/component/session-card/{session_header.tsx => session-card-header.tsx} (95%) rename src/component/session-card/{aggregate_stat.tsx => session-card-stat.tsx} (80%) rename src/component/session-card/{session_stats.tsx => session-card-stats-row-container.tsx} (77%) delete mode 100644 src/screens/session-feed.tsx create mode 100644 src/screens/session-stack/session-feed.tsx rename src/screens/{ => session-stack}/session.tsx (61%) diff --git a/src/component/session-card/session_footer.tsx b/src/component/session-card/session-card-footer.tsx similarity index 84% rename from src/component/session-card/session_footer.tsx rename to src/component/session-card/session-card-footer.tsx index 024c50b..107a836 100644 --- a/src/component/session-card/session_footer.tsx +++ b/src/component/session-card/session-card-footer.tsx @@ -1,7 +1,7 @@ import React from "react"; import { StyleSheet, Text, View } from "react-native"; -const SessionFooter = ({ sessionName, lastPlayed }) => { +const SessionCardFooter = ({ sessionName, lastPlayed }) => { return ( {sessionName} @@ -28,4 +28,4 @@ const styles = StyleSheet.create({ }, }); -export default SessionFooter; +export default SessionCardFooter; diff --git a/src/component/session-card/session_header.tsx b/src/component/session-card/session-card-header.tsx similarity index 95% rename from src/component/session-card/session_header.tsx rename to src/component/session-card/session-card-header.tsx index bb3e776..1512086 100644 --- a/src/component/session-card/session_header.tsx +++ b/src/component/session-card/session-card-header.tsx @@ -1,7 +1,7 @@ import React from "react"; import { Image, StyleSheet, Text, View } from "react-native"; -const SessionHeader = ({ +const SessionCardHeader = ({ playerName, location, type, @@ -67,4 +67,4 @@ const styles = StyleSheet.create({ }, }); -export default SessionHeader; +export default SessionCardHeader; diff --git a/src/component/session-card/aggregate_stat.tsx b/src/component/session-card/session-card-stat.tsx similarity index 80% rename from src/component/session-card/aggregate_stat.tsx rename to src/component/session-card/session-card-stat.tsx index df8281f..c9f452b 100644 --- a/src/component/session-card/aggregate_stat.tsx +++ b/src/component/session-card/session-card-stat.tsx @@ -1,7 +1,7 @@ import React from "react"; import { StyleSheet, Text, View } from "react-native"; -const AggregateStat = ({ aggregateStat, displayName, numberFormat }) => { +const SessionCardStat = ({ aggregateStat, displayName, numberFormat }) => { return ( {displayName} @@ -26,4 +26,4 @@ const styles = StyleSheet.create({ }, }); -export default AggregateStat; +export default SessionCardStat; diff --git a/src/component/session-card/session_stats.tsx b/src/component/session-card/session-card-stats-row-container.tsx similarity index 77% rename from src/component/session-card/session_stats.tsx rename to src/component/session-card/session-card-stats-row-container.tsx index ebe23d7..8e27f90 100644 --- a/src/component/session-card/session_stats.tsx +++ b/src/component/session-card/session-card-stats-row-container.tsx @@ -1,12 +1,17 @@ import React from "react"; import { StyleSheet, View } from "react-native"; -import AggregateStat from "./aggregate_stat"; +import SessionCardStat from "./session-card-stat"; -const SessionStats = ({ makePercent, medianRun, duration, shotPacing }) => { +const SessionCardStatsRowContainer = ({ + makePercent, + medianRun, + duration, + shotPacing, +}) => { return ( - { - { - { - - - - + ); @@ -52,4 +52,4 @@ const styles = StyleSheet.create({ }, }); -export default StatsCard; +export default SessionCard; diff --git a/src/navigation/tab-navigator.tsx b/src/navigation/tab-navigator.tsx index 90ca9eb..8c6f0eb 100644 --- a/src/navigation/tab-navigator.tsx +++ b/src/navigation/tab-navigator.tsx @@ -3,7 +3,8 @@ import { createNativeStackNavigator } from "@react-navigation/native-stack"; import { Image } from "react-native"; import CameraScreen from "../component/video/camera"; import Profile from "../screens/profile"; -import Session from "../screens/session"; +import Session from "../screens/session-stack/session"; +import SessionFeed from "../screens/session-stack/session-feed"; import VideoDetails from "../screens/video-stack/video-details"; import { tabIconColors } from "../styles"; @@ -14,7 +15,7 @@ const RecordStack = createNativeStackNavigator(); // tabBarIcon configuration should live on separate file and contain all logic/icons/rendering for the Tabs const tabIcons = { - Session: , + SessionStack: , VideoStack: , Profile: , }; @@ -37,6 +38,15 @@ function VideoTabStack() { ); } +function SessionTabStack() { + return ( + + + + + ); +} + /** * Functional component creating a tab navigator with called * Uses React Navigation's Tab.Navigator. Customizes tab bar appearance and icons. @@ -58,8 +68,8 @@ export default function Tabs(): React.JSX.Element { })} > { - return ( - - - - ); -}; - -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: "#f0f0f0", // Light gray background - alignItems: "center", - }, -}); - -export default SessionFeed; diff --git a/src/screens/session-stack/session-feed.tsx b/src/screens/session-stack/session-feed.tsx new file mode 100644 index 0000000..9c9e12e --- /dev/null +++ b/src/screens/session-stack/session-feed.tsx @@ -0,0 +1,37 @@ +import React from "react"; +import { StyleSheet, TouchableOpacity, View } from "react-native"; +import sampleSessionImage from "../../assets/sample_session.png"; +import SessionCard from "../../component/session-card/session-card.tsx"; + +const SessionFeed: React.FC = ({ navigation }) => { + return ( + + navigation.push("Session")}> + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: "#f0f0f0", // Light gray background + alignItems: "center", + }, +}); + +export default SessionFeed; diff --git a/src/screens/session.tsx b/src/screens/session-stack/session.tsx similarity index 61% rename from src/screens/session.tsx rename to src/screens/session-stack/session.tsx index 2166798..e4eb66b 100644 --- a/src/screens/session.tsx +++ b/src/screens/session-stack/session.tsx @@ -3,10 +3,10 @@ import { StyleSheet, View } from "react-native"; import { graph_data_two_measures, line_chart_two_y_data, -} from "../../test/mock/charts/mock-data"; -import BarGraph from "../component/charts/bar-graph/bar-graph"; -import ChartContainer from "../component/charts/container/chart-container"; -import LineGraph from "../component/charts/line-graph/line-graph"; +} from "../../../test/mock/charts/mock-data"; +import BarGraph from "../../component/charts/bar-graph/bar-graph"; +import ChartContainer from "../../component/charts/container/chart-container"; +import LineGraph from "../../component/charts/line-graph/line-graph"; export default function SessionScreen() { return (