-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimized all firebase calls to use tanstack query (react query) #84
Conversation
8d03d4c
to
5cbf724
Compare
@@ -8,12 +8,14 @@ | |||
"ios": "expo start --ios", | |||
"web": "expo start --web", | |||
"pretty": "prettier --write .", | |||
"python": "./venv/bin/python" | |||
"python": "./venv/bin/python", | |||
"firestore": "firebase emulators:start --only firestore" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I connected to Firestore emulator (installed firebase-tools globally and edited firebaseConfig.js to connect), but I got an error (below).
Hess's email about this topic also said something about needing paid plan for Firebase Export (or something like that).
Is it better to remove all the firestore emulator stuff from this PR for now, or should we wait to see if Hess can upgrade the Firebase permissions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes let's remove the emulator stuff
firestore-debug.log
Outdated
@@ -0,0 +1,23 @@ | |||
Mar 02, 2024 8:26:49 PM com.google.cloud.datastore.emulator.firestore.websocket.WebSocketServer start |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
regardless of if we keep firestore emulator, this should be in gitignore right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yep
How does the cache work? After loading the team index page, I tried editing a user's name as a test. Clicking on the user showed the updated name on the next page (team > user profile), but the team index still showed old page. Should we add option to manually refresh cache, like by pulling down page and triggering loading spinner? Maybe for future PR?
|
Did the team -> user profile page load fast or did it take its time? I think the cache reload could've been triggered by you navigating to that page. The team page is not reloaded because it's always loaded due to the nav bar. That'll be my guess |
I think at the time I hadn't navigated to any "team > user profile" page yet, so the cache for it wasn't set yet. My point was about the team index page I guess. |
EDIT: I tried again, this time I loaded both team page and visited profile page of specific user before I edited the user's name in Firestore console. Going from "team > user profile" to "team > user profile > stats" and then back to "team > user profile" didn't refresh the cache Going back to "team index page", then going to "team > user profile" did refresh the cache. The page loaded fast, there was no "loading" text. But a second or two after getting to user profile, the name updated. |
Ye, going back doesn't reload the page, only forwards. This is due to how the stack navigation works. I don't think our application is too time sensitive but we can indeed put in a pull to refresh and a timer. There should already be a default cache timeout i think |
mapped out all pages
* navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com>
* navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7beb. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu>
* Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com>
* teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch
* sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart!
Co-authored-by: Frankreed <baoanhtdn@gmail.com>
* add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com>
Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization.
* minor fixes to team and profile * move team data to main drill_data file
* move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com>
* mass formatting * added easy npm command to start prettier * mass reformat 2
…orks with 20 shot challenge
* feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com>
* reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com>
… because it doesn't work for all positive values charts (like 20 shot challenges)
All bar chart scrolling and spacing behavior fixed. All references to "current user" replaced with react context All pages in content/profile now using firebase Added scrollbox to description in case it's longer than the screen
tanstack quorks!!!!
c892862
to
c051267
Compare
* feat: install Gluestack UI library * yarn * nice * replaced gluestack with react native paper * added db_spec * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * add comments for frank * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * Teams page scrolling / keyboard / safearea fixes (#67) * team scroll fixes * comments * add no drills attempted yet text * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * fix local json imports to match current db_spec (#75) * Make drill pages (list, desc, leaderboard, and stat) fetch data from database (#74) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * mass formatting * drill list page is now based on firebase * updated db_spec * checkpoint save. moved drill attempts into their own thing at the root of teams. * *very* ugly implementation of drill list and drill leaderboard off of firestore * make stuff work * description, leaderboard, and statistics all use firebase now. * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * mass reformat, again! * Changed database so single attempt screen can more easily display for multiple drills * added some safe area, consolidated shotAccordion.js --------- Co-authored-by: solderq35 <solderq35@gmail.com> * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * fix mainOutputAttempt (#76) * Add README (#80) * Update main.yml to use yarn * Integrate firebase to everything under content/team (#81) * feat: install Gluestack UI library * yarn * nice * replaced gluestack with react native paper * added db_spec * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * add comments for frank * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * Teams page scrolling / keyboard / safearea fixes (#67) * team scroll fixes * comments * add no drills attempted yet text * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * fix local json imports to match current db_spec (#75) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * mass formatting * drill list page is now based on firebase * updated db_spec * checkpoint save. moved drill attempts into their own thing at the root of teams. * *very* ugly implementation of drill list and drill leaderboard off of firestore * make stuff work * description, leaderboard, and statistics all use firebase now. * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * mass reformat, again! * Changed database so single attempt screen can more easily display for multiple drills * added some safe area, consolidated shotAccordion.js * Make drill pages (list, desc, leaderboard, and stat) fetch data from database (#74) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * mass formatting * drill list page is now based on firebase * updated db_spec * checkpoint save. moved drill attempts into their own thing at the root of teams. * *very* ugly implementation of drill list and drill leaderboard off of firestore * make stuff work * description, leaderboard, and statistics all use firebase now. * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * mass reformat, again! * Changed database so single attempt screen can more easily display for multiple drills * added some safe area, consolidated shotAccordion.js --------- Co-authored-by: solderq35 <solderq35@gmail.com> * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * fix mainOutputAttempt (#76) * some temp work, team list page uses firebase now * Add README (#80) * teams pages are all hooked up. Remove the hitbox system from barChart because it doesn't work for all positive values charts (like 20 shot challenges) * edited main.yml to use yarn --------- Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: solderq35 <solderq35@gmail.com> Co-authored-by: hannacol <91215417+hannacol@users.noreply.github.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> Co-authored-by: Jake Gehrke <91503842+Gehrkej@users.noreply.github.com> Co-authored-by: Jeff Huang <82061589+solderq35@users.noreply.github.com> Co-authored-by: ajpert <84763013+ajpert@users.noreply.github.com> Co-authored-by: Andy <andy.matthew.james@gmail.com> Co-authored-by: Artem <91341345+artkolpakov@users.noreply.github.com> * Integrate firebase to everything under content/profile (#83) * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * drill list page is now based on firebase * *very* ugly implementation of drill list and drill leaderboard off of firestore * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * teams pages are all hooked up. Remove the hitbox system from barChart because it doesn't work for all positive values charts (like 20 shot challenges) * import db is now import db instead of import { db } All bar chart scrolling and spacing behavior fixed. All references to "current user" replaced with react context All pages in content/profile now using firebase Added scrollbox to description in case it's longer than the screen --------- Co-authored-by: hannacol <91215417+hannacol@users.noreply.github.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> Co-authored-by: Jake Gehrke <91503842+Gehrkej@users.noreply.github.com> Co-authored-by: Jeff Huang <82061589+solderq35@users.noreply.github.com> Co-authored-by: ajpert <84763013+ajpert@users.noreply.github.com> Co-authored-by: Andy <andy.matthew.james@gmail.com> Co-authored-by: Artem <91341345+artkolpakov@users.noreply.github.com> * Optimized all firebase calls to use tanstack query (react query) (#84) * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * drill list page is now based on firebase * *very* ugly implementation of drill list and drill leaderboard off of firestore * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * teams pages are all hooked up. Remove the hitbox system from barChart because it doesn't work for all positive values charts (like 20 shot challenges) * import db is now import db instead of import { db } All bar chart scrolling and spacing behavior fixed. All references to "current user" replaced with react context All pages in content/profile now using firebase Added scrollbox to description in case it's longer than the screen * some firebase emulation setup tanstack quorks!!!! * changed all uses of direct firebase querying to tanstack query hooks. * Prevent shotAccordion numbers from jumping back and forth * removed firebase emulator files --------- Co-authored-by: hannacol <91215417+hannacol@users.noreply.github.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> Co-authored-by: Jake Gehrke <91503842+Gehrkej@users.noreply.github.com> Co-authored-by: Jeff Huang <82061589+solderq35@users.noreply.github.com> Co-authored-by: ajpert <84763013+ajpert@users.noreply.github.com> Co-authored-by: Andy <andy.matthew.james@gmail.com> Co-authored-by: Artem <91341345+artkolpakov@users.noreply.github.com> * Login revamp test (#39) * feat: install Gluestack UI library * yarn * nice * replaced gluestack with react native paper * added db_spec * Rebase "solderq35/login-revamp-test" onto layout branch; remove ts, extraneous pages * jk now the light dark theme stuff is gone * yarn * fix dependency issues and update async storage * jsx > js, match layout branch format * gluestack * update readme * save progress and then cut down on dependencies later * simplify dependencies * add web bundler, fix firestore dependency * formatting * add back app.json expo router plugin * reset to layout branch * add back signin and signup onto layout * add usecontext call, dismiss keyboard, alert popups, team search placeholder * fix profile settings icon placement, add uid to usecontext, allow click buttons with keyboard open * setdoc on new user * manually fix some things to match layout cause I brain farted during rebase * commit what I got before I implement user object email foreign key thing * update email stuff * add password reset emails, add error handler to signout * fix signout and password reset error handling * styling fixes, max width and container height * more styling fixes * update with latest changes after rebase * simplify context user, remove unused functions, var rename * reset plan index * rename var names --------- Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Hannacol/image modal (#79) * feat: install Gluestack UI library * yarn * nice * replaced gluestack with react native paper * added db_spec * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * add comments for frank * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * Teams page scrolling / keyboard / safearea fixes (#67) * team scroll fixes * comments * add no drills attempted yet text * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * fix local json imports to match current db_spec (#75) * Make drill pages (list, desc, leaderboard, and stat) fetch data from database (#74) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * mass formatting * drill list page is now based on firebase * updated db_spec * checkpoint save. moved drill attempts into their own thing at the root of teams. * *very* ugly implementation of drill list and drill leaderboard off of firestore * make stuff work * description, leaderboard, and statistics all use firebase now. * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * mass reformat, again! * Changed database so single attempt screen can more easily display for multiple drills * added some safe area, consolidated shotAccordion.js --------- Co-authored-by: solderq35 <solderq35@gmail.com> * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * fix mainOutputAttempt (#76) * Images now have a modal popup when pressed and close when anywhere is pressed * Created image carousel for multiple images and modal works for them individually * Fixed props for description * Updated modal to use Lightbox. Uses carousel when in popup * Fixed "Start Drill" button styling * Removed Lighbox component and chnaged it to Modal pop up for Carousel * Added zIndex to close button * Images now have a modal popup when pressed and close when anywhere is pressed * Created image carousel for multiple images and modal works for them individually * Fixed props for description * Updated modal to use Lightbox. Uses carousel when in popup * Fixed "Start Drill" button styling * Removed Lighbox component and chnaged it to Modal pop up for Carousel * Added zIndex to close button * Prettier ran * Created image carousel for multiple images and modal works for them individually * Fixed props for description * Updated modal to use Lightbox. Uses carousel when in popup * Fixed "Start Drill" button styling * Removed Lighbox component and chnaged it to Modal pop up for Carousel * Added zIndex to close button * Created image carousel for multiple images and modal works for them individually * Updated modal to use Lightbox. Uses carousel when in popup * Fixed "Start Drill" button styling * Removed Lighbox component and chnaged it to Modal pop up for Carousel * Prettier ran * Rebased off layout and ran prettier --------- Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: solderq35 <solderq35@gmail.com> Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Frank Nguyen <41023671+FrankreedX@users.noreply.github.com> Co-authored-by: Jake Gehrke <91503842+Gehrkej@users.noreply.github.com> Co-authored-by: Jeff Huang <82061589+solderq35@users.noreply.github.com> Co-authored-by: ajpert <84763013+ajpert@users.noreply.github.com> Co-authored-by: Andy <andy.matthew.james@gmail.com> Co-authored-by: Artem <91341345+artkolpakov@users.noreply.github.com> * the previous merge merged too much... (#87) * User Profile Name and Password Update (#88) * feat: implement edit profile modal * feat: add sign out functionality * feat: add useEmailInfo hook * feat: implement user name Firebase update * feat: implement password change * feat: make profile name dynamic Made the profile card's name property dynamic to reflect changes when the user updates their name within an edit profile modal. * some refactoring --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Gehrkej/output data creation (#85) * Initial line test result created * added shot accodian back to general comonent. changed how dots are created based on drillType * removed testing stuff and shifted submission definition up * added header and moved restart drill button to reflect how artem implimented on "edit profile" * restartButton styling now matches exactly * switched back to what frank had and figured out how to make it work. I think... * removed log test message * removed some testing log statements * removed test logs * removed test buttons and added view of height 100% around everything * yarn * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created in…
* feat: install Gluestack UI library * yarn * nice * replaced gluestack with react native paper * added db_spec * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * add comments for frank * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * Teams page scrolling / keyboard / safearea fixes (#67) * team scroll fixes * comments * add no drills attempted yet text * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * fix local json imports to match current db_spec (#75) * Make drill pages (list, desc, leaderboard, and stat) fetch data from database (#74) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * mass formatting * drill list page is now based on firebase * updated db_spec * checkpoint save. moved drill attempts into their own thing at the root of teams. * *very* ugly implementation of drill list and drill leaderboard off of firestore * make stuff work * description, leaderboard, and statistics all use firebase now. * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * mass reformat, again! * Changed database so single attempt screen can more easily display for multiple drills * added some safe area, consolidated shotAccordion.js --------- Co-authored-by: solderq35 <solderq35@gmail.com> * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * fix mainOutputAttempt (#76) * Add README (#80) * Update main.yml to use yarn * Integrate firebase to everything under content/team (#81) * feat: install Gluestack UI library * yarn * nice * replaced gluestack with react native paper * added db_spec * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * add comments for frank * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * Teams page scrolling / keyboard / safearea fixes (#67) * team scroll fixes * comments * add no drills attempted yet text * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * fix local json imports to match current db_spec (#75) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * mass formatting * drill list page is now based on firebase * updated db_spec * checkpoint save. moved drill attempts into their own thing at the root of teams. * *very* ugly implementation of drill list and drill leaderboard off of firestore * make stuff work * description, leaderboard, and statistics all use firebase now. * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * mass reformat, again! * Changed database so single attempt screen can more easily display for multiple drills * added some safe area, consolidated shotAccordion.js * Make drill pages (list, desc, leaderboard, and stat) fetch data from database (#74) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * mass formatting * drill list page is now based on firebase * updated db_spec * checkpoint save. moved drill attempts into their own thing at the root of teams. * *very* ugly implementation of drill list and drill leaderboard off of firestore * make stuff work * description, leaderboard, and statistics all use firebase now. * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * mass reformat, again! * Changed database so single attempt screen can more easily display for multiple drills * added some safe area, consolidated shotAccordion.js --------- Co-authored-by: solderq35 <solderq35@gmail.com> * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * fix mainOutputAttempt (#76) * some temp work, team list page uses firebase now * Add README (#80) * teams pages are all hooked up. Remove the hitbox system from barChart because it doesn't work for all positive values charts (like 20 shot challenges) * edited main.yml to use yarn --------- Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: solderq35 <solderq35@gmail.com> Co-authored-by: hannacol <91215417+hannacol@users.noreply.github.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> Co-authored-by: Jake Gehrke <91503842+Gehrkej@users.noreply.github.com> Co-authored-by: Jeff Huang <82061589+solderq35@users.noreply.github.com> Co-authored-by: ajpert <84763013+ajpert@users.noreply.github.com> Co-authored-by: Andy <andy.matthew.james@gmail.com> Co-authored-by: Artem <91341345+artkolpakov@users.noreply.github.com> * Integrate firebase to everything under content/profile (#83) * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * drill list page is now based on firebase * *very* ugly implementation of drill list and drill leaderboard off of firestore * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * teams pages are all hooked up. Remove the hitbox system from barChart because it doesn't work for all positive values charts (like 20 shot challenges) * import db is now import db instead of import { db } All bar chart scrolling and spacing behavior fixed. All references to "current user" replaced with react context All pages in content/profile now using firebase Added scrollbox to description in case it's longer than the screen --------- Co-authored-by: hannacol <91215417+hannacol@users.noreply.github.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> Co-authored-by: Jake Gehrke <91503842+Gehrkej@users.noreply.github.com> Co-authored-by: Jeff Huang <82061589+solderq35@users.noreply.github.com> Co-authored-by: ajpert <84763013+ajpert@users.noreply.github.com> Co-authored-by: Andy <andy.matthew.james@gmail.com> Co-authored-by: Artem <91341345+artkolpakov@users.noreply.github.com> * Optimized all firebase calls to use tanstack query (react query) (#84) * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * drill list page is now based on firebase * *very* ugly implementation of drill list and drill leaderboard off of firestore * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * teams pages are all hooked up. Remove the hitbox system from barChart because it doesn't work for all positive values charts (like 20 shot challenges) * import db is now import db instead of import { db } All bar chart scrolling and spacing behavior fixed. All references to "current user" replaced with react context All pages in content/profile now using firebase Added scrollbox to description in case it's longer than the screen * some firebase emulation setup tanstack quorks!!!! * changed all uses of direct firebase querying to tanstack query hooks. * Prevent shotAccordion numbers from jumping back and forth * removed firebase emulator files --------- Co-authored-by: hannacol <91215417+hannacol@users.noreply.github.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> Co-authored-by: Jake Gehrke <91503842+Gehrkej@users.noreply.github.com> Co-authored-by: Jeff Huang <82061589+solderq35@users.noreply.github.com> Co-authored-by: ajpert <84763013+ajpert@users.noreply.github.com> Co-authored-by: Andy <andy.matthew.james@gmail.com> Co-authored-by: Artem <91341345+artkolpakov@users.noreply.github.com> * Login revamp test (#39) * feat: install Gluestack UI library * yarn * nice * replaced gluestack with react native paper * added db_spec * Rebase "solderq35/login-revamp-test" onto layout branch; remove ts, extraneous pages * jk now the light dark theme stuff is gone * yarn * fix dependency issues and update async storage * jsx > js, match layout branch format * gluestack * update readme * save progress and then cut down on dependencies later * simplify dependencies * add web bundler, fix firestore dependency * formatting * add back app.json expo router plugin * reset to layout branch * add back signin and signup onto layout * add usecontext call, dismiss keyboard, alert popups, team search placeholder * fix profile settings icon placement, add uid to usecontext, allow click buttons with keyboard open * setdoc on new user * manually fix some things to match layout cause I brain farted during rebase * commit what I got before I implement user object email foreign key thing * update email stuff * add password reset emails, add error handler to signout * fix signout and password reset error handling * styling fixes, max width and container height * more styling fixes * update with latest changes after rebase * simplify context user, remove unused functions, var rename * reset plan index * rename var names --------- Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Hannacol/image modal (#79) * feat: install Gluestack UI library * yarn * nice * replaced gluestack with react native paper * added db_spec * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * add comments for frank * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fields * created initial outputData generator when clicking the "Submit Drill" button * removed "drills" folder that was copied over during rebase * added banner that displays when not all input fields are filled * removed testTheme --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: hannacol <hannacol@oregonstate.edu> * Layouts/drill leaderboard (#63) * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * Screen works! * Restart button * removed victory-native * feat: stylize drill submission results screen * feat: add rounding for all displayed data fields * fix: center scatter chart positioning * fix: stylize shot accordion width to fit Figma designs * not js * Updated drill.json and made leaderboards dynamic with json data * fix: revamp routing and navigation * feat: style drills list screen * feat: add icons for drill result screen Added icons to containers that display average differences data on the drill results screen, aligning screen's design with the Figma design. Ensured proper styling and centering of the data containers. * Refactored drill.json and leaderboard with new database structure * Drill results page loads with drill_data.json file --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Layouts/teams (#59) * teams page init * don't hardcode pfp * switch to nested object data * object keys length * data for players on team * bottom sheet settings * set teamdata format like profile branch * Layouts/profile (#57) * sth * Made a profile page with a list of a user's attempted drills, and the corresponding drill stat page that respond to that drill's structure. * edited db_spec.jsonc to match drill_data.json * Made hitbox of statistics bigger. * componentized barchart! * add actual folder (#61) Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Layouts/bottom navigation (#65) * add actual folder * merged and situated some files --------- Co-authored-by: Andy <andy.matthew.james@gmail.com> * feat: implement navigation for merged screens Resolved invalid routing to accurately direct to the intended screens. Adjusted header navigation styling to fit within the screen. Corrected importing of the mocked data to ensure proper utilization. * minor fixes to team and profile (#66) * minor fixes to team and profile * move team data to main drill_data file * updated drill data generation script to push data to firestore * Teams page scrolling / keyboard / safearea fixes (#67) * team scroll fixes * comments * add no drills attempted yet text * move drill submission files to new directory to hide tab bar (#68) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * fix data imports for profile, teams, drill stats --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Frankreed/incorporating prettier (#73) * mass formatting * added easy npm command to start prettier * mass reformat 2 * fix local json imports to match current db_spec (#75) * Make drill pages (list, desc, leaderboard, and stat) fetch data from database (#74) * move drill submission to new directory to hide bottom nav * eradicated drills.json and unified everything under drill_data.json. Also made result.js use the mock data directly. Whoever is handling the input and result should resolve this * mass formatting * drill list page is now based on firebase * updated db_spec * checkpoint save. moved drill attempts into their own thing at the root of teams. * *very* ugly implementation of drill list and drill leaderboard off of firestore * make stuff work * description, leaderboard, and statistics all use firebase now. * leaderboard attempts can be navigated into. The resulting page only works with 20 shot challenge * mass reformat, again! * Changed database so single attempt screen can more easily display for multiple drills * added some safe area, consolidated shotAccordion.js --------- Co-authored-by: solderq35 <solderq35@gmail.com> * Style Profile and Statistics Screens (#77) * feat: style the profile card component * feat: style the drill card component * feat: style the personal and user profile pages * feat: style the statistics page * fix: adjust barChart component styling * fix: add leaderboard margins * feat: style the ShotAccordion component * feat: style the data field rows within the ShotAccordion component * fixed bar charts and stuff --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Sticky searchbar in scrollview for Teams page (#78) * reference * animations on this work now * ran yarn, and merged --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * fix mainOutputAttempt (#76) * Images now have a modal popup when pressed and close when anywhere is pressed * Created image carousel for multiple images and modal works for them individually * Fixed props for description * Updated modal to use Lightbox. Uses carousel when in popup * Fixed "Start Drill" button styling * Removed Lighbox component and chnaged it to Modal pop up for Carousel * Added zIndex to close button * Images now have a modal popup when pressed and close when anywhere is pressed * Created image carousel for multiple images and modal works for them individually * Fixed props for description * Updated modal to use Lightbox. Uses carousel when in popup * Fixed "Start Drill" button styling * Removed Lighbox component and chnaged it to Modal pop up for Carousel * Added zIndex to close button * Prettier ran * Created image carousel for multiple images and modal works for them individually * Fixed props for description * Updated modal to use Lightbox. Uses carousel when in popup * Fixed "Start Drill" button styling * Removed Lighbox component and chnaged it to Modal pop up for Carousel * Added zIndex to close button * Created image carousel for multiple images and modal works for them individually * Updated modal to use Lightbox. Uses carousel when in popup * Fixed "Start Drill" button styling * Removed Lighbox component and chnaged it to Modal pop up for Carousel * Prettier ran * Rebased off layout and ran prettier --------- Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> Co-authored-by: solderq35 <solderq35@gmail.com> Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Frank Nguyen <41023671+FrankreedX@users.noreply.github.com> Co-authored-by: Jake Gehrke <91503842+Gehrkej@users.noreply.github.com> Co-authored-by: Jeff Huang <82061589+solderq35@users.noreply.github.com> Co-authored-by: ajpert <84763013+ajpert@users.noreply.github.com> Co-authored-by: Andy <andy.matthew.james@gmail.com> Co-authored-by: Artem <91341345+artkolpakov@users.noreply.github.com> * the previous merge merged too much... (#87) * User Profile Name and Password Update (#88) * feat: implement edit profile modal * feat: add sign out functionality * feat: add useEmailInfo hook * feat: implement user name Firebase update * feat: implement password change * feat: make profile name dynamic Made the profile card's name property dynamic to reflect changes when the user updates their name within an edit profile modal. * some refactoring --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> * Gehrkej/output data creation (#85) * Initial line test result created * added shot accodian back to general comonent. changed how dots are created based on drillType * removed testing stuff and shifted submission definition up * added header and moved restart drill button to reflect how artem implimented on "edit profile" * restartButton styling now matches exactly * switched back to what frank had and figured out how to make it work. I think... * removed log test message * removed some testing log statements * removed test logs * removed test buttons and added view of height 100% around everything * yarn * Laid out directory and files (#48) mapped out all pages * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * apparently we don't need safe area anymore ??? * Moved all files into appropriate places. Added a babel plugin for root level imports * Drilll Description merging into Layout (#53) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * navigation to stats working * Basic navigation for drill description, leaderboard and stats * disable header statusbar * fix: adjust height of status bar back button and screen title * Drill description rebase * Dynamic and parameratized routes for drill description + added drills.json --------- Co-authored-by: Frankreed <baoanhtdn@gmail.com> Co-authored-by: Artem Kolpakov <artemkolpakov78@gmail.com> * Deleted extra drills directory in /app * Layouts/drill submission (#62) * navigation to stats working * 2 dropdowns! * added dropdown, accordions, and drill submission view below the graph * Scroll list for shots works now! * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * navigation to stats working * Basic navigation for drill description, leaderboard and stats * Initial incorporation from work done on "Golf-App-Test" * Increase data to reflect a full 20 shots * began "Back to Latest / Next Shot" button logic * renamed useState hooks to have better terms * fixed "Back to Latest" logic * "Core Data" is now displayed horizontally for multiple attributes + added basic logic for "Submit Drill" button * Added a shot with 3 "Core Data" attributes * removed safe area view * got it working on my mac + keyboardscrollview * added bottom sheet, reanimated, and gesture handler * added react-native-reanimated plugin * working bottom sheet * bottom sheet has shot navigation test * Static Navigation rectanges added * Initial NavigationRectangle with dynamic data implimented * added both bottom sheets with test buttons * removed "index" from inputs map * hooked up bottom sheet open on proper components + removed some test buttons * added "id" to pressable in Navigation Rectangle * fixed warning related to key * Removed test indices * Initial Test Leave Drill Modal implimented with test button * Fixed bottom box bug * Refactored to dialog instead of modal * Removed test button and set up dialog on the back arrow * fixed key warning in NavigationRectangle * Adjusted files to better match File structure after rebase * added link to get to description screen * added key to input value map to hopefully finally fix warning * added fonts shown in figma * created test theme to start messing around with * added react-native config file for fonts * installed expo-font and added fonts into plugins * removed fonts from expo-plugins * Updated Styling * Update yarn.lock * Revert "Update yarn.lock" This reverts commit cae7bebea51524c557205e1410fc5aee4eadb0bf. * nav buttons stay * Note about moving stuff into file structure * copied over drills/input.js to app/(content)/drill/[id]/submission/input.js * added navigation to new location in file system * index in submission now displaying Input component * added basic description modal based on Colby's decription component * description modal working * refactored terminolgy for testData * InputValues useState hook abstracted to index file * Added base logic for preventing advancing with empty fiel…
Tanstack query automatically caches all requests so app's performance is drastically improved. Code in each pages are also massively simplified, with most fetching logic moved to hooks.