* Added Ability Chunks Required section in Build Analyzer
* Renamed a variable to be more precisely correct
* Added reference
* Removed some extra Javadoc comments
* Prettier fix
* We now only render the AbilityChunksRequired section only if the main abilities array contains a value other than "UNKNOWN"
* Improved React keys naming for performance reasons
* Ability Chunks map is now converted to an array & sorted by value (descending) before it gets rendered as visual components
* Fixed typing error
* Moved logical function to a new file in the analyzer module called abilityChunksCalc.ts
- Refactored for loop content to be cleaner
- Removed & changed some comments
* More for loop refactoring
* We now pass the entire build into abilityChunksCalc.ts
* Refactored map() to flatMap() so we avoid unknowns/null/undefined
* Refactored code to process mainAbilities and subAbilities
* Fixed subability list construction logic & typing in updateAbilityChunksMap()
* Got my first unit test working
* Added working unit tests, also changed sort order slightly
* Added a "real" build for testing
* Removed residual console.warn() call
* Moved constants to abilityChunksCalc.ts
* Ability chunk calculation is now correct for sub abilities
* Uncommented tests & improved their descriptions
* Rearranged expected output to match sorted order for clarity (even though it doesn't have to be)
* Fixed Prettier error
* Spacing
* Moved comments around
* More spacing
* Prettier error on test file
* Improved check in the tests
* Added a second "real" build to tests for good measure
* Added error message to empty array test
* Updated comments again
* More comments updated
* Update test name
* Ability Chunks section is now shown if we have at least one selected ability (handles edge case for primary slot-only abilities being the only chosen ability)
* Add DB tables
* Toggle TO Tools in new calendar event page
* TO tools page initial
* Add counter pick map pool UI
* Save tie breaker map pool
* Save team name
* Layout initial
* Load users own team
* Make team name input required
* Rename team
* Divide to sections
* Submit team map pool
* New style for counter pick map pool section expand
* Fix tiebreaker map pool not saved when new event made
* Split to many forms
* According for team name
* Small UI consistency tweaks
* Add explanation to tie breaker maps
* Remove redundant prop
* Fix new calendar event todos
* Use required hidden input component in new build page
* Fix to tools page showing even when toToolsEnabled = 0
* Delete team
* Map list generation tests initial
* Add tournament map list generation tests
* First version of map list generation
* Add seeded RNG
* Rearrange files
* Generation with strats initial
* Default map pool + allow one team not to have any maps
* Implement map generation via backtracking
* Make order of stages irrelevant
* Add one more TODO
* Seed
* Fixes
* Tournament map list generator initial
* More functional maplist
* Fix any
* Persist in search params initial
* Add date to calendar seed
* Revert "Persist in search params initial"
This reverts commit f01a9e6982.
* Allow admin to start tournament
* Rate maplist instead of optimal / suboptimal
* Add fallback if map list generation errors out
* Hide TO Tools if not admin
* Submit team roster and delete members
* Teams page
* Give roster s p a c e
* Clear user combobox on sent + layout tweaks
* Gracefully handle updating after tournament has started
* Add title
* Persist map list in search params
* Add i18n
* Added new Article route that renders all Articles (with a reasonable upper limit for now).
- Also added a GoToPageBanner for the main Articles page (/a) on the front page. This is placed above the ArticlesPeek component
- Used the sendou_love navItem icon for the moment (this can be replaced at any time once a new art asset is added)
* Fixed Prettier CI pipeline error
* Ran `npm run check-translation-jsons` to update missing Translations for new key added
* Update public/locales/en/front.json
Co-authored-by: Kalle <38327916+Sendouc@users.noreply.github.com>
* French localizations
* Removed unnecessary comment
* Converted h2 to h1 tags for Main Articles page
Co-authored-by: Kalle <38327916+Sendouc@users.noreply.github.com>
* Moved GoToPageBanner element for main articles page to below ArticlesPeek element
* Refactored some files so that the articles prop is passed into ArticlesPeek
- Also added the Articles header title in common.json
* Updated translation-progress.md
* Cleaned up data type for articles prop in ArticlesPeek
* Fixed React hydration error for translations on imported articles
- Added in SendouRouteHandle component on new Articles main page
* GoToPageBanner now optionally accepts a `navItem` parameter. It does not render the image if navItem is not passed into it
* Removed <Outlet /> JSX element on the main Articles page
* Removed sendou_love navItem on GoToPageBanner for articles page
* Fixed spacing issue by grouping ArticlesPeek and its corresponding GoToPageBanner element into a `stack` div
* Fixed pipeline error
* Update translation again
Co-authored-by: Kalle <38327916+Sendouc@users.noreply.github.com>
* Issue 858: On the new calendar page adding a new Date entry with the "Add" button will now insert a new date with an offset of +24 hours of the previous row's date value.
* Added comment to ignore the TSLint "object can be null" error
* Changed `var` to `const`
* Fixed Prettier checks in CI pipeline
* Fixed Typecheck CI pipeline error
* Moved getDateWithHoursOffset() function to app/utils/dates.ts
* Added new line at end of file
* Added getValidNewDateIfInvalid() function. This retrieves a valid date. If invalid, get a new Date object.
- So now, if we intentionally/accidentally delete the data in the Calendar's DateInput element, it will be reset to the current Date/Time
* Refactored DateInput component's update state mechanism to be handled by an onChange() function defined in the parent component that is passed to the child
* Prettier formatting so that the new CI pipeline won't output errors at me
* Removed unused imported types
* Removed the datesCount React Hook & refactored accordingly
* Removed unused loader-related variables
* DateInput onChange prop is now optional
* Instead of generating a new Array, iterate over DateInput's inputState's array instead
* Fix potential undefined error
* DatesInputState: refactored to remove index & access the index during iteration with map() 2nd arg
* Properly initialized state for pre-existing events =)
- Also added TODO comments for improving date input handling (1082)
* Prettier formatting
* Uncommented console.warn()
* Touched up comment
* Issue 1068: Hide Highlights section if the user has exactly 1 result on their profile
* Moved the logic so that we only hide the "Choose Highlights" button if the user has exactly 1 result & they have exactly 1 highlight selected
* Updated logic to hide the Highlights section if the user only has 1 total result
* Prettier fix
Planned to be replaced with Playwright maybe?
Just removing in the meanwhile so they don't confuse people.
Or that people won't accidentally develop new.