* Apply debounce on restart test focus state
* Replace sleep and ignore modifier keys for test autofocus
* Update autofocus warning text
Co-authored-by: Andrew Chang <achang3@atlassian.com>
* Save speed stats in leaderboard update
Saves a histogram data structure of speeds for buckets rounded to the nearest 10.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* API endpoint to get public speed stats
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Add APE class for public stats (WIP)
I created an APE class for accessing public stats. Also stubbed getting and showing the public speed stats on the about page. Haven't implemented the histogram yet though.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Draw histogram for global speed stats
On about page
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Update histogram colors on theme change
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Fixed out-of-order data in speed histogram
Data was not sorted correctly, which resulted in an incorrect histogram being drawn.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Public speed stats PR fixes
Small fixes based on PR feedback:
- changed _req to req
- removed unnecessary client version header
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Add endpoint for typing stats
New endpoint to retrieve the public typing stats such as global count of tests completed.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Renamed public-stats to public
Except in cases where it would cause an identifier named `public` as this is forbidden in strict mode.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Add stats section to about page
In this commit:
- add a section above about called stats
- display typing stats in three columns
- underneath show the histogram of speeds on english time 60
- make chart responsive
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Add unit test for Public DAL
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* updated styling
* only requesting data once per session
* going one column on narrow screens
* added option to specify number of decimal poitns
* just showing million instead of abbreviating
updated structure
updated styling
Signed-off-by: Brian Evans <ebrian101@gmail.com>
Co-authored-by: Miodec <jack@monkeytype.com>
* Create state for storing custom text name
* Save custom text name on click
* Add todo
* add some utility functions to custom-text.ts
* Set custom text name to empty upon modification
* now update the custom text progress in localStorage
* rework logic for updating progress in test-logic.ts
* more logic changes
* Keep progress in mind when starting next test after bailout
* reset test once they complete it and minor refactor
* Now set custom text progress to 0 when it is modified
* Add UI for continuing and change var name
* Reset progress if they start it again
* Move functions
* remove debug log
* replaced simple popup with custom popup
* fixed media query
* also setting opacity to 1
* saving long custom text into a separate object
* fixed incorrect saving function
fixed get custom text names function
* setting to empty object structure first
* long list style fix
* showing long texts
handling delete and progress reset
* renamed file
tracking if custom text is long
* unnecessary comment
* showing a warning that editing will disable progress tracking
* checking if text is long
updating progress
* added notifications
* setting custom text
* showing if progress tracking is working
* showing if progress tracking was disabled
* longer notification
* corrected button text
* joining with space
* checking if name is taken
added indicator
Co-authored-by: Miodec <jack@monkeytype.com>
* handling query param
getting user by name if query param is present
* added function to get user by name
* split profile function to get user by uid or name
* added function to check if get parameter exists in url
* updating the profile based on the url parameter
* using query param in url
* using get param
* renamed param name
adding search param to pathname in the deafult parameter value
* renamed param
* renamed param
added query validation
* extracted repeated query to a function
* missing await
* fixed typo
fixed validation
* using em for dynamic font sizes
* using em for dynamic font sizes
* added line height
* using em
* using em
* using page profile search instead
* updated the way data is passed into the page
* profile search page
* setting line height
* removed vertical align
* moved navigate to an event to avoid circular deps
* fixed route controller not being included
* removed unnecessary test
* showing 404 error
* improved query checking
* renamed query param
* fixed test
* note
* yeet
* cleaner type definition