From ad792145d000e3d4862d4701af2d553a5c3f852e Mon Sep 17 00:00:00 2001 From: Diego Ballesteros Date: Tue, 9 Apr 2024 09:08:40 -0500 Subject: [PATCH] feat: updated depdencies and encounter adjustments, changes to remove deprecated features --- .eslintrc.json | 1 + cypress/e2e/other/Options.spec.ts | 14 +- package.json | 35 +- src/App.tsx | 2 +- src/common/Back/Back.tsx | 2 +- src/common/DetailSelector/DetailSelector.tsx | 2 +- .../EncounterSelector/EncounterSelector.tsx | 2 +- src/common/ItemSelector/ItemSelector.tsx | 2 +- src/common/Page/Page.tsx | 2 +- .../PokemonSelector/PokemonSelector.tsx | 2 +- src/components/About/About.tsx | 2 +- src/components/AddGame/AddGame.tsx | 2 +- src/components/Badges/Badges.tsx | 2 +- .../elements/BadgeDetail/BadgeDetail.tsx | 2 +- .../elements/BadgeEditor/BadgeEditor.tsx | 2 +- .../Badges/elements/BadgePage/BadgePage.tsx | 6 +- .../CustomBadgeEditor/CustomBadgeEditor.tsx | 2 +- src/components/Builder/Builder.tsx | 2 +- .../Builder/elements/Coverage/Coverage.tsx | 2 +- src/components/Calculator/Calculator.tsx | 2 +- .../ButtonController/ButtonController.tsx | 2 +- .../CalculatorHeader/CalculatorHeader.tsx | 2 +- .../Calculator/elements/General/General.tsx | 2 +- .../elements/MainField/MainField.tsx | 2 +- .../Calculator/elements/Modifier/Modifier.tsx | 2 +- .../MoveController/MoveController.tsx | 2 +- .../PokeController/PokeController.tsx | 2 +- .../elements/PokemonSlot/PokemonSlot.tsx | 2 +- .../Calculator/elements/Range/Range.tsx | 2 +- .../elements/SideField/SideField.tsx | 2 +- .../Calculator/elements/Stats/Stats.tsx | 2 +- src/components/Changelog/Changelog.tsx | 2 +- src/components/Export/Export.tsx | 2 +- src/components/Filter/Filter.tsx | 2 +- src/components/Import/Import.tsx | 2 +- src/components/Member/Member.tsx | 2 +- src/components/Move/Move.tsx | 2 +- src/components/MoveSelector/MoveSelector.tsx | 2 +- src/components/Moves/Moves.tsx | 2 +- src/components/Natures/Natures.tsx | 2 +- src/components/PokeInfo/PokeInfo.tsx | 2 +- src/components/PokemonType/PokemonType.tsx | 8 +- src/components/Pokestats/Pokestats.tsx | 2 +- .../DisplaySettings/DisplaySettings.tsx | 2 +- .../Pokestats/elements/Image/Image.tsx | 8 +- .../Pokestats/elements/Summary/Summary.tsx | 8 +- src/components/Pokestats/elements/Tip/Tip.tsx | 2 +- src/components/Report/Report.tsx | 2 +- src/components/Rules/Rules.tsx | 2 +- .../Rules/elements/AddRule/AddRule.tsx | 6 +- .../elements/RuleContent/RuleContent.tsx | 2 +- .../Rules/elements/RuleEditor/RuleEditor.tsx | 2 +- src/components/Settings/Settings.tsx | 2 +- .../Settings/elements/CustomStatuses.tsx | 2 +- src/components/Share/Share.tsx | 2 +- src/components/Tracker/Tracker.tsx | 2 +- .../elements/AddEncounter/AddEncounter.tsx | 2 +- .../Tracker/elements/Detail/Detail.tsx | 2 +- .../elements/Encounters/Encounters.tsx | 23 +- .../Tracker/elements/Evolve/Evolve.tsx | 2 +- src/components/Tracker/elements/FAB/FAB.tsx | 2 +- .../Tracker/elements/Nature/Nature.tsx | 2 +- .../Tracker/elements/Nickname/Nickname.tsx | 2 +- .../Tracker/elements/Pokemon/Pokemon.tsx | 6 +- .../elements/RangeSelector/RangeSelector.tsx | 2 +- .../ResetEncounters/ResetEncounters.tsx | 2 +- .../elements/ScrollList/ScrollList.tsx | 8 +- src/components/Tracker/elements/Swap/Swap.tsx | 2 +- src/components/Type/Type.tsx | 2 +- src/components/UpdateSW/UpdateSW.tsx | 2 +- src/constants/details.ts | 4 +- src/constants/filters.ts | 18 +- src/constants/locations/X_Y.ts | 4 +- src/error/CalcErrorBoundary.tsx | 2 +- src/error/ErrorBoundary.tsx | 2 +- src/index.tsx | 20 +- src/routes/AppRouter.tsx | 2 +- src/store.ts | 2 +- yarn.lock | 808 +++++++++++------- 79 files changed, 643 insertions(+), 460 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index cebda48f..7318c5e4 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -22,6 +22,7 @@ "react-app/jest", "airbnb-typescript", "plugin:@typescript-eslint/recommended", + "plugin:deprecation/recommended", "prettier", "plugin:prettier/recommended" ], diff --git a/cypress/e2e/other/Options.spec.ts b/cypress/e2e/other/Options.spec.ts index 9a93527c..2500f85f 100644 --- a/cypress/e2e/other/Options.spec.ts +++ b/cypress/e2e/other/Options.spec.ts @@ -99,7 +99,19 @@ describe('Options', () => { cy.contains('SUGGESTED').should('not.exist'); }); - it('Dark mode', () => { + it.only('Dark mode', () => { + cy.clearLocalStorage(); + cy.visit('/', { + onBeforeLoad: (win) => { + cy.stub(win, 'matchMedia') + .withArgs('(prefers-color-scheme:dark)') + .returns({ + matches: false, + addListener: () => {}, + }); + }, + }); + cy.get('[data-testid=options]').click(); cy.get('[data-testid=app]').should('have.css', 'background-color', 'rgb(255, 255, 255)'); cy.contains('Settings').click(); cy.get('[data-testid="settings-darkmode"]').click(); diff --git a/package.json b/package.json index e3c79bb2..f286c188 100644 --- a/package.json +++ b/package.json @@ -27,24 +27,24 @@ }, "private": true, "dependencies": { - "@sentry/react": "^7.57.0", - "@sentry/tracing": "^7.57.0", - "@smogon/calc": "^0.7.0", + "@sentry/browser": "^7.109.0", + "@sentry/react": "^7.109.0", + "@smogon/calc": "^0.9.0", "@supabase/supabase-js": "^1.35.7", "html-to-image": "^1.11.11", "i18next": "22.4.15", - "immer": "^10.0.2", + "immer": "^10.0.4", "react": "^18.2.0", "react-dom": "^18.2.0", "react-i18next": "12.2.2", - "react-router-dom": "^6.14.1", + "react-router-dom": "^6.22.3", "react-scripts": "5.0.1", "react-toastify": "^9.1.3", - "react-window": "^1.8.9", + "react-window": "^1.8.10", "semantic-ui-css": "^2.5.0", - "semantic-ui-react": "^2.1.4", + "semantic-ui-react": "^2.1.5", "typescript": "4.5.5", - "zustand": "^4.3.8" + "zustand": "^4.5.2" }, "scripts": { "analyze": "source-map-explorer ''build/static/js/*.js'", @@ -77,27 +77,28 @@ ] }, "devDependencies": { - "@cypress/code-coverage": "^3.10.8", + "@cypress/code-coverage": "^3.12.33", "@cypress/instrument-cra": "^1.4.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", - "@types/jest": "^29.5.2", - "@types/lodash": "^4.14.195", - "@types/node": "^20.3.3", - "@types/react": "^18.2.14", - "@types/react-dom": "^18.2.6", + "@types/jest": "^29.5.12", + "@types/lodash": "^4.17.0", + "@types/node": "^20.12.5", + "@types/react": "^18.2.74", + "@types/react-dom": "^18.2.24", "@types/react-router-dom": "^5.3.3", - "@types/react-window": "^1.8.5", + "@types/react-window": "^1.8.8", "@typescript-eslint/eslint-plugin": "5.7.0", "@typescript-eslint/parser": "5.7.0", - "cypress": "^12.16.0", + "cypress": "^13.7.2", "cypress-file-upload": "^5.0.8", - "cypress-localstorage-commands": "^2.2.3", + "cypress-localstorage-commands": "^2.2.5", "eslint": "8.4.1", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^16.1.2", "eslint-config-prettier": "^8.8.0", + "eslint-plugin-deprecation": "^2.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-prettier": "^4.2.1", diff --git a/src/App.tsx b/src/App.tsx index cb25a543..b8add524 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -15,7 +15,7 @@ import AppRouter from 'routes/AppRouter'; import useStore from 'store'; import styles from './App.module.scss'; -function App(): JSX.Element { +function App(): React.JSX.Element { const navigate = useNavigate(); const { t } = useTranslation('common'); const darkMode = useStore(useCallback((state) => state.darkMode, [])); diff --git a/src/common/Back/Back.tsx b/src/common/Back/Back.tsx index aecd221c..619653e7 100644 --- a/src/common/Back/Back.tsx +++ b/src/common/Back/Back.tsx @@ -6,7 +6,7 @@ import Icon from 'semantic-ui-react/dist/commonjs/elements/Icon'; import useStore from 'store'; import styles from './Back.module.scss'; -function Back(): JSX.Element { +function Back(): React.JSX.Element { const { t } = useTranslation('common'); const navigate = useNavigate(); const darkMode = useStore(useCallback((state) => state.darkMode, [])); diff --git a/src/common/DetailSelector/DetailSelector.tsx b/src/common/DetailSelector/DetailSelector.tsx index 668b2c7f..62785cb1 100644 --- a/src/common/DetailSelector/DetailSelector.tsx +++ b/src/common/DetailSelector/DetailSelector.tsx @@ -24,7 +24,7 @@ function DetailSelector({ details, handleDetail, limitGen, -}: DetailSelectorProps): JSX.Element { +}: DetailSelectorProps): React.JSX.Element { const { t } = useTranslation('common'); const [open, setOpen] = useState(false); const itemSize = useRemtoPx(); diff --git a/src/common/EncounterSelector/EncounterSelector.tsx b/src/common/EncounterSelector/EncounterSelector.tsx index e43c21ce..9b155647 100644 --- a/src/common/EncounterSelector/EncounterSelector.tsx +++ b/src/common/EncounterSelector/EncounterSelector.tsx @@ -24,7 +24,7 @@ function EncounterSelector({ encounters, handleEncounter, limitGen, -}: EncounterSelectorProps): JSX.Element { +}: EncounterSelectorProps): React.JSX.Element { const { t } = useTranslation('common'); const [open, setOpen] = useState(false); const itemSize = useRemtoPx(); diff --git a/src/common/ItemSelector/ItemSelector.tsx b/src/common/ItemSelector/ItemSelector.tsx index b5a278ea..4949d6f8 100644 --- a/src/common/ItemSelector/ItemSelector.tsx +++ b/src/common/ItemSelector/ItemSelector.tsx @@ -26,7 +26,7 @@ const OPTIONS = MY_ITEMS.map((item) => { }; }); -function ItemSelector({ dataTestId, item, onChange }: ItemSelectorProps): JSX.Element { +function ItemSelector({ dataTestId, item, onChange }: ItemSelectorProps): React.JSX.Element { const { t } = useTranslation('calculator'); return ( diff --git a/src/common/Page/Page.tsx b/src/common/Page/Page.tsx index ee88c76f..9261c3fe 100644 --- a/src/common/Page/Page.tsx +++ b/src/common/Page/Page.tsx @@ -6,7 +6,7 @@ interface PageProps { header: string; } -function Page({ children, header }: PageProps): JSX.Element { +function Page({ children, header }: PageProps): React.JSX.Element { return (
diff --git a/src/common/PokemonSelector/PokemonSelector.tsx b/src/common/PokemonSelector/PokemonSelector.tsx index 7a334737..91070399 100644 --- a/src/common/PokemonSelector/PokemonSelector.tsx +++ b/src/common/PokemonSelector/PokemonSelector.tsx @@ -32,7 +32,7 @@ function PokemonSelector({ limitGen, suggestions, tooltip = false, -}: PokemonSelectorProps): JSX.Element { +}: PokemonSelectorProps): React.JSX.Element { const { t } = useTranslation('common'); const [open, setOpen] = useState(false); const values = useFilter(); diff --git a/src/components/About/About.tsx b/src/components/About/About.tsx index ba62c8df..c38f6bb1 100644 --- a/src/components/About/About.tsx +++ b/src/components/About/About.tsx @@ -8,7 +8,7 @@ import apple from 'assets/svg/Download_on_the_App_Store_Badge_US-UK_RGB_blk_0929 import { ReactComponent as MicrosoftSVG } from 'assets/svg/English_get.svg'; import styles from './About.module.scss'; -function About(): JSX.Element { +function About(): React.JSX.Element { const { t } = useTranslation('about'); return ( diff --git a/src/components/AddGame/AddGame.tsx b/src/components/AddGame/AddGame.tsx index 302e5084..5d778b79 100644 --- a/src/components/AddGame/AddGame.tsx +++ b/src/components/AddGame/AddGame.tsx @@ -12,7 +12,7 @@ import styles from './AddGame.module.scss'; const NONE = 'none'; -function AddGame(): JSX.Element { +function AddGame(): React.JSX.Element { const { t } = useTranslation('common'); const [open, setOpen] = useState(false); const [template, setTemplate] = useState(NONE); diff --git a/src/components/Badges/Badges.tsx b/src/components/Badges/Badges.tsx index ed0897e3..1ecd1a25 100644 --- a/src/components/Badges/Badges.tsx +++ b/src/components/Badges/Badges.tsx @@ -5,7 +5,7 @@ import { BADGE_IMAGES } from 'constants/badges'; import useStore from 'store'; import styles from './Badges.module.scss'; -function Badges(): JSX.Element { +function Badges(): React.JSX.Element { const navigate = useNavigate(); const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); const games = useStore(useCallback((state) => state.games, [])); diff --git a/src/components/Badges/elements/BadgeDetail/BadgeDetail.tsx b/src/components/Badges/elements/BadgeDetail/BadgeDetail.tsx index 4fe69d8a..03d5cf04 100644 --- a/src/components/Badges/elements/BadgeDetail/BadgeDetail.tsx +++ b/src/components/Badges/elements/BadgeDetail/BadgeDetail.tsx @@ -24,7 +24,7 @@ interface BadgeDetailProps { selectedDetail: TDetail; } -function BadgeDetail({ selectedDetail }: BadgeDetailProps): JSX.Element { +function BadgeDetail({ selectedDetail }: BadgeDetailProps): React.JSX.Element { const { t } = useTranslation('badges'); const [view, setView] = useState(0); const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); diff --git a/src/components/Badges/elements/BadgeEditor/BadgeEditor.tsx b/src/components/Badges/elements/BadgeEditor/BadgeEditor.tsx index b0a47e91..03f0d35a 100644 --- a/src/components/Badges/elements/BadgeEditor/BadgeEditor.tsx +++ b/src/components/Badges/elements/BadgeEditor/BadgeEditor.tsx @@ -18,7 +18,7 @@ interface BadgeEditorProps { icon?: boolean; } -function BadgeEditor({ icon }: BadgeEditorProps): JSX.Element { +function BadgeEditor({ icon }: BadgeEditorProps): React.JSX.Element { const { t } = useTranslation('badges'); const [open, setOpen] = useState(false); const badges = useStore(useCallback((state) => state.badges, [])); diff --git a/src/components/Badges/elements/BadgePage/BadgePage.tsx b/src/components/Badges/elements/BadgePage/BadgePage.tsx index 3befb771..cd9ee9cd 100644 --- a/src/components/Badges/elements/BadgePage/BadgePage.tsx +++ b/src/components/Badges/elements/BadgePage/BadgePage.tsx @@ -1,4 +1,4 @@ -import { ReactText, useCallback, useEffect, useState } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useNavigate, useParams } from 'react-router-dom'; import Tab from 'semantic-ui-react/dist/commonjs/modules/Tab'; @@ -8,7 +8,7 @@ import DETAILS from 'constants/details'; import useStore from 'store'; import styles from './BadgePage.module.scss'; -function BadgePage(): JSX.Element { +function BadgePage(): React.JSX.Element { const navigate = useNavigate(); const { badge, game } = useParams(); const { t } = useTranslation('badges'); @@ -45,7 +45,7 @@ function BadgePage(): JSX.Element { }) : null; - const handleTabChange = (newIndex: ReactText) => { + const handleTabChange = (newIndex: string | number) => { setTab(Number(newIndex)); }; diff --git a/src/components/Badges/elements/CustomBadgeEditor/CustomBadgeEditor.tsx b/src/components/Badges/elements/CustomBadgeEditor/CustomBadgeEditor.tsx index 34f51d05..3135ef23 100644 --- a/src/components/Badges/elements/CustomBadgeEditor/CustomBadgeEditor.tsx +++ b/src/components/Badges/elements/CustomBadgeEditor/CustomBadgeEditor.tsx @@ -14,7 +14,7 @@ interface CustomBadgeEditorProps { icon?: boolean; } -function CustomBadgeEditor({ icon }: CustomBadgeEditorProps): JSX.Element { +function CustomBadgeEditor({ icon }: CustomBadgeEditorProps): React.JSX.Element { const { t } = useTranslation('badges'); const [open, setOpen] = useState(false); const badges = useStore(useCallback((state) => state.customBadges, [])); diff --git a/src/components/Builder/Builder.tsx b/src/components/Builder/Builder.tsx index f0adb882..b1a6a872 100644 --- a/src/components/Builder/Builder.tsx +++ b/src/components/Builder/Builder.tsx @@ -9,7 +9,7 @@ import useStore from 'store'; import { ReactComponent as PokeballSVG } from 'assets/svg/pokeball.svg'; import styles from './Builder.module.scss'; -function Builder(): JSX.Element { +function Builder(): React.JSX.Element { const { t } = useTranslation('builder'); const team = useStore( useCallback( diff --git a/src/components/Builder/elements/Coverage/Coverage.tsx b/src/components/Builder/elements/Coverage/Coverage.tsx index 324a535f..671615f5 100644 --- a/src/components/Builder/elements/Coverage/Coverage.tsx +++ b/src/components/Builder/elements/Coverage/Coverage.tsx @@ -5,7 +5,7 @@ import { selectBuilderStrong, selectBuilderWeak } from 'selectors'; import useStore from 'store'; import styles from './Coverage.module.scss'; -function Coverage(): JSX.Element { +function Coverage(): React.JSX.Element { const { t } = useTranslation('builder'); const strong = useStore(selectBuilderStrong); const weak = useStore(selectBuilderWeak); diff --git a/src/components/Calculator/Calculator.tsx b/src/components/Calculator/Calculator.tsx index 3da987b8..294d9d66 100644 --- a/src/components/Calculator/Calculator.tsx +++ b/src/components/Calculator/Calculator.tsx @@ -13,7 +13,7 @@ import useStore from 'store'; import { ReactComponent as PokeballSVG } from 'assets/svg/pokeball.svg'; import styles from './Calculator.module.scss'; -function Calculator(): JSX.Element { +function Calculator(): React.JSX.Element { const { t } = useTranslation('common'); const [selected, setSelected] = useState<0 | 1>(0); const calc = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value], [])); diff --git a/src/components/Calculator/elements/ButtonController/ButtonController.tsx b/src/components/Calculator/elements/ButtonController/ButtonController.tsx index 35a72f09..e6eac021 100644 --- a/src/components/Calculator/elements/ButtonController/ButtonController.tsx +++ b/src/components/Calculator/elements/ButtonController/ButtonController.tsx @@ -8,7 +8,7 @@ interface ButtonControllerProps { name: keyof TCalculatorForm; } -function ButtonController({ label, name }: ButtonControllerProps): JSX.Element { +function ButtonController({ label, name }: ButtonControllerProps): React.JSX.Element { const form = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value]?.form, [])); const update = useStore(useCallback((state) => state.updateDefaultValues, [])); diff --git a/src/components/Calculator/elements/CalculatorHeader/CalculatorHeader.tsx b/src/components/Calculator/elements/CalculatorHeader/CalculatorHeader.tsx index 3aee7470..46e4fa29 100644 --- a/src/components/Calculator/elements/CalculatorHeader/CalculatorHeader.tsx +++ b/src/components/Calculator/elements/CalculatorHeader/CalculatorHeader.tsx @@ -24,7 +24,7 @@ export function getDesc(result: Result, t: TFunction): string { } } -function CalculatorHeader(): JSX.Element { +function CalculatorHeader(): React.JSX.Element { const { t } = useTranslation('calculator'); const [expanded, setExpanded] = useState(false); const [primary, setPrimary] = useState<[position: 'attacker' | 'defender', index: number]>([ diff --git a/src/components/Calculator/elements/General/General.tsx b/src/components/Calculator/elements/General/General.tsx index a152036c..3e178568 100644 --- a/src/components/Calculator/elements/General/General.tsx +++ b/src/components/Calculator/elements/General/General.tsx @@ -18,7 +18,7 @@ interface GeneralProps { pokemon: '1' | '2'; } -function General({ encounters, pokemon }: GeneralProps): JSX.Element { +function General({ encounters, pokemon }: GeneralProps): React.JSX.Element { const { t } = useTranslation('calculator'); const form = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value]?.form, [])); const update = useStore(useCallback((state) => state.updateDefaultValues, [])); diff --git a/src/components/Calculator/elements/MainField/MainField.tsx b/src/components/Calculator/elements/MainField/MainField.tsx index 20b8fabe..d437279d 100644 --- a/src/components/Calculator/elements/MainField/MainField.tsx +++ b/src/components/Calculator/elements/MainField/MainField.tsx @@ -9,7 +9,7 @@ import type { TCalculatorMain } from 'constants/types'; import useStore from 'store'; import styles from './MainField.module.scss'; -function MainField(): JSX.Element { +function MainField(): React.JSX.Element { const { t } = useTranslation('calculator'); const form = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value]?.form, [])); const update = useStore(useCallback((state) => state.updateDefaultValues, [])); diff --git a/src/components/Calculator/elements/Modifier/Modifier.tsx b/src/components/Calculator/elements/Modifier/Modifier.tsx index 21b55a7a..2db2e516 100644 --- a/src/components/Calculator/elements/Modifier/Modifier.tsx +++ b/src/components/Calculator/elements/Modifier/Modifier.tsx @@ -18,7 +18,7 @@ interface ModifierProps { | 'modspeed2'; } -function Modifier({ name }: ModifierProps): JSX.Element { +function Modifier({ name }: ModifierProps): React.JSX.Element { const { t } = useTranslation('calculator'); const form = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value]?.form, [])); const update = useStore(useCallback((state) => state.updateDefaultValues, [])); diff --git a/src/components/Calculator/elements/MoveController/MoveController.tsx b/src/components/Calculator/elements/MoveController/MoveController.tsx index ae517571..8e5e0f93 100644 --- a/src/components/Calculator/elements/MoveController/MoveController.tsx +++ b/src/components/Calculator/elements/MoveController/MoveController.tsx @@ -9,7 +9,7 @@ interface MoveControllerProps { pokemon: '1' | '2'; } -function MoveController({ move, pokemon }: MoveControllerProps): JSX.Element { +function MoveController({ move, pokemon }: MoveControllerProps): React.JSX.Element { const form = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value]?.form, [])); const update = useStore(useCallback((state) => state.updateDefaultValues, [])); diff --git a/src/components/Calculator/elements/PokeController/PokeController.tsx b/src/components/Calculator/elements/PokeController/PokeController.tsx index b8555d0b..a9d4f187 100644 --- a/src/components/Calculator/elements/PokeController/PokeController.tsx +++ b/src/components/Calculator/elements/PokeController/PokeController.tsx @@ -18,7 +18,7 @@ interface PokeControllerProps { name: 'pokemon1' | 'pokemon2'; } -function PokeController({ encounters, name }: PokeControllerProps): JSX.Element { +function PokeController({ encounters, name }: PokeControllerProps): React.JSX.Element { const { t } = useTranslation('calculator'); const [showAll, setShowAll] = useState(true); const darkMode = useStore(useCallback((state) => state.darkMode, [])); diff --git a/src/components/Calculator/elements/PokemonSlot/PokemonSlot.tsx b/src/components/Calculator/elements/PokemonSlot/PokemonSlot.tsx index dc015933..a689b8dc 100644 --- a/src/components/Calculator/elements/PokemonSlot/PokemonSlot.tsx +++ b/src/components/Calculator/elements/PokemonSlot/PokemonSlot.tsx @@ -8,7 +8,7 @@ interface PokemonSlotProps { pokemon: TPokemon; } -function PokemonSlot({ pokemon }: PokemonSlotProps): JSX.Element { +function PokemonSlot({ pokemon }: PokemonSlotProps): React.JSX.Element { return (
diff --git a/src/components/Calculator/elements/Range/Range.tsx b/src/components/Calculator/elements/Range/Range.tsx index a0b755ac..02bc7884 100644 --- a/src/components/Calculator/elements/Range/Range.tsx +++ b/src/components/Calculator/elements/Range/Range.tsx @@ -9,7 +9,7 @@ interface RangeProps { max: number; } -function Range({ label, name, max }: RangeProps): JSX.Element { +function Range({ label, name, max }: RangeProps): React.JSX.Element { const form = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value]?.form, [])); const update = useStore(useCallback((state) => state.updateDefaultValues, [])); const fieldValue = form[name] as number; diff --git a/src/components/Calculator/elements/SideField/SideField.tsx b/src/components/Calculator/elements/SideField/SideField.tsx index 2e7dbfe9..9cf07854 100644 --- a/src/components/Calculator/elements/SideField/SideField.tsx +++ b/src/components/Calculator/elements/SideField/SideField.tsx @@ -13,7 +13,7 @@ interface SideFieldProps { const SPIKES = [0, 1, 2, 3]; -function SideField({ pokemon }: SideFieldProps): JSX.Element { +function SideField({ pokemon }: SideFieldProps): React.JSX.Element { const form = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value]?.form, [])); const update = useStore(useCallback((state) => state.updateDefaultValues, [])); diff --git a/src/components/Calculator/elements/Stats/Stats.tsx b/src/components/Calculator/elements/Stats/Stats.tsx index 92a076ea..1910f4d7 100644 --- a/src/components/Calculator/elements/Stats/Stats.tsx +++ b/src/components/Calculator/elements/Stats/Stats.tsx @@ -24,7 +24,7 @@ const DV = { max: 15, }; -function Stats({ pokemon }: StatsProps): JSX.Element { +function Stats({ pokemon }: StatsProps): React.JSX.Element { const { t } = useTranslation('calculator'); const { pokemon1, pokemon2 } = useCalculate(); const form = useStore(useCallback((state) => state.calcs[state?.selectedGame?.value]?.form, [])); diff --git a/src/components/Changelog/Changelog.tsx b/src/components/Changelog/Changelog.tsx index af80d856..283d7708 100644 --- a/src/components/Changelog/Changelog.tsx +++ b/src/components/Changelog/Changelog.tsx @@ -8,7 +8,7 @@ import type { TReleaseGroup } from 'constants/types'; import useStore from 'store'; import styles from './Changelog.module.scss'; -function Changelog(): JSX.Element { +function Changelog(): React.JSX.Element { const { t, i18n } = useTranslation('common'); const [logs, setLogs] = useState(3); const removeNew = useStore((state) => state.removeNew); diff --git a/src/components/Export/Export.tsx b/src/components/Export/Export.tsx index 0309d447..e93bda89 100644 --- a/src/components/Export/Export.tsx +++ b/src/components/Export/Export.tsx @@ -4,7 +4,7 @@ import Icon from 'semantic-ui-react/dist/commonjs/elements/Icon'; import { selectExport } from 'selectors'; import useStore from 'store'; -function Export(): JSX.Element { +function Export(): React.JSX.Element { const { t } = useTranslation('common'); const exportString = useStore(selectExport); diff --git a/src/components/Filter/Filter.tsx b/src/components/Filter/Filter.tsx index b235d2c0..1a6886f1 100644 --- a/src/components/Filter/Filter.tsx +++ b/src/components/Filter/Filter.tsx @@ -15,7 +15,7 @@ interface FilterProps { values: TFilter; } -function Filter({ darkMode = false, hideGen = false, values }: FilterProps): JSX.Element { +function Filter({ darkMode = false, hideGen = false, values }: FilterProps): React.JSX.Element { const { t } = useTranslation('common'); const [show, setShow] = useState(false); return ( diff --git a/src/components/Import/Import.tsx b/src/components/Import/Import.tsx index ef596f96..3492e8a1 100644 --- a/src/components/Import/Import.tsx +++ b/src/components/Import/Import.tsx @@ -24,7 +24,7 @@ const removeNone = (value: string) => { return value === '(None)' ? null : value; }; -function Import(): JSX.Element { +function Import(): React.JSX.Element { const { t } = useTranslation('import'); const importState = useStore(useCallback((state) => state.importState, [])); const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); diff --git a/src/components/Member/Member.tsx b/src/components/Member/Member.tsx index ca0303fd..8ab59784 100644 --- a/src/components/Member/Member.tsx +++ b/src/components/Member/Member.tsx @@ -19,7 +19,7 @@ interface MemberProps { pokemonDetail: PokemonDetail; } -function Member({ index, pokemonDetail }: MemberProps): JSX.Element { +function Member({ index, pokemonDetail }: MemberProps): React.JSX.Element { const { t } = useTranslation('builder'); const pokemon = POKEMAP.get(pokemonDetail.id); const changeTeamMember = useStore(useCallback((state) => state.changeTeamMember, [])); diff --git a/src/components/Move/Move.tsx b/src/components/Move/Move.tsx index d478c29c..bc797828 100644 --- a/src/components/Move/Move.tsx +++ b/src/components/Move/Move.tsx @@ -8,7 +8,7 @@ interface MoveProps { showStatus: boolean; } -function Move({ moveDetail, showStatus }: MoveProps): JSX.Element { +function Move({ moveDetail, showStatus }: MoveProps): React.JSX.Element { return (
diff --git a/src/components/MoveSelector/MoveSelector.tsx b/src/components/MoveSelector/MoveSelector.tsx index 1d6039d2..0cb35e24 100644 --- a/src/components/MoveSelector/MoveSelector.tsx +++ b/src/components/MoveSelector/MoveSelector.tsx @@ -24,7 +24,7 @@ function MoveSelector({ handleMove, hideGen, limitGen, -}: MoveSelectorProps): JSX.Element { +}: MoveSelectorProps): React.JSX.Element { const { t } = useTranslation('common'); const [open, setOpen] = useState(false); const values = useFilter(); diff --git a/src/components/Moves/Moves.tsx b/src/components/Moves/Moves.tsx index 1b9a49e1..e40d68e4 100644 --- a/src/components/Moves/Moves.tsx +++ b/src/components/Moves/Moves.tsx @@ -7,7 +7,7 @@ interface MovesProps { showStatus?: boolean; } -function Moves({ moves = [], showStatus = false }: MovesProps): JSX.Element { +function Moves({ moves = [], showStatus = false }: MovesProps): React.JSX.Element { return (
{moves?.map((move, i) => { diff --git a/src/components/Natures/Natures.tsx b/src/components/Natures/Natures.tsx index 1e7d712b..60a87d2d 100644 --- a/src/components/Natures/Natures.tsx +++ b/src/components/Natures/Natures.tsx @@ -5,7 +5,7 @@ import Modal from 'semantic-ui-react/dist/commonjs/modules/Modal'; import NATURES from 'constants/natures'; import styles from './Natures.module.scss'; -function Natures(): JSX.Element { +function Natures(): React.JSX.Element { const { t } = useTranslation('common'); const [open, setOpen] = useState(false); return ( diff --git a/src/components/PokeInfo/PokeInfo.tsx b/src/components/PokeInfo/PokeInfo.tsx index 4e401882..c6ac9cec 100644 --- a/src/components/PokeInfo/PokeInfo.tsx +++ b/src/components/PokeInfo/PokeInfo.tsx @@ -19,7 +19,7 @@ export const getGenderIcon = (gender: Gender) => { } }; -function PokeInfo({ encounter, pokemon }: PokeInfoProps): JSX.Element { +function PokeInfo({ encounter, pokemon }: PokeInfoProps): React.JSX.Element { const { t } = useTranslation('stats'); return ( diff --git a/src/components/PokemonType/PokemonType.tsx b/src/components/PokemonType/PokemonType.tsx index 8b69ffad..5e293db7 100644 --- a/src/components/PokemonType/PokemonType.tsx +++ b/src/components/PokemonType/PokemonType.tsx @@ -1,5 +1,4 @@ import { useCallback } from 'react'; -import { shallow } from 'zustand/shallow'; import { Type } from 'components'; import { FAIRY_GEN } from 'constants/constant'; import type { TPokemon } from 'constants/types'; @@ -10,11 +9,8 @@ interface PokemonTypeProps { pokemon: TPokemon; } -function PokemonType({ pokemon }: PokemonTypeProps): JSX.Element { - const selectedGame = useStore( - useCallback((state) => state.selectedGame, []), - shallow - ); +function PokemonType({ pokemon }: PokemonTypeProps): React.JSX.Element { + const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); return (
diff --git a/src/components/Pokestats/Pokestats.tsx b/src/components/Pokestats/Pokestats.tsx index 4dd49280..2e283d73 100644 --- a/src/components/Pokestats/Pokestats.tsx +++ b/src/components/Pokestats/Pokestats.tsx @@ -18,7 +18,7 @@ import { ReactComponent as SummarySVG } from 'assets/svg/summary.svg'; import { ReactComponent as TeamSVG } from 'assets/svg/team.svg'; import styles from './Pokestats.module.scss'; -function Pokestats(): JSX.Element { +function Pokestats(): React.JSX.Element { const { t } = useTranslation('stats'); const darkMode = useStore(useCallback((state) => state.darkMode, [])); const teamPokemon = useStore(selectTeam); diff --git a/src/components/Pokestats/elements/DisplaySettings/DisplaySettings.tsx b/src/components/Pokestats/elements/DisplaySettings/DisplaySettings.tsx index 7192e21d..a637701e 100644 --- a/src/components/Pokestats/elements/DisplaySettings/DisplaySettings.tsx +++ b/src/components/Pokestats/elements/DisplaySettings/DisplaySettings.tsx @@ -8,7 +8,7 @@ import Dropdown from 'semantic-ui-react/dist/commonjs/modules/Dropdown'; import useStore from 'store'; import styles from './DisplaySettings.module.scss'; -function DisplaySettings(): JSX.Element { +function DisplaySettings(): React.JSX.Element { const { t } = useTranslation('stats'); const summary = useStore( useCallback( diff --git a/src/components/Pokestats/elements/Image/Image.tsx b/src/components/Pokestats/elements/Image/Image.tsx index bc28fae4..f88d0ad3 100644 --- a/src/components/Pokestats/elements/Image/Image.tsx +++ b/src/components/Pokestats/elements/Image/Image.tsx @@ -2,7 +2,6 @@ import { LegacyRef, useCallback, useEffect, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import Icon from 'semantic-ui-react/dist/commonjs/elements/Icon'; import Label from 'semantic-ui-react/dist/commonjs/elements/Label'; -import { shallow } from 'zustand/shallow'; import { PkmImage } from 'common'; import { Moves, PokeInfo } from 'components'; import { Tip } from 'components/Pokestats/elements'; @@ -35,7 +34,7 @@ interface ImageProps { responsive?: boolean; } -function Image({ forwardedRef, responsive = false }: ImageProps): JSX.Element { +function Image({ forwardedRef, responsive = false }: ImageProps): React.JSX.Element { const { t } = useTranslation('stats'); const badges = useStore(useCallback((state) => state.badges, [])); const rules = useStore(useCallback((state) => state.rules, [])); @@ -48,10 +47,7 @@ function Image({ forwardedRef, responsive = false }: ImageProps): JSX.Element { const completion = useStore(selectCompletion); const failedPokemon = useStore(selectFailed); const shinyPokemon = useStore(selectShiny); - const selectedGame = useStore( - useCallback((state) => state.selectedGame, []), - shallow - ); + const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); const summary = useStore( useCallback( (state) => (state?.selectedGame?.value ? state.summary[state?.selectedGame?.value] : null), diff --git a/src/components/Pokestats/elements/Summary/Summary.tsx b/src/components/Pokestats/elements/Summary/Summary.tsx index ab9062da..ff58f25d 100644 --- a/src/components/Pokestats/elements/Summary/Summary.tsx +++ b/src/components/Pokestats/elements/Summary/Summary.tsx @@ -4,17 +4,13 @@ import { useTranslation } from 'react-i18next'; import { toast } from 'react-toastify'; import Button from 'semantic-ui-react/dist/commonjs/elements/Button'; import Icon from 'semantic-ui-react/dist/commonjs/elements/Icon'; -import { shallow } from 'zustand/shallow'; import { DisplaySettings, Image } from 'components/Pokestats/elements'; import useStore from 'store'; import styles from './Summary.module.scss'; -function Summary(): JSX.Element { +function Summary(): React.JSX.Element { const { t } = useTranslation('stats'); - const selectedGame = useStore( - useCallback((state) => state.selectedGame, []), - shallow - ); + const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); const summaryRef = useRef(null); const handleDownload = async () => { diff --git a/src/components/Pokestats/elements/Tip/Tip.tsx b/src/components/Pokestats/elements/Tip/Tip.tsx index 851aebd3..6329c954 100644 --- a/src/components/Pokestats/elements/Tip/Tip.tsx +++ b/src/components/Pokestats/elements/Tip/Tip.tsx @@ -5,7 +5,7 @@ interface TipProps { missing: string; } -function Tip({ missing }: TipProps): JSX.Element { +function Tip({ missing }: TipProps): React.JSX.Element { const { t } = useTranslation('stats'); return (
diff --git a/src/components/Report/Report.tsx b/src/components/Report/Report.tsx index 1cb74873..f0b88b8a 100644 --- a/src/components/Report/Report.tsx +++ b/src/components/Report/Report.tsx @@ -2,7 +2,7 @@ import { useTranslation } from 'react-i18next'; import { Page } from 'common'; import modalStyles from 'assets/styles/Modal.module.scss'; -function Report(): JSX.Element { +function Report(): React.JSX.Element { const { t } = useTranslation('report'); return ( diff --git a/src/components/Rules/Rules.tsx b/src/components/Rules/Rules.tsx index e14b8a6f..4e440b6f 100644 --- a/src/components/Rules/Rules.tsx +++ b/src/components/Rules/Rules.tsx @@ -15,7 +15,7 @@ import useStore from 'store'; import modalStyles from 'assets/styles/Modal.module.scss'; import styles from './Rules.module.scss'; -function Rules(): JSX.Element { +function Rules(): React.JSX.Element { const { t } = useTranslation('rules'); const rules = useStore(useCallback((state) => state.rules, [])); const reorderRule = useStore(useCallback((state) => state.reorderRule, [])); diff --git a/src/components/Rules/elements/AddRule/AddRule.tsx b/src/components/Rules/elements/AddRule/AddRule.tsx index 1900ef3d..0b88236d 100644 --- a/src/components/Rules/elements/AddRule/AddRule.tsx +++ b/src/components/Rules/elements/AddRule/AddRule.tsx @@ -1,4 +1,4 @@ -import { ReactText, useCallback, useState } from 'react'; +import { useCallback, useState } from 'react'; import { useTranslation } from 'react-i18next'; import Button from 'semantic-ui-react/dist/commonjs/elements/Button'; import Icon from 'semantic-ui-react/dist/commonjs/elements/Icon'; @@ -11,7 +11,7 @@ import useStore from 'store'; import modalStyles from 'assets/styles/Modal.module.scss'; import styles from './AddRule.module.scss'; -function AddRule(): JSX.Element { +function AddRule(): React.JSX.Element { const { t } = useTranslation('rules'); const addRule = useStore(useCallback((state) => state.addRule, [])); const rules = useStore(useCallback((state) => state.rules, [])); @@ -143,7 +143,7 @@ function AddRule(): JSX.Element { setGens([]); }; - const handleTabChange = (newIndex: ReactText) => { + const handleTabChange = (newIndex: string | number) => { setTab(Number(newIndex)); }; diff --git a/src/components/Rules/elements/RuleContent/RuleContent.tsx b/src/components/Rules/elements/RuleContent/RuleContent.tsx index 64201051..7801bf60 100644 --- a/src/components/Rules/elements/RuleContent/RuleContent.tsx +++ b/src/components/Rules/elements/RuleContent/RuleContent.tsx @@ -9,7 +9,7 @@ interface RuleContentProps { rule: TRuleEntry; } -function RuleContent({ hideSmart, i, rule }: RuleContentProps): JSX.Element { +function RuleContent({ hideSmart, i, rule }: RuleContentProps): React.JSX.Element { const { t } = useTranslation('rules'); return (
diff --git a/src/components/Rules/elements/RuleEditor/RuleEditor.tsx b/src/components/Rules/elements/RuleEditor/RuleEditor.tsx index a24e7c80..5d48d626 100644 --- a/src/components/Rules/elements/RuleEditor/RuleEditor.tsx +++ b/src/components/Rules/elements/RuleEditor/RuleEditor.tsx @@ -16,7 +16,7 @@ interface RuleEditorProps { type: TRule; } -function RuleEditor({ content, index, type }: RuleEditorProps): JSX.Element { +function RuleEditor({ content, index, type }: RuleEditorProps): React.JSX.Element { const { t } = useTranslation('rules'); const darkMode = useStore(useCallback((state) => state.darkMode, [])); const editRule = useStore(useCallback((state) => state.editRule, [])); diff --git a/src/components/Settings/Settings.tsx b/src/components/Settings/Settings.tsx index ac5fb6de..c87df820 100644 --- a/src/components/Settings/Settings.tsx +++ b/src/components/Settings/Settings.tsx @@ -8,7 +8,7 @@ import type { TLanguage } from 'constants/types'; import useStore from 'store'; import styles from './Settings.module.scss'; -function Settings(): JSX.Element { +function Settings(): React.JSX.Element { const { t, i18n } = useTranslation('settings'); const appState = useStore((state) => state); diff --git a/src/components/Settings/elements/CustomStatuses.tsx b/src/components/Settings/elements/CustomStatuses.tsx index cef67a5a..9fe89644 100644 --- a/src/components/Settings/elements/CustomStatuses.tsx +++ b/src/components/Settings/elements/CustomStatuses.tsx @@ -8,7 +8,7 @@ import modalStyles from 'assets/styles/Modal.module.scss'; import styles from './CustomStatuses.module.scss'; -function CustomStatuses(): JSX.Element { +function CustomStatuses(): React.JSX.Element { const { t } = useTranslation('settings'); const [open, setOpen] = useState(false); const [text, setText] = useState(''); diff --git a/src/components/Share/Share.tsx b/src/components/Share/Share.tsx index 6aec7e75..fb33ddca 100644 --- a/src/components/Share/Share.tsx +++ b/src/components/Share/Share.tsx @@ -14,7 +14,7 @@ interface ShareProps { text: string; } -function Share({ disabled, icon = false, text }: ShareProps): JSX.Element { +function Share({ disabled, icon = false, text }: ShareProps): React.JSX.Element { const { t } = useTranslation('common'); const [show, setShow] = useState(false); const appState = useStore((state) => state); diff --git a/src/components/Tracker/Tracker.tsx b/src/components/Tracker/Tracker.tsx index 4bd8607d..e44ea21a 100644 --- a/src/components/Tracker/Tracker.tsx +++ b/src/components/Tracker/Tracker.tsx @@ -2,7 +2,7 @@ import { Badges } from 'components'; import { Encounters, FAB, Options } from 'components/Tracker/elements'; import styles from './Tracker.module.scss'; -function Tracker(): JSX.Element { +function Tracker(): React.JSX.Element { return (
diff --git a/src/components/Tracker/elements/AddEncounter/AddEncounter.tsx b/src/components/Tracker/elements/AddEncounter/AddEncounter.tsx index 98f4227c..74d09d7d 100644 --- a/src/components/Tracker/elements/AddEncounter/AddEncounter.tsx +++ b/src/components/Tracker/elements/AddEncounter/AddEncounter.tsx @@ -12,7 +12,7 @@ interface AddEncounterProps { icon?: boolean; } -function AddEncounter({ icon = false }: AddEncounterProps): JSX.Element { +function AddEncounter({ icon = false }: AddEncounterProps): React.JSX.Element { const { t } = useTranslation('tracker'); const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); const addEncounter = useStore(useCallback((state) => state.addEncounter, [])); diff --git a/src/components/Tracker/elements/Detail/Detail.tsx b/src/components/Tracker/elements/Detail/Detail.tsx index 37082cc8..a905c84f 100644 --- a/src/components/Tracker/elements/Detail/Detail.tsx +++ b/src/components/Tracker/elements/Detail/Detail.tsx @@ -24,7 +24,7 @@ interface DetailProps { encounter?: TEncounter; } -function Detail({ encounter }: DetailProps): JSX.Element { +function Detail({ encounter }: DetailProps): React.JSX.Element { const { t } = useTranslation('tracker'); const darkMode = useStore(useCallback((state) => state.darkMode, [])); const changeDetails = useStore(useCallback((state) => state.changeDetails, [])); diff --git a/src/components/Tracker/elements/Encounters/Encounters.tsx b/src/components/Tracker/elements/Encounters/Encounters.tsx index 1667a1b2..6f1428ff 100644 --- a/src/components/Tracker/elements/Encounters/Encounters.tsx +++ b/src/components/Tracker/elements/Encounters/Encounters.tsx @@ -6,7 +6,6 @@ import Confirm from 'semantic-ui-react/dist/commonjs/addons/Confirm'; import Button from 'semantic-ui-react/dist/commonjs/elements/Button'; import Icon from 'semantic-ui-react/dist/commonjs/elements/Icon'; import Popup from 'semantic-ui-react/dist/commonjs/modules/Popup'; -import { shallow } from 'zustand/shallow'; import { Status } from 'components'; import { Detail, @@ -39,22 +38,10 @@ const Encounters = React.memo(function Encounters() { const types = useStore(useCallback((state) => state.types, [])); const nicknames = useStore(useCallback((state) => state.nicknames, [])); const isNatureGen = useStore(selectNAGeneration); - const selectedGame = useStore( - useCallback((state) => state.selectedGame, []), - shallow - ); - const clearEncounter = useStore( - useCallback((state) => state.clearEncounter, []), - shallow - ); - const deleteEncounter = useStore( - useCallback((state) => state.deleteEncounter, []), - shallow - ); - const changeLevel = useStore( - useCallback((state) => state.changeLevel, []), - shallow - ); + const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); + const clearEncounter = useStore(useCallback((state) => state.clearEncounter, [])); + const deleteEncounter = useStore(useCallback((state) => state.deleteEncounter, [])); + const changeLevel = useStore(useCallback((state) => state.changeLevel, [])); const [encounterToDelete, setEncounterToDelete] = useState(null); const [confirm, setConfirm] = useState(false); const itemSize = useRemtoPx(nicknames ? NICKNAME_HEIGHT : NORMAL_HEIGHT); @@ -97,7 +84,7 @@ const Encounters = React.memo(function Encounters() { listRef.current?.scrollToItem(index + 1, 'center'); }; - const renderRow: React.FC = ({ index, style }) => { + const renderRow = ({ index, style }: RowProps) => { const encounter = filteredEncounters[index]; const foundPokemon = POKEMAP.get(encounter.pokemon); const isGreyedOut = encounter?.status?.value === 2; diff --git a/src/components/Tracker/elements/Evolve/Evolve.tsx b/src/components/Tracker/elements/Evolve/Evolve.tsx index a1977ff7..62c1d35f 100644 --- a/src/components/Tracker/elements/Evolve/Evolve.tsx +++ b/src/components/Tracker/elements/Evolve/Evolve.tsx @@ -15,7 +15,7 @@ interface EvolveProps { evolveIds: number[]; } -function Evolve({ encounter, evolveIds }: EvolveProps): JSX.Element { +function Evolve({ encounter, evolveIds }: EvolveProps): React.JSX.Element { const { t } = useTranslation('tracker'); const changePokemon = useStore(useCallback((state) => state.changePokemon, [])); const [selected, setSelected] = useState(encounter.pokemon); diff --git a/src/components/Tracker/elements/FAB/FAB.tsx b/src/components/Tracker/elements/FAB/FAB.tsx index 204ed855..1bb804d7 100644 --- a/src/components/Tracker/elements/FAB/FAB.tsx +++ b/src/components/Tracker/elements/FAB/FAB.tsx @@ -9,7 +9,7 @@ import { POKEMAP } from 'constants/pokemon'; import useStore from 'store'; import styles from './FAB.module.scss'; -function FAB(): JSX.Element { +function FAB(): React.JSX.Element { const { t } = useTranslation('tracker'); const [open, setOpen] = useState(false); const handleClick = () => { diff --git a/src/components/Tracker/elements/Nature/Nature.tsx b/src/components/Tracker/elements/Nature/Nature.tsx index 4c51e3df..6b967221 100644 --- a/src/components/Tracker/elements/Nature/Nature.tsx +++ b/src/components/Tracker/elements/Nature/Nature.tsx @@ -10,7 +10,7 @@ interface NatureProps { encounter: TEncounter; } -function Nature({ encounter }: NatureProps): JSX.Element { +function Nature({ encounter }: NatureProps): React.JSX.Element { const { t } = useTranslation('common'); const changeNature = useStore(useCallback((state) => state.changeNature, [])); diff --git a/src/components/Tracker/elements/Nickname/Nickname.tsx b/src/components/Tracker/elements/Nickname/Nickname.tsx index 59436f5e..9a11d023 100644 --- a/src/components/Tracker/elements/Nickname/Nickname.tsx +++ b/src/components/Tracker/elements/Nickname/Nickname.tsx @@ -11,7 +11,7 @@ interface NicknameProps { nickname?: string; } -function Nickname({ encounterId, nickname }: NicknameProps): JSX.Element { +function Nickname({ encounterId, nickname }: NicknameProps): React.JSX.Element { const { t } = useTranslation('tracker'); const changeNickname = useStore((state) => state.changeNickname); const darkMode = useStore(useCallback((state) => state.darkMode, [])); diff --git a/src/components/Tracker/elements/Pokemon/Pokemon.tsx b/src/components/Tracker/elements/Pokemon/Pokemon.tsx index 0568b5d5..b56f9cf9 100644 --- a/src/components/Tracker/elements/Pokemon/Pokemon.tsx +++ b/src/components/Tracker/elements/Pokemon/Pokemon.tsx @@ -3,7 +3,6 @@ import { useTranslation } from 'react-i18next'; import { toast } from 'react-toastify'; import Icon from 'semantic-ui-react/dist/commonjs/elements/Icon'; import Popup from 'semantic-ui-react/dist/commonjs/modules/Popup'; -import { shallow } from 'zustand/shallow'; import { PkmImage, PokemonSelector } from 'common'; import { getGenderIcon } from 'components/PokeInfo/PokeInfo'; import FILTERS from 'constants/filters'; @@ -29,10 +28,7 @@ const Pokemon = React.memo(function Pokemon({ encounter, foundPokemon }: Pokemon const games = useStore(useCallback((state) => state.games, [])); const showAllTooltip = useStore(useCallback((state) => state.showAllTooltip, [])); const suggestions = useStore(selectSuggestion); - const selectedGame = useStore( - useCallback((state) => state.selectedGame, []), - shallow - ); + const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); const rules = useStore(useCallback((state) => state.rules, [])); const selectedRuleset = useStore(useCallback((state) => state.selectedRuleset, [])); diff --git a/src/components/Tracker/elements/RangeSelector/RangeSelector.tsx b/src/components/Tracker/elements/RangeSelector/RangeSelector.tsx index 4d1c38c3..800c93fc 100644 --- a/src/components/Tracker/elements/RangeSelector/RangeSelector.tsx +++ b/src/components/Tracker/elements/RangeSelector/RangeSelector.tsx @@ -19,7 +19,7 @@ const IV = { max: 31, }; -function RangeSelector({ name, onChange, value }: RangeSelectorProps): JSX.Element { +function RangeSelector({ name, onChange, value }: RangeSelectorProps): React.JSX.Element { const type = name.includes('ev') ? EV : IV; const getBarFill = useCallback(() => { diff --git a/src/components/Tracker/elements/ResetEncounters/ResetEncounters.tsx b/src/components/Tracker/elements/ResetEncounters/ResetEncounters.tsx index d1483b29..5ef81337 100644 --- a/src/components/Tracker/elements/ResetEncounters/ResetEncounters.tsx +++ b/src/components/Tracker/elements/ResetEncounters/ResetEncounters.tsx @@ -12,7 +12,7 @@ interface ResetEncounterProps { icon?: boolean; } -function ResetEncounters({ icon = false }: ResetEncounterProps): JSX.Element { +function ResetEncounters({ icon = false }: ResetEncounterProps): React.JSX.Element { const { t } = useTranslation('tracker'); const darkMode = useStore(useCallback((state) => state.darkMode, [])); const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); diff --git a/src/components/Tracker/elements/ScrollList/ScrollList.tsx b/src/components/Tracker/elements/ScrollList/ScrollList.tsx index e2fbcd31..16c79463 100644 --- a/src/components/Tracker/elements/ScrollList/ScrollList.tsx +++ b/src/components/Tracker/elements/ScrollList/ScrollList.tsx @@ -2,7 +2,6 @@ import { useCallback, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import Button from 'semantic-ui-react/dist/commonjs/elements/Button/Button'; import Icon from 'semantic-ui-react/dist/commonjs/elements/Icon/Icon'; -import { shallow } from 'zustand/shallow'; import type { TEncounter } from 'constants/types'; import { selectCaught, selectFailed, selectFainted } from 'selectors'; import useStore from 'store'; @@ -17,7 +16,7 @@ interface ScrollListProps { scrollTo: (index: number) => void; } -function ScrollList({ encounters, scrollTo }: ScrollListProps): JSX.Element { +function ScrollList({ encounters, scrollTo }: ScrollListProps): React.JSX.Element { const { t } = useTranslation('tracker'); const darkMode = useStore(useCallback((state) => state.darkMode, [])); const notes = useStore(useCallback((state) => state.notes, [])); @@ -25,10 +24,7 @@ function ScrollList({ encounters, scrollTo }: ScrollListProps): JSX.Element { const changeNotes = useStore(useCallback((state) => state.changeNotes, [])); const addSkipped = useStore(useCallback((state) => state.addSkipped, [])); const deleteSkipped = useStore(useCallback((state) => state.deleteSkipped, [])); - const selectedGame = useStore( - useCallback((state) => state.selectedGame, []), - shallow - ); + const selectedGame = useStore(useCallback((state) => state.selectedGame, [])); const fainted = useStore(selectFainted); const failed = useStore(selectFailed); const caught = useStore(selectCaught); diff --git a/src/components/Tracker/elements/Swap/Swap.tsx b/src/components/Tracker/elements/Swap/Swap.tsx index e13bfe2c..e9d20ab0 100644 --- a/src/components/Tracker/elements/Swap/Swap.tsx +++ b/src/components/Tracker/elements/Swap/Swap.tsx @@ -13,7 +13,7 @@ interface SwapProps { encounter: TEncounter; } -function Swap({ encounter }: SwapProps): JSX.Element { +function Swap({ encounter }: SwapProps): React.JSX.Element { const { t } = useTranslation('tracker'); const changeStatus = useStore(useCallback((state) => state.changeStatus, [])); const changePreviousStatus = useStore(useCallback((state) => state.changePreviousStatus, [])); diff --git a/src/components/Type/Type.tsx b/src/components/Type/Type.tsx index 17e67706..b9b99929 100644 --- a/src/components/Type/Type.tsx +++ b/src/components/Type/Type.tsx @@ -10,7 +10,7 @@ interface TypeProps { type: TType; } -function Type({ hideName = false, type }: TypeProps): JSX.Element { +function Type({ hideName = false, type }: TypeProps): React.JSX.Element { const showTypeModal = useStore(useCallback((state) => state.showTypeModal, [])); const handleClick = (e: React.MouseEvent) => { diff --git a/src/components/UpdateSW/UpdateSW.tsx b/src/components/UpdateSW/UpdateSW.tsx index 3b95374c..a43f1138 100644 --- a/src/components/UpdateSW/UpdateSW.tsx +++ b/src/components/UpdateSW/UpdateSW.tsx @@ -8,7 +8,7 @@ declare global { } } -function UpdateSW(): JSX.Element { +function UpdateSW(): React.JSX.Element { const [waitingServiceWorker, setWaitingServiceWorker] = useState(null); const setServiceWorker = useCallback( diff --git a/src/constants/details.ts b/src/constants/details.ts index 9607f07b..22887e8e 100644 --- a/src/constants/details.ts +++ b/src/constants/details.ts @@ -3625,7 +3625,7 @@ const DETAILS: { [key: string]: TDetail[][] } = { id: 241, item: 'Lum Berry', level: 19, - moves: [205, 213, 23, 205], + moves: [205, 213, 23, 208], }, ], game: 'HeartGold and SoulSilver', @@ -5131,7 +5131,7 @@ const DETAILS: { [key: string]: TDetail[][] } = { moves: [372, 33, 123, 474], }, { - ability: 'Levitate', + ability: 'Stench', id: 88, level: 17, moves: [474, 189, 139, 50], diff --git a/src/constants/filters.ts b/src/constants/filters.ts index 36a27d0e..18972722 100644 --- a/src/constants/filters.ts +++ b/src/constants/filters.ts @@ -41,7 +41,7 @@ const FILTERS: { [key in string]: string[] } = { 'Seaking', ], 'rby-10': ['Sandshrew', 'Clefairy', 'Zubat', 'Paras', 'Geodude'], - 'rby-11': ['Bulbasaur', 'Psyduck', 'Poliwag', 'Krabby', 'Goldeen', 'Seaking', 'Magikarp'], + 'rby-11': ['Bulbasaur', 'Psyduck', 'Poliwag', 'Krabby', 'Goldeen', 'Seaking', 'Magikarp', 'Jynx'], 'rby-12': [ 'Charmander', 'Caterpie', @@ -717,6 +717,7 @@ const FILTERS: { [key in string]: string[] } = { 'Yanma', 'Pineco', 'Snubbull', + 'Spearow', ], 'gsc-20': [ 'Caterpie', @@ -1160,6 +1161,7 @@ const FILTERS: { [key in string]: string[] } = { 'Magikarp', 'Hoothoot', 'Noctowl', + 'Slugma', ], 'gsc-61': ['Fearow', 'Grimer', 'Muk', 'Slugma'], 'gsc-62': ['Fearow', 'Grimer', 'Muk', 'Slugma'], @@ -1994,6 +1996,7 @@ const FILTERS: { [key in string]: string[] } = { 'Seadra', 'Magikarp', 'Gyarados', + 'Mr. Mime', ], 'frlg-46': [ 'Psyduck', @@ -3415,6 +3418,7 @@ const FILTERS: { [key in string]: string[] } = { 'Ditto', 'Hoothoot', 'Yanma', + 'Spearow', ], 'hgss-20': [ 'Caterpie', @@ -3628,7 +3632,7 @@ const FILTERS: { [key in string]: string[] } = { 'Magikarp', ], 'hgss-49': ['Treecko', 'Torchic', 'Mudkip'], - 'hgss-50': ['Pidgey', 'Oddish', 'Gloom', 'Meowth', 'Abra', 'Bellsprout'], + 'hgss-50': ['Pidgey', 'Oddish', 'Gloom', 'Meowth', 'Abra', 'Bellsprout', 'Combee'], 'hgss-51': [ 'Rattata', 'Raticate', @@ -3673,6 +3677,7 @@ const FILTERS: { [key in string]: string[] } = { 'Goldeen', 'Seaking', 'Magikarp', + 'Buizel', ], 'hgss-56': ['Goldeen', 'Seaking', 'Magikarp'], 'hgss-57': [ @@ -4038,6 +4043,7 @@ const FILTERS: { [key in string]: string[] } = { 'Azurill', 'Torkoal', 'Luxio', + 'Psyduck', ], 'hgss-89': [ 'Raticate', @@ -4916,7 +4922,7 @@ const FILTERS: { [key in string]: string[] } = { 'Slowpoke', 'Amoonguss', ], - 'bw2-45': ['Boldore', 'Woobat', 'Axew', 'Drilbur', 'Cobalion'], + 'bw2-45': ['Boldore', 'Woobat', 'Axew', 'Drilbur', 'Cobalion', 'Aron'], 'bw2-46': ['Virizion'], 'bw2-47': ['Terrakion', 'Boldore', 'Woobat', 'Mienfoo', 'Durant', 'Excadrill'], 'bw2-48': [ @@ -4993,7 +4999,7 @@ const FILTERS: { [key in string]: string[] } = { 'Swablu', ], 'oras-10': ['Abra', 'Poochyena', 'Zigzagoon', 'Taillow', 'Nincada', 'Whismur', 'Skitty'], - 'oras-11': ['Whismur'], + 'oras-11': ['Whismur', 'Geodude'], 'oras-12': ['Tentacool', 'Magikarp', 'Wingull', 'Pelipper', 'Wailmer'], 'oras-13': ['Tentacool', 'Magikarp', 'Wingull', 'Pelipper', 'Wailmer'], 'oras-14': [ @@ -6431,6 +6437,7 @@ const FILTERS: { [key in string]: string[] } = { 'Haunter', 'Mudsdale', 'Axew', + 'Barboach', ], 'swsh-6': [ 'Vulpix', @@ -7080,6 +7087,7 @@ const FILTERS: { [key in string]: string[] } = { 'Rhydon', 'Unfezant', 'Crustle', + 'Wynaut', ], 'swsh-26': [ 'Dugtrio', @@ -7978,6 +7986,8 @@ const FILTERS: { [key in string]: string[] } = { 'Gothorita', 'Amoonguss', 'Foongus', + 'Garbodor', + 'Bannette', ], 'xy-43': [ 'Poliwag', diff --git a/src/constants/locations/X_Y.ts b/src/constants/locations/X_Y.ts index e892ce6d..7e152757 100644 --- a/src/constants/locations/X_Y.ts +++ b/src/constants/locations/X_Y.ts @@ -148,7 +148,7 @@ const X_Y: TEncounter[] = [ { id: 18, pokemon: null, - location: 'Cyallage City', + location: 'Cyllage City', status: null, filter: null, filterKey: 'xy-18', @@ -228,7 +228,7 @@ const X_Y: TEncounter[] = [ { id: 28, pokemon: null, - location: 'Courmarine City', + location: 'Coumarine City', status: null, filter: null, filterKey: 'xy-28', diff --git a/src/error/CalcErrorBoundary.tsx b/src/error/CalcErrorBoundary.tsx index a0e09a57..5a61ab9a 100644 --- a/src/error/CalcErrorBoundary.tsx +++ b/src/error/CalcErrorBoundary.tsx @@ -2,7 +2,7 @@ import { useCallback } from 'react'; import { DEFAULT_VALUES } from 'constants/calculator'; import useStore from 'store'; -function ErrorBoundary(): JSX.Element { +function ErrorBoundary(): React.JSX.Element { const update = useStore(useCallback((state) => state.updateDefaultValues, [])); return (
=3.1.1 <6" @@ -10182,6 +10318,11 @@ regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + regenerator-transform@^0.14.2: version "0.14.5" resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" @@ -10385,9 +10526,9 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" @@ -10562,10 +10703,10 @@ semantic-ui-css@^2.5.0: dependencies: jquery x.* -semantic-ui-react@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/semantic-ui-react/-/semantic-ui-react-2.1.4.tgz#8a877b169125bb7dd9321c53c425d6d46ac53862" - integrity sha512-7CxjBoFUfH7fUvtn+SPkkIocthUD9kV3niF1mUMa9TbeyPAf2brtRCZBlT2OpHaXmkscFzGjEfhbJo9gKfotzQ== +semantic-ui-react@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/semantic-ui-react/-/semantic-ui-react-2.1.5.tgz#5bf84c357686d7de0dd1005fb661418884d2d343" + integrity sha512-nIqmmUNpFHfovEb+RI2w3E2/maZQutd8UIWyRjf1SLse+XF51hI559xbz/sLN3O6RpLjr/echLOOXwKCirPy3Q== dependencies: "@babel/runtime" "^7.10.5" "@fluentui/react-component-event-listener" "~0.63.0" @@ -10598,6 +10739,13 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^7.5.3, semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" @@ -10885,9 +11033,9 @@ sprintf-js@~1.0.2: integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.14.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -11295,9 +11443,9 @@ throat@^6.0.1: integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g== + version "1.0.1" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5" + integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ== through@^2.3.8: version "2.3.8" @@ -11314,13 +11462,18 @@ timsort@^0.3.0: resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tmp@^0.2.1, tmp@~0.2.1: +tmp@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" +tmp@~0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + tmpl@1.0.x: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" @@ -11352,13 +11505,15 @@ tough-cookie@^4.0.0: punycode "^2.1.1" universalify "^0.1.2" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== +tough-cookie@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: - psl "^1.1.28" + psl "^1.1.33" punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" tr46@^1.0.1: version "1.0.1" @@ -11384,6 +11539,11 @@ tryer@^1.0.1: resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +ts-api-utils@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" @@ -11404,10 +11564,10 @@ tslib@^2.0.3: resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tslib@^2.1.0, "tslib@^2.4.1 || ^1.9.3": - version "2.6.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== +tslib@^2.1.0, tslib@^2.3.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsutils@^3.21.0: version "3.21.0" @@ -11526,6 +11686,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" @@ -11561,6 +11726,11 @@ universalify@^0.1.2: resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" @@ -11593,6 +11763,14 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" @@ -12281,9 +12459,9 @@ yocto-queue@^0.1.0: resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zustand@^4.3.8: - version "4.3.8" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.8.tgz#37113df8e9e1421b0be1b2dca02b49b76210e7c4" - integrity sha512-4h28KCkHg5ii/wcFFJ5Fp+k1J3gJoasaIbppdgZFO4BPJnsNxL0mQXBSFgOgAdCdBj35aDTPvdAJReTMntFPGg== +zustand@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.2.tgz#fddbe7cac1e71d45413b3682cdb47b48034c3848" + integrity sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g== dependencies: use-sync-external-store "1.2.0"