Commit Graph

1195 Commits

Author SHA1 Message Date
2a78d2e556 Add button to export sets as CSV - 2.6 🚀
Closes #203
2023-11-21 10:26:34 +13:00
3882a95b65 Add whitespace to SettingsPage 2023-11-21 10:16:31 +13:00
7e764062f4 Remove redundant exports from gym-set.ts 2023-11-21 10:16:17 +13:00
857af61eec Refactor SettingsPage
1. If we rely on query builders too much we lose type safety
2. The update method wasn't really worth factoring out in the
  first place.
2023-11-20 20:06:45 +13:00
15a28a0a81 Replace dragging with buttons in edit plan - 2.5 🚀
Every draggable library I tried was buggy.
2023-11-20 12:42:23 +13:00
2f24104d13 Set finished notification sound to null - 2.4 🚀
Closes #195
2023-11-20 12:24:43 +13:00
cc6b37e16a Fix timer not always ending - 2.3 🚀
This bug is because I mis-named the event for the alarm finishing.
It would only be possible to create this bug if you do the following:
1. Create a timer
2. Swap to another app for it's duration and keep your phone screen
   active
3. On timer completion, without tapping the notification, focus the app
4. See the timer has not been set to zero
2023-11-15 22:44:02 +13:00
b485175082 Stop timer when you undo a set from an open plan 2023-11-15 16:05:28 +13:00
086e3ea2df Simplify the peek view of exercises from Plan 2023-11-15 16:03:58 +13:00
1b164aaaf1 Remove loading indicator where load times are fast
If the load time is too fast (on a mid-tier device),
then for most people they will see a flicker of a
loading spinner (which looks like a bug). These indicators
would only marginally improve the experience of people with
the slowest devices, but for most people this will just look
like a bug.

I left the indicators in the InsightsPage since those queries
actually do take >=300ms on a mid-tier device.
2023-11-15 15:53:32 +13:00
b44cbae131 Fix progress bar not showing on some pages - 2.2 🚀
Moving the bar  from App.tsx -> AppDrawer.tsx was a mistake,
because then the bar only shows on drawer routes instead of
app-wide.
2023-11-15 14:32:29 +13:00
608bb3e97a Add settings for default fields on Exercise - 2.1 🚀
Closes #188
2023-11-15 14:05:25 +13:00
f6a75d89cd Write an empty mp3 when disabling sound - 1.188 🚀
Also revert to the default sound if you enable it again.

Closes #178
2023-11-15 13:28:30 +13:00
0592a9d695 Fix wrong text color on primary buttons - 1.187 🚀 2023-11-15 13:07:58 +13:00
3544392002 Handle database importing breaking
1. Backup the current database first
2. Restore the database if something goes wrong
3. Show the user a dialog explaining the error
2023-11-15 12:14:47 +13:00
bdc648d811 Factor out FatalError component from App.tsx 2023-11-15 12:14:34 +13:00
50b3a2ef3d Fix text color in App.tsx fatal error message 2023-11-15 11:52:31 +13:00
7a24d844c5 Add fatal error message if database fails to initialize
This will help with debugging if the user can directly
provide what error occurred.
2023-11-15 11:46:33 +13:00
ec17ad5805 Wrap SetItem in React.memo
Apparently large lists in React Native should be wrapped in this,
as long as they don't have any internal state.

So this should theoretically improve performance when you scroll down
a lot.
2023-11-15 11:30:09 +13:00
ba24649a52 Organize imports 2023-11-15 11:21:49 +13:00
70a318a0a4 Add activity indicator for SetList 2023-11-15 11:19:22 +13:00
6b168cccfe Rename drawer-param-list -> drawer-params 2023-11-15 11:08:00 +13:00
b68587f514 Add auto converter - 1.186 🚀
Closes #193
2023-11-15 11:03:23 +13:00
1b217f1905 Fix bug of default EditSets unit being wrong
By default, the unit is empty (no change).
Previously it was defaulting to kilograms.
2023-11-15 11:00:09 +13:00
c3a8034dd4 Make add/subtract buttons float right in EditSets 2023-11-15 10:59:55 +13:00
9cc0eae66a Fix logging in EditSets 2023-11-15 10:59:40 +13:00
3ac1e74575 Make save button containde in EditExercise 2023-11-15 10:53:16 +13:00
c507370398 Change style of primary buttons
According to React Native Paper docs, the purpose
of the "contained" mode of button is for the primary
action.

https://callstack.github.io/react-native-paper/docs/components/Button/#mode
2023-11-15 10:51:54 +13:00
35a3ef75b6 Add 3 more colors to dark/light mode 2023-11-15 10:43:47 +13:00
859818e5b6 Change layout of SetItem
Moved the date to the description,
and the reps x weight to the right.

Related to #192.
2023-11-14 20:44:54 +13:00
ddceb91211 Add activity indicators to ViewGraph 2023-11-14 15:03:21 +13:00
976bb7c189 Add activity indicator for StartPlan 2023-11-14 14:56:58 +13:00
8ee07823aa Replace useDark with useTheme - 1.185 🚀 2023-11-14 14:52:35 +13:00
456af73e91 Rename useTheme to useAppTheme
React Native and React Native Paper already
have a useTheme so let's not add to the clutter.
2023-11-14 14:45:15 +13:00
a7db87c61a Fix colors on fabs 2023-11-14 14:44:10 +13:00
b9473a8b01 Fix error inserting records on fresh install - 1.184 🚀 2023-11-14 14:36:47 +13:00
5a06b7ee2c Fix default colors on fresh install 2023-11-14 14:34:10 +13:00
bec564e18b Handle loading of exercises in EditPlan 2023-11-14 14:03:40 +13:00
4dd8a2950f Organize state in EditPlan 2023-11-14 13:56:50 +13:00
d0f6550f29 Move TimerProgress from App.tsx -> AppDrawer.tsx
1. The lower this is in the stack the less re-renders we might cause
2. Now we can hook into useFocusEffect and prevent updates when out of
  focus
2023-11-14 13:55:59 +13:00
be3af4db22 Refactor some code in App.tsx 2023-11-13 19:40:05 +13:00
4b5e7011d6 Fix logic for dark color theme 2023-11-13 19:16:13 +13:00
315279e28d Replace all unit text boxes with dropdowns - 1.183 🚀 2023-11-13 18:35:30 +13:00
d8eba22914 Rename Home -> History
Although it is very common to have a Home page,
I would rather have every pages name describe
generally what it is.
2023-11-13 18:29:07 +13:00
1ac78de724 Fix some database drift 2023-11-13 18:13:23 +13:00
6950cd04f4 Improve performance of app - 1.182 🚀
The App.tsx had a bunch of separate useState calls which would
cause unneccesary re-renders of the entire app. This became
apparent after adding the global progress bar, since it caused
even more re-renders to the point of being unusable.
2023-11-13 17:37:53 +13:00
49646c3107 Reduce default limit back to 15
The feeling of scrolling was nice but a page size of 50
makes the main page a bit slower which isn't worth it.
2023-11-13 17:11:00 +13:00
7f4c0a5f10 Replace unit text input with a drop down 2023-11-13 16:07:45 +13:00
ec0fdbcec7 Remove logging from AppDrawer & AppStack 2023-11-13 16:07:23 +13:00
155eaddbdd Add margins to app-wide progress bar 2023-11-13 16:07:12 +13:00