* Update the updates page with new items (#306)
* Add Nier and Estarriola uncaps (#308)
* Update the updates page with new items (#306) (#307)
* Update .gitignore
* Add Nier and Estarriola uncaps
* Fix uncaps treated as new characters
* Redesigned team navigation (#310)
* Add ellipsis icon
* Reduce size of tokens
* Move UpdateToast to toasts folder
* Update variables.scss
* Add reps for grid objects
These reps act like the existing PartyRep except for Characters and Summons, as well as a new component just for Weapons.
They only render the grid of objects and nothing else.
Eventually PartyRep will use WeaponRep
* Added RepSegment
This is a Character, Weapon or Summon rep wrapped with an input and label for use in a SegmentedControl
* Modify PartySegmentedControl to use RepSegments
This will not work on mobile yet, where it should gracefully degrade to a normal SegmentedControl with only text
* Extract URL copied and Remixed toasts into files
* Extract delete team alert into a file
Also, to support this:
* Added `Destructive` class to Button
* Added `primaryActionClassName` prop to Alert
* Added an alert for when remixing teams
* Began refactoring PartyDetails into several files
* PartyHeader will live at the top, above the new segmented control
* PartyDetails stays below, only showing remixed teams and the description
* PartyDropdown handles the new ... menu
* Remove duplicated code
This is description and remix code that is still in `PartyDetails`
* Small fixes for weapon grid
* Add placeholder image for guidebooks
* Add localizations
* Add Guidebook type and update other types
* Update gitignore
Don't commit guidebook images
* Indicate if a dialog is scrollable
We had broken paging in the infinite scroll component. Turning off "scrolling" at the dialog levels fixes it without adding scrollbars in environments that persistently show them
* Add ExtraContainer
This is the purple container that will contain additional weapons and sephira guidebooks
* Move ExtraWeapons to ExtraWeaponsGrid
And put it in ExtraContainer
* Added GuidebooksGrid and GuidebookUnit
These are the display components for Guidebooks in the WeaponGrid
* Visual adjustments to summon grid
* Add Empty class to weapons when unit is unfilled
* Implement GuidebooksGrid in WeaponGrid
* Remove extra switch
* Remove old dependencies and props
* Implement searching for/adding guidebooks to party
* Update styles
* Fix dependency
* Properly determine when extra container should display
* Change to 1-indexing for guidebooks
* Add support for removing guidebooks
* Display guidebook validation error
* Move read only buttons to PartyHeader
Also broke up tokens and made them easier to render
* Add guidebooks to DetailsObject
* Remove preview when on mobile sizes
* Implement raid combobox (#311)
* Add ellipsis icon
* Reduce size of tokens
* Move UpdateToast to toasts folder
* Update variables.scss
* Add reps for grid objects
These reps act like the existing PartyRep except for Characters and Summons, as well as a new component just for Weapons.
They only render the grid of objects and nothing else.
Eventually PartyRep will use WeaponRep
* Added RepSegment
This is a Character, Weapon or Summon rep wrapped with an input and label for use in a SegmentedControl
* Modify PartySegmentedControl to use RepSegments
This will not work on mobile yet, where it should gracefully degrade to a normal SegmentedControl with only text
* Extract URL copied and Remixed toasts into files
* Extract delete team alert into a file
Also, to support this:
* Added `Destructive` class to Button
* Added `primaryActionClassName` prop to Alert
* Added an alert for when remixing teams
* Began refactoring PartyDetails into several files
* PartyHeader will live at the top, above the new segmented control
* PartyDetails stays below, only showing remixed teams and the description
* PartyDropdown handles the new ... menu
* Remove duplicated code
This is description and remix code that is still in `PartyDetails`
* Small fixes for weapon grid
* Add placeholder image for guidebooks
* Add localizations
* Add Guidebook type and update other types
* Update gitignore
Don't commit guidebook images
* Indicate if a dialog is scrollable
We had broken paging in the infinite scroll component. Turning off "scrolling" at the dialog levels fixes it without adding scrollbars in environments that persistently show them
* Add ExtraContainer
This is the purple container that will contain additional weapons and sephira guidebooks
* Move ExtraWeapons to ExtraWeaponsGrid
And put it in ExtraContainer
* Added GuidebooksGrid and GuidebookUnit
These are the display components for Guidebooks in the WeaponGrid
* Visual adjustments to summon grid
* Add Empty class to weapons when unit is unfilled
* Implement GuidebooksGrid in WeaponGrid
* Remove extra switch
* Remove old dependencies and props
* Implement searching for/adding guidebooks to party
* Update styles
* Fix dependency
* Properly determine when extra container should display
* Change to 1-indexing for guidebooks
* Add support for removing guidebooks
* Display guidebook validation error
* Move read only buttons to PartyHeader
Also broke up tokens and made them easier to render
* Add guidebooks to DetailsObject
* Add raid placeholder string to locale
* Update .gitignore
* Update and reorganize localization files
* Update types
Added RaidGroup and updated Raid, then updated dependent types and objects
* Update dependencies
* Update react and react-dom to at least 18.0.0
* Install cmdk
* Rename Arrow.svg to Chevron.svg
Also added a new Arrow.svg with a stem
* Add api call for raidGroups and update pages
Pages fetch raids and store them in the app state. We needed to update this to pull raid groups instead
* Update SegmentedControl component
* Add className and blended properties
* Segment gets flex-grow
* Update Select component
* data-placeholder style should match only if true
* Adjust corner radius to match cards instead of inputs
* Fix classNames call in SelectItem
* Remove raid prop from Party
* Add Popover component
* Popover is a wrapper of Radix's Popover component that we will use to wrap the combobox.
* Move styles that were in PopoverContent.scss to Popover.scss
* Add Command component
The Command component is a wrapper over CMDK's Command component. Pretty much every object in that library is wrapped here. We will use this for the guts of our combobox.
* Add RaidCombobox and RaidItem components
* RaidCombobox combines Popover and Command to create an experience where users can browse through raids by section, search them and sort them.
* RaidItem is effectively a copy-paste of SelectItem using CommandItem, adding some raid-specific styles and elements
* Updates themes and variables
* Replace RaidDropdown with RaidCombobox
* Add small shadow to Tooltip
* Update side offset for Popover
* Update CharLimitedFieldset class name
* Add clear button to Combobox input
* It only shows up when there is text in the input
* Clicking it clears the text in the input
* It uses CharLimitedFieldset's classes
* ChatGPT helped me refactor RaidCombobox
* Further refactoring of RaidCombobox
* Deploy content update (#309)
* Update the updates page with new items (#306)
* Add Nier and Estarriola uncaps (#308)
* Update the updates page with new items (#306) (#307)
* Update .gitignore
* Add Nier and Estarriola uncaps
* Fix uncaps treated as new characters
* Make combobox keyboard accessible
* Style updates
* Refactor accessibility code
* Add translation for "Selected" text
* Change selects to be poppers for consistency
We can't make the new Raid combobox appear over the input like the macOS behavior, so we change all selects to be normal popper behavior
* Set raid groups on teams page
* Implement in FilterBar
* Fix styles for combobox input
* Remove RaidDropdown component
* Update index.scss
* Remove preview when on mobile sizes
* Fix some mobile styles
* Add farming raid option
* Increase height slightly
* Small refactor
* Implement Edit team modal (#312)
* Small refactor to CharLimitedFieldset
Some methods were renamed for clarity. <input> props are actually put on the input properly.
* Add tabindex to Popover trigger
* Add tabindex to Switch and SwitchTableField
* Add tabindex to DurationInput
* Add new properties
* Added guidebooks to RaidGroup
* Added auto_summon to Party
* Conditionally render description in TableField
* Improve SwitchTableField
* Add support for passing in classes
* Add support for passing a disabled prop
* Pass description to TableField
* Right-align switch
* Add support for Extra color switch
* Align SliderTableField input to right
* Align SelectTableField input to right
* Update placeholder styles
* Fix empty state on DurationInput
* Remove tabindex from DurationInput
* Update InputTableField
Allow for passing down input properties and remove fixed width
* Fix dialog footer styles
* Update dialog and overlay z-index
* Add styles to TableField
Added styles for numeric inputs, disabled inputs, and generally cleaning things up
* Add guidebooks to RaidCombobox + styles
* Added guidebooks to the dummy raid group
* Fix background color
* Make less tall
* Implement EditPartyModal
EditPartyModal takes functionality that was in PartyHeader and puts it in a modal dialog. This lets us add fields and reduces the complexity of other components. Translations were also added.
* Remove edit functionality
* Add darker shadow to Select
* Properly send raid ID to server
* Show Extra grids based on selected raid
* Fix EX badge colors
* Use child as value in normal textarea
* Remove toggle ability from Extra grids
* Remove edit functionality from PartyDetails
* Fix type error
* Add quick summons (#313)
* Delete yarn.lock
* Add quick summon endpoint
* Add quick summon to GridSummon type
* Add icons
* Add quick summon to SummonUnit
* Quick summon icon is displayed on hover
* Updates the server when clicked
* Fix spacing on WeaponGrid
* Fixes for reactivity and performance (#314)
* Remove editable styles
* Use snapshot for segment reps
Using snapshots lets that data be reactive.
Also removed extra dependencies and fixed a bug in how SummonRep displayed sub-summons
* Don't display QuickSummon on friends, subaura
* Hotfix refreshing when switching tabs
* Another hotfix for tab switching
* Update awakening (#315)
* Add Awakening type and remove old defs
We remove the flat list of awakening data, as we will be pulling data from the database
* Update types to use new Awakening type
* Update WeaponUnit for Grand weapon awakenings
* Update object modals
We needed to update CharacterModal and WeaponModal to display awakenings from the new data format. However, the component used (`SelectWithInput`) was tied to AX Skills in a way that would take exponentially more time to resolve.
Instead, we forked `SelectWithInput` into `AwakeningSelectWithInput` and did our work there.
`AwakeningSelect` was found to be redundant, so it was removed.
* Update hovercards
* Add order to NO_AWAKENING
* Add ability to remove job skills (#317)
* Add Awakening type and remove old defs
We remove the flat list of awakening data, as we will be pulling data from the database
* Update types to use new Awakening type
* Update WeaponUnit for Grand weapon awakenings
* Update object modals
We needed to update CharacterModal and WeaponModal to display awakenings from the new data format. However, the component used (`SelectWithInput`) was tied to AX Skills in a way that would take exponentially more time to resolve.
Instead, we forked `SelectWithInput` into `AwakeningSelectWithInput` and did our work there.
`AwakeningSelect` was found to be redundant, so it was removed.
* Update hovercards
* Add max-height to Select
* Allow styling of Select modal with className prop
* Add Job class to Job select
* Add localizations for removing job skills
* Add endpoint for removing job skills
* Implement removing job skills
We added a (...) button next to each editable job skill that opens a context menu that will allow the user to remove the job skill. An alert is presented to make sure the user is sure before proceeding.
As part of this change, some minor restyling of JobSkillItem was necessary
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Added World Series to weapon series empty state (#293)
* Push 2023/03 updates to main (#292)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Add World series to empty state
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Enables advanced filters in collections (#289)
* Add skeleton of FilterModal
* Install react-slider from Radix
* Move AccountModal styles to more generic place
* Make generic TableField and move styles
This is so we have a base for other table rows that use different interactive elements
* Implement custom Slider component
This inherits from Radix's Slider
* Implement SliderTableField
* Implemented SwitchTableField
* Change enabled switch color
* Implement InputTableField
* Update modal skeleton
* Added localizations for Advanced filters
* Update styles for various components
Added some new colors and fixed spacing
* Added value reporting and fixed a cycle error
* Added default values, clearing filters, etc
* Default values
* Ability to clear filters
* Receiving values from components
* Fix maximum cycle depth exceeded error
* Update TableFields to not error
Also optional value is required
* Create FilterSet.d.ts
* Send filtersets to FilterModal
This sends the default filterset and the user's filterset to the filter modal.
The default filterset is used when resetting all filters. The users filterset is used so that it is populated with the user's values when they open the modal
* Add new localizations
* Change types and add default filterset object
* Add fast-deep-equal package
* Change value in table fields
* Input table fields need to be able to be empty
* Slider table fields should default to 0 if value isn't provided
* Set width of Select in table field in Filter dialog
* Add style for filter button with filters active
* Swap to using selects for some boolean fields
Charge Attack, Full Auto, and Auto Guard are not boolean values since the user can select (and the default should be) to show both on and off values. We swap to using a SelectTableField here to represent this difference.
We also added logic for Full Auto and Auto Guard fields since they are tied together in some cases (you can't show Auto Guard teams that have Full Auto disabled)
* Populate values from defaultFilterSet
* Update how we save and propagate filters
We save filterset in a local state, because the FilterBar will send it down to us from cookies.
We then set each individual property from that filter set.
We set inputs to have a placeholder, as max buttons and max turns could not be set (null). Then, we only send those fields when they have a value provided by the user.
* Remove default filterset
This was moved to a utils/ file
* Propagate filters from modal
This updates how we handle filter propagation to accommodate the advanced ones. The icon lights up when filters are active.
* Implement advanced filters on Teams page
* Add skeleton of FilterModal
* Make generic TableField and move styles
This is so we have a base for other table rows that use different interactive elements
* Implement custom Slider component
This inherits from Radix's Slider
* Implement SliderTableField
* Implemented SwitchTableField
* Implement InputTableField
* Update modal skeleton
* Added localizations for Advanced filters
* Update styles for various components
Added some new colors and fixed spacing
* Added value reporting and fixed a cycle error
* Added default values, clearing filters, etc
* Default values
* Ability to clear filters
* Receiving values from components
* Fix maximum cycle depth exceeded error
* Update TableFields to not error
Also optional value is required
* Create FilterSet.d.ts
* Send filtersets to FilterModal
This sends the default filterset and the user's filterset to the filter modal.
The default filterset is used when resetting all filters. The users filterset is used so that it is populated with the user's values when they open the modal
* Add new localizations
* Change types and add default filterset object
* Change value in table fields
* Input table fields need to be able to be empty
* Slider table fields should default to 0 if value isn't provided
* Set width of Select in table field in Filter dialog
* Add style for filter button with filters active
* Swap to using selects for some boolean fields
Charge Attack, Full Auto, and Auto Guard are not boolean values since the user can select (and the default should be) to show both on and off values. We swap to using a SelectTableField here to represent this difference.
We also added logic for Full Auto and Auto Guard fields since they are tied together in some cases (you can't show Auto Guard teams that have Full Auto disabled)
* Populate values from defaultFilterSet
* Update how we save and propagate filters
We save filterset in a local state, because the FilterBar will send it down to us from cookies.
We then set each individual property from that filter set.
We set inputs to have a placeholder, as max buttons and max turns could not be set (null). Then, we only send those fields when they have a value provided by the user.
* Remove default filterset
This was moved to a utils/ file
* Propagate filters from modal
This updates how we handle filter propagation to accommodate the advanced ones. The icon lights up when filters are active.
* GridRep adjustments
* Properly unset mainhand when cells get reused and the new team doesnt have one
* Slightly better styling to make the grid more correct
* Fix bad merge
* Add advanced filter support to saved and profile pages
* Fix auto guard text
* Ensure fetchTeams callback is updated with filters
* Add auto guard icon to GridRep
* Disable max buttons and turns
* Fix build errors
* Organize components (#298)
* Deploy advanced filters (#297)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Added World Series to weapon series empty state (#293)
* Push 2023/03 updates to main (#292)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Add World series to empty state
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Enables advanced filters in collections (#289)
* Add skeleton of FilterModal
* Install react-slider from Radix
* Move AccountModal styles to more generic place
* Make generic TableField and move styles
This is so we have a base for other table rows that use different interactive elements
* Implement custom Slider component
This inherits from Radix's Slider
* Implement SliderTableField
* Implemented SwitchTableField
* Change enabled switch color
* Implement InputTableField
* Update modal skeleton
* Added localizations for Advanced filters
* Update styles for various components
Added some new colors and fixed spacing
* Added value reporting and fixed a cycle error
* Added default values, clearing filters, etc
* Default values
* Ability to clear filters
* Receiving values from components
* Fix maximum cycle depth exceeded error
* Update TableFields to not error
Also optional value is required
* Create FilterSet.d.ts
* Send filtersets to FilterModal
This sends the default filterset and the user's filterset to the filter modal.
The default filterset is used when resetting all filters. The users filterset is used so that it is populated with the user's values when they open the modal
* Add new localizations
* Change types and add default filterset object
* Add fast-deep-equal package
* Change value in table fields
* Input table fields need to be able to be empty
* Slider table fields should default to 0 if value isn't provided
* Set width of Select in table field in Filter dialog
* Add style for filter button with filters active
* Swap to using selects for some boolean fields
Charge Attack, Full Auto, and Auto Guard are not boolean values since the user can select (and the default should be) to show both on and off values. We swap to using a SelectTableField here to represent this difference.
We also added logic for Full Auto and Auto Guard fields since they are tied together in some cases (you can't show Auto Guard teams that have Full Auto disabled)
* Populate values from defaultFilterSet
* Update how we save and propagate filters
We save filterset in a local state, because the FilterBar will send it down to us from cookies.
We then set each individual property from that filter set.
We set inputs to have a placeholder, as max buttons and max turns could not be set (null). Then, we only send those fields when they have a value provided by the user.
* Remove default filterset
This was moved to a utils/ file
* Propagate filters from modal
This updates how we handle filter propagation to accommodate the advanced ones. The icon lights up when filters are active.
* Implement advanced filters on Teams page
* Add skeleton of FilterModal
* Make generic TableField and move styles
This is so we have a base for other table rows that use different interactive elements
* Implement custom Slider component
This inherits from Radix's Slider
* Implement SliderTableField
* Implemented SwitchTableField
* Implement InputTableField
* Update modal skeleton
* Added localizations for Advanced filters
* Update styles for various components
Added some new colors and fixed spacing
* Added value reporting and fixed a cycle error
* Added default values, clearing filters, etc
* Default values
* Ability to clear filters
* Receiving values from components
* Fix maximum cycle depth exceeded error
* Update TableFields to not error
Also optional value is required
* Create FilterSet.d.ts
* Send filtersets to FilterModal
This sends the default filterset and the user's filterset to the filter modal.
The default filterset is used when resetting all filters. The users filterset is used so that it is populated with the user's values when they open the modal
* Add new localizations
* Change types and add default filterset object
* Change value in table fields
* Input table fields need to be able to be empty
* Slider table fields should default to 0 if value isn't provided
* Set width of Select in table field in Filter dialog
* Add style for filter button with filters active
* Swap to using selects for some boolean fields
Charge Attack, Full Auto, and Auto Guard are not boolean values since the user can select (and the default should be) to show both on and off values. We swap to using a SelectTableField here to represent this difference.
We also added logic for Full Auto and Auto Guard fields since they are tied together in some cases (you can't show Auto Guard teams that have Full Auto disabled)
* Populate values from defaultFilterSet
* Update how we save and propagate filters
We save filterset in a local state, because the FilterBar will send it down to us from cookies.
We then set each individual property from that filter set.
We set inputs to have a placeholder, as max buttons and max turns could not be set (null). Then, we only send those fields when they have a value provided by the user.
* Remove default filterset
This was moved to a utils/ file
* Propagate filters from modal
This updates how we handle filter propagation to accommodate the advanced ones. The icon lights up when filters are active.
* GridRep adjustments
* Properly unset mainhand when cells get reused and the new team doesnt have one
* Slightly better styling to make the grid more correct
* Fix bad merge
* Add advanced filter support to saved and profile pages
* Fix auto guard text
* Ensure fetchTeams callback is updated with filters
* Add auto guard icon to GridRep
* Disable max buttons and turns
* Fix build errors
* Organize components into folders
* Fix transcendence popover levels
* Remove extra styles
* Add Storybook
* Delete Home.module.css
* Update paths
* Fix popover arrow
* Fix import paths
* Fix scrollbars in search
* Add type to further fix TranscendencePopover
* Add background-size to 1x in hidpiImage mixin
* Fix hovercard scrollbar
* Move components
* Fix ElementToggle on smaller devices
* Change default filterset
Min characters should be 2, not 3
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Added World Series to weapon series empty state (#293)
* Push 2023/03 updates to main (#292)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Add World series to empty state
* Added items from 2023/03 Legfest and 2023/03/30 update (#290)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Missed items (#291)
* Added avatars (#286)
* Deploy #287 (#288)
* Added avatars
* Added content from the 2023/03/22 update (#287)
* Added avatars (#286)
* Added localizations
* Added update, changed CSS
* Add logic for showing Lucifer uncap and 250 art
* Added new weapon series
* Added updates
* Add more items
* Enables advanced filters in collections (#289)
* Add skeleton of FilterModal
* Install react-slider from Radix
* Move AccountModal styles to more generic place
* Make generic TableField and move styles
This is so we have a base for other table rows that use different interactive elements
* Implement custom Slider component
This inherits from Radix's Slider
* Implement SliderTableField
* Implemented SwitchTableField
* Change enabled switch color
* Implement InputTableField
* Update modal skeleton
* Added localizations for Advanced filters
* Update styles for various components
Added some new colors and fixed spacing
* Added value reporting and fixed a cycle error
* Added default values, clearing filters, etc
* Default values
* Ability to clear filters
* Receiving values from components
* Fix maximum cycle depth exceeded error
* Update TableFields to not error
Also optional value is required
* Create FilterSet.d.ts
* Send filtersets to FilterModal
This sends the default filterset and the user's filterset to the filter modal.
The default filterset is used when resetting all filters. The users filterset is used so that it is populated with the user's values when they open the modal
* Add new localizations
* Change types and add default filterset object
* Add fast-deep-equal package
* Change value in table fields
* Input table fields need to be able to be empty
* Slider table fields should default to 0 if value isn't provided
* Set width of Select in table field in Filter dialog
* Add style for filter button with filters active
* Swap to using selects for some boolean fields
Charge Attack, Full Auto, and Auto Guard are not boolean values since the user can select (and the default should be) to show both on and off values. We swap to using a SelectTableField here to represent this difference.
We also added logic for Full Auto and Auto Guard fields since they are tied together in some cases (you can't show Auto Guard teams that have Full Auto disabled)
* Populate values from defaultFilterSet
* Update how we save and propagate filters
We save filterset in a local state, because the FilterBar will send it down to us from cookies.
We then set each individual property from that filter set.
We set inputs to have a placeholder, as max buttons and max turns could not be set (null). Then, we only send those fields when they have a value provided by the user.
* Remove default filterset
This was moved to a utils/ file
* Propagate filters from modal
This updates how we handle filter propagation to accommodate the advanced ones. The icon lights up when filters are active.
* Implement advanced filters on Teams page
* Add skeleton of FilterModal
* Make generic TableField and move styles
This is so we have a base for other table rows that use different interactive elements
* Implement custom Slider component
This inherits from Radix's Slider
* Implement SliderTableField
* Implemented SwitchTableField
* Implement InputTableField
* Update modal skeleton
* Added localizations for Advanced filters
* Update styles for various components
Added some new colors and fixed spacing
* Added value reporting and fixed a cycle error
* Added default values, clearing filters, etc
* Default values
* Ability to clear filters
* Receiving values from components
* Fix maximum cycle depth exceeded error
* Update TableFields to not error
Also optional value is required
* Create FilterSet.d.ts
* Send filtersets to FilterModal
This sends the default filterset and the user's filterset to the filter modal.
The default filterset is used when resetting all filters. The users filterset is used so that it is populated with the user's values when they open the modal
* Add new localizations
* Change types and add default filterset object
* Change value in table fields
* Input table fields need to be able to be empty
* Slider table fields should default to 0 if value isn't provided
* Set width of Select in table field in Filter dialog
* Add style for filter button with filters active
* Swap to using selects for some boolean fields
Charge Attack, Full Auto, and Auto Guard are not boolean values since the user can select (and the default should be) to show both on and off values. We swap to using a SelectTableField here to represent this difference.
We also added logic for Full Auto and Auto Guard fields since they are tied together in some cases (you can't show Auto Guard teams that have Full Auto disabled)
* Populate values from defaultFilterSet
* Update how we save and propagate filters
We save filterset in a local state, because the FilterBar will send it down to us from cookies.
We then set each individual property from that filter set.
We set inputs to have a placeholder, as max buttons and max turns could not be set (null). Then, we only send those fields when they have a value provided by the user.
* Remove default filterset
This was moved to a utils/ file
* Propagate filters from modal
This updates how we handle filter propagation to accommodate the advanced ones. The icon lights up when filters are active.
* GridRep adjustments
* Properly unset mainhand when cells get reused and the new team doesnt have one
* Slightly better styling to make the grid more correct
* Fix bad merge
* Add advanced filter support to saved and profile pages
* Fix auto guard text
* Ensure fetchTeams callback is updated with filters
* Add auto guard icon to GridRep
* Disable max buttons and turns
* Fix build errors
* Fix character hovercard z-index
* Allow unauth users to edit their remixed parties
* Adds ultimate_mastery and renamed master_level to defs
* Add granblue_id to weapon keys
* Add granblue_id to AX skills
* Add granblue_id to data-granblue-id
* Added bugfixes to update notes
* Fix types where ItemSelect is used
These need an empty `granblue_id`
retrieveCookie fetches and parses cookies. This util should help us further reduce places where we're extracting and parsing with cookies in the business logic
This function sets axios's default headers to be included before all queries.
We need to call `setUserToken` in _app.tsx so that the defaults are set before every client-side call, and we also need to call it in every instance of `setServerSideProps`.
As a result, wherever we use `getCookies` and construct a `headers` object, we can remove it. Right now, we've only removed it on the top-level pages.