Update to react v19
This commit is contained in:
@@ -67,8 +67,8 @@
|
|||||||
"node-vibrant": "4.0.3",
|
"node-vibrant": "4.0.3",
|
||||||
"notistack": "3.0.2",
|
"notistack": "3.0.2",
|
||||||
"p-limit": "6.2.0",
|
"p-limit": "6.2.0",
|
||||||
"react": "18.3.1",
|
"react": "19.1.0",
|
||||||
"react-dom": "18.3.1",
|
"react-dom": "19.1.0",
|
||||||
"react-hotkeys-hook": "5.0.1",
|
"react-hotkeys-hook": "5.0.1",
|
||||||
"react-i18next": "15.4.1",
|
"react-i18next": "15.4.1",
|
||||||
"react-lazily": "0.9.2",
|
"react-lazily": "0.9.2",
|
||||||
@@ -88,9 +88,9 @@
|
|||||||
"@graphql-codegen/typescript-operations": "4.6.0",
|
"@graphql-codegen/typescript-operations": "4.6.0",
|
||||||
"@types/apollo-upload-client": "18.0.0",
|
"@types/apollo-upload-client": "18.0.0",
|
||||||
"@types/node": "22.14.1",
|
"@types/node": "22.14.1",
|
||||||
"@types/react": "18.3.5",
|
"@types/react": "19.1.2",
|
||||||
"@types/react-beautiful-dnd": "13.1.8",
|
"@types/react-beautiful-dnd": "13.1.8",
|
||||||
"@types/react-dom": "18.3.0",
|
"@types/react-dom": "19.1.2",
|
||||||
"@types/sanitize-html": "2.15.0",
|
"@types/sanitize-html": "2.15.0",
|
||||||
"@types/stylis": "4.2.7",
|
"@types/stylis": "4.2.7",
|
||||||
"@types/webfontloader": "1.6.38",
|
"@types/webfontloader": "1.6.38",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import MoreHoriz from '@mui/icons-material/MoreHoriz';
|
|||||||
import Fab from '@mui/material/Fab';
|
import Fab from '@mui/material/Fab';
|
||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import { styled } from '@mui/material/styles';
|
import { styled } from '@mui/material/styles';
|
||||||
import React from 'react';
|
import React, { type JSX } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import PopupState, { bindMenu, bindTrigger } from 'material-ui-popup-state';
|
import PopupState, { bindMenu, bindTrigger } from 'material-ui-popup-state';
|
||||||
import { DEFAULT_FAB_STYLE } from '@/modules/core/components/buttons/StyledFab.tsx';
|
import { DEFAULT_FAB_STYLE } from '@/modules/core/components/buttons/StyledFab.tsx';
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export const useSelectableCollection = <Id extends number | string, Key extends
|
|||||||
): SelectableCollectionReturnType<Id, Key> => {
|
): SelectableCollectionReturnType<Id, Key> => {
|
||||||
const [keyToSelectedItemIds, setKeyToSelectedItemIds] = useState<Record<string, Id[]>>(initialState);
|
const [keyToSelectedItemIds, setKeyToSelectedItemIds] = useState<Record<string, Id[]>>(initialState);
|
||||||
|
|
||||||
const lastSelectedItemInfoRef = useRef<{ id: Id; key: Key }>();
|
const lastSelectedItemInfoRef = useRef<{ id: Id; key: Key }>(undefined);
|
||||||
|
|
||||||
const selectedItemIds = [...new Set(Object.values(keyToSelectedItemIds).flat())];
|
const selectedItemIds = [...new Set(Object.values(keyToSelectedItemIds).flat())];
|
||||||
const areAllItemsSelected = selectedItemIds.length === totalCount;
|
const areAllItemsSelected = selectedItemIds.length === totalCount;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ export const AppbarSearch: React.FunctionComponent<IProps> = (props) => {
|
|||||||
|
|
||||||
const [query, setQuery] = useQueryParam('query', StringParam);
|
const [query, setQuery] = useQueryParam('query', StringParam);
|
||||||
const [isSearchOpen, setIsSearchOpen] = useState(!isClosable || !!query);
|
const [isSearchOpen, setIsSearchOpen] = useState(!isClosable || !!query);
|
||||||
const inputRef = React.useRef<HTMLInputElement>();
|
const inputRef = React.useRef<HTMLInputElement>(undefined);
|
||||||
|
|
||||||
const [searchString, setSearchString] = useState(query ?? '');
|
const [searchString, setSearchString] = useState(query ?? '');
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ type IconMenuItemProps = {
|
|||||||
renderLabel?: () => React.ReactNode;
|
renderLabel?: () => React.ReactNode;
|
||||||
LeftIcon?: OverridableComponent<SvgIconTypeMap> & { muiName: string };
|
LeftIcon?: OverridableComponent<SvgIconTypeMap> & { muiName: string };
|
||||||
onClick?: (event: React.MouseEvent<HTMLElement>) => void;
|
onClick?: (event: React.MouseEvent<HTMLElement>) => void;
|
||||||
ref?: RefObject<HTMLLIElement>;
|
ref?: RefObject<HTMLLIElement | null>;
|
||||||
RightIcon?: OverridableComponent<SvgIconTypeMap> & { muiName: string };
|
RightIcon?: OverridableComponent<SvgIconTypeMap> & { muiName: string };
|
||||||
sx?: SxProps<Theme>;
|
sx?: SxProps<Theme>;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import MuiMenu, { MenuProps } from '@mui/material/Menu';
|
import MuiMenu, { MenuProps } from '@mui/material/Menu';
|
||||||
import { useState } from 'react';
|
import { useState, type JSX } from 'react';
|
||||||
|
|
||||||
export const Menu = ({
|
export const Menu = ({
|
||||||
children,
|
children,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
// adopted from: https://github.com/tachiyomiorg/tachiyomi/blob/master/app/src/main/java/eu/kanade/tachiyomi/widget/EmptyView.kt
|
// adopted from: https://github.com/tachiyomiorg/tachiyomi/blob/master/app/src/main/java/eu/kanade/tachiyomi/widget/EmptyView.kt
|
||||||
|
|
||||||
import { useMemo, useState } from 'react';
|
import { useMemo, useState, type JSX } from 'react';
|
||||||
import Typography from '@mui/material/Typography';
|
import Typography from '@mui/material/Typography';
|
||||||
import { SxProps, Theme } from '@mui/material/styles';
|
import { SxProps, Theme } from '@mui/material/styles';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react';
|
import React, { type JSX } from 'react';
|
||||||
import CircularProgress from '@mui/material/CircularProgress';
|
import CircularProgress from '@mui/material/CircularProgress';
|
||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import ListItemButton from '@mui/material/ListItemButton';
|
|||||||
import ListItemText from '@mui/material/ListItemText';
|
import ListItemText from '@mui/material/ListItemText';
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import Typography from '@mui/material/Typography';
|
import Typography from '@mui/material/Typography';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState, type JSX } from 'react';
|
||||||
import DialogContent from '@mui/material/DialogContent';
|
import DialogContent from '@mui/material/DialogContent';
|
||||||
import DialogActions from '@mui/material/DialogActions';
|
import DialogActions from '@mui/material/DialogActions';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|||||||
@@ -77,8 +77,8 @@ export const useAutomaticScrolling = (
|
|||||||
} => {
|
} => {
|
||||||
const isCallback = typeof refOrCallback === 'function';
|
const isCallback = typeof refOrCallback === 'function';
|
||||||
|
|
||||||
const elementStyle = useRef<CSSStyleDeclaration>();
|
const elementStyle = useRef<CSSStyleDeclaration>(undefined);
|
||||||
const scrollTriggerTimer = useRef<NodeJS.Timeout>();
|
const scrollTriggerTimer = useRef<NodeJS.Timeout>(undefined);
|
||||||
const scrollTriggerAnimationFrameId = useRef(-1);
|
const scrollTriggerAnimationFrameId = useRef(-1);
|
||||||
|
|
||||||
const [isActive, setIsActive] = useState(false);
|
const [isActive, setIsActive] = useState(false);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import { RefObject, useLayoutEffect, useState } from 'react';
|
import { RefObject, useLayoutEffect, useState } from 'react';
|
||||||
|
|
||||||
export const useIntersectionObserver = (
|
export const useIntersectionObserver = (
|
||||||
ref: RefObject<HTMLElement> | HTMLElement | undefined | null,
|
ref: RefObject<HTMLElement | null> | HTMLElement | undefined | null,
|
||||||
callback: IntersectionObserverCallback,
|
callback: IntersectionObserverCallback,
|
||||||
{
|
{
|
||||||
ignoreInitialObserve = false,
|
ignoreInitialObserve = false,
|
||||||
|
|||||||
@@ -32,12 +32,12 @@ export const useMouseDragScroll = (
|
|||||||
) => {
|
) => {
|
||||||
const [isDragging, setIsDragging] = useState(false);
|
const [isDragging, setIsDragging] = useState(false);
|
||||||
|
|
||||||
const elementStyle = useRef<CSSStyleDeclaration>();
|
const elementStyle = useRef<CSSStyleDeclaration>(undefined);
|
||||||
const previousClickPosX = useRef<Positions>([0, 0, 0]);
|
const previousClickPosX = useRef<Positions>([0, 0, 0]);
|
||||||
const previousClickPosY = useRef<Positions>([0, 0, 0]);
|
const previousClickPosY = useRef<Positions>([0, 0, 0]);
|
||||||
const previousClickTime = useRef<ClickTimes>([0, 0, 0]);
|
const previousClickTime = useRef<ClickTimes>([0, 0, 0]);
|
||||||
const scrollAtT0 = useRef<[ScrollLeft: number, ScrollTop: number]>([0, 0]);
|
const scrollAtT0 = useRef<[ScrollLeft: number, ScrollTop: number]>([0, 0]);
|
||||||
const inertiaTimeInterval = useRef<NodeJS.Timeout>();
|
const inertiaTimeInterval = useRef<NodeJS.Timeout>(undefined);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const element = ref?.current;
|
const element = ref?.current;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import { RefObject, useLayoutEffect, useState } from 'react';
|
import { RefObject, useLayoutEffect, useState } from 'react';
|
||||||
|
|
||||||
export const useResizeObserver = (
|
export const useResizeObserver = (
|
||||||
ref: RefObject<HTMLElement> | HTMLElement | undefined | null,
|
ref: RefObject<HTMLElement | null> | HTMLElement | undefined | null,
|
||||||
callback: ResizeObserverCallback,
|
callback: ResizeObserverCallback,
|
||||||
): (() => void) => {
|
): (() => void) => {
|
||||||
const [disconnect, setDisconnect] = useState<() => void>(() => {});
|
const [disconnect, setDisconnect] = useState<() => void>(() => {});
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
import { LongPressPointerHandlers, LongPressResult } from 'use-long-press/lib/use-long-press.types';
|
import { LongPressPointerHandlers, LongPressResult } from 'use-long-press/lib/use-long-press.types';
|
||||||
import { PopupState } from 'material-ui-popup-state/hooks';
|
import { PopupState } from 'material-ui-popup-state/hooks';
|
||||||
|
import type { JSX } from 'react';
|
||||||
import { SelectableCollectionReturnType } from '@/modules/collection/hooks/useSelectableCollection.ts';
|
import { SelectableCollectionReturnType } from '@/modules/collection/hooks/useSelectableCollection.ts';
|
||||||
import { useManageMangaLibraryState } from '@/modules/manga/hooks/useManageMangaLibraryState.tsx';
|
import { useManageMangaLibraryState } from '@/modules/manga/hooks/useManageMangaLibraryState.tsx';
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import React, {
|
|||||||
useMemo,
|
useMemo,
|
||||||
useRef,
|
useRef,
|
||||||
useState,
|
useState,
|
||||||
|
type JSX,
|
||||||
} from 'react';
|
} from 'react';
|
||||||
import Grid, { GridTypeMap } from '@mui/material/Grid';
|
import Grid, { GridTypeMap } from '@mui/material/Grid';
|
||||||
import Box, { BoxProps } from '@mui/material/Box';
|
import Box, { BoxProps } from '@mui/material/Box';
|
||||||
@@ -164,7 +165,7 @@ const VerticalGrid = forwardRef(
|
|||||||
const snapshotSessionKey = getGridSnapshotKey(location);
|
const snapshotSessionKey = getGridSnapshotKey(location);
|
||||||
const [snapshot] = useSessionStorage<GridStateSnapshot | undefined>(snapshotSessionKey, undefined);
|
const [snapshot] = useSessionStorage<GridStateSnapshot | undefined>(snapshotSessionKey, undefined);
|
||||||
|
|
||||||
const persistGridStateTimeout = useRef<NodeJS.Timeout | undefined>();
|
const persistGridStateTimeout = useRef<NodeJS.Timeout | undefined>(undefined);
|
||||||
const persistGridState = (gridState: GridStateSnapshot) => {
|
const persistGridState = (gridState: GridStateSnapshot) => {
|
||||||
const currentUrl = window.location.href;
|
const currentUrl = window.location.href;
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export const ReaderNavBarDesktopAutoScroll = ({
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { isActive, toggleActive } = useReaderAutoScrollContext();
|
const { isActive, toggleActive } = useReaderAutoScrollContext();
|
||||||
|
|
||||||
const updateTimeout = useRef<NodeJS.Timeout>();
|
const updateTimeout = useRef<NodeJS.Timeout>(undefined);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack sx={{ flexDirection: 'row', gap: 1 }}>
|
<Stack sx={{ flexDirection: 'row', gap: 1 }}>
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ const BaseReaderProgressBar = ({
|
|||||||
fullSegmentClicks: boolean;
|
fullSegmentClicks: boolean;
|
||||||
}) => {
|
}) => {
|
||||||
const progressBarRef = useRef<HTMLDivElement | null>(null);
|
const progressBarRef = useRef<HTMLDivElement | null>(null);
|
||||||
const draggingDetectionTimeout = useRef<NodeJS.Timeout>();
|
const draggingDetectionTimeout = useRef<NodeJS.Timeout>(undefined);
|
||||||
|
|
||||||
const [totalPagesTextWidth, setTotalPagesTextWidth] = useState(0);
|
const [totalPagesTextWidth, setTotalPagesTextWidth] = useState(0);
|
||||||
const totalPagesTextRef = useRef<HTMLSpanElement | null>(null);
|
const totalPagesTextRef = useRef<HTMLSpanElement | null>(null);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import { MutableRefObject, useEffect, useRef } from 'react';
|
import { MutableRefObject, useEffect, useRef } from 'react';
|
||||||
|
|
||||||
export const useReaderHideCursorOnInactivity = (scrollElementRef: MutableRefObject<HTMLDivElement | null>) => {
|
export const useReaderHideCursorOnInactivity = (scrollElementRef: MutableRefObject<HTMLDivElement | null>) => {
|
||||||
const mouseInactiveTimeout = useRef<NodeJS.Timeout>();
|
const mouseInactiveTimeout = useRef<NodeJS.Timeout>(undefined);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const setCursorVisibility = (visible: boolean) => {
|
const setCursorVisibility = (visible: boolean) => {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export const useReaderSetPagesState = (
|
|||||||
setPageToScrollToIndex: ReaderStatePages['setPageToScrollToIndex'],
|
setPageToScrollToIndex: ReaderStatePages['setPageToScrollToIndex'],
|
||||||
setTransitionPageMode: ReaderStatePages['setTransitionPageMode'],
|
setTransitionPageMode: ReaderStatePages['setTransitionPageMode'],
|
||||||
) => {
|
) => {
|
||||||
const previousPageData = useRef<string[]>();
|
const previousPageData = useRef<string[]>(undefined);
|
||||||
|
|
||||||
useLayoutEffect(() => {
|
useLayoutEffect(() => {
|
||||||
const pagesPayload = pagesResponse.data?.fetchChapterPages;
|
const pagesPayload = pagesResponse.data?.fetchChapterPages;
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ export const useReaderShowSettingPreviewOnChange = (
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
// show setting previews on change or when open reader
|
// show setting previews on change or when open reader
|
||||||
const previousReadingMode = useRef<IReaderSettingsWithDefaultFlag['readingMode']>();
|
const previousReadingMode = useRef<IReaderSettingsWithDefaultFlag['readingMode']>(undefined);
|
||||||
const previousTapZoneLayout = useRef<IReaderSettingsWithDefaultFlag['tapZoneLayout']>();
|
const previousTapZoneLayout = useRef<IReaderSettingsWithDefaultFlag['tapZoneLayout']>(undefined);
|
||||||
const previousTapZoneInvertMode = useRef<IReaderSettingsWithDefaultFlag['tapZoneInvertMode']>();
|
const previousTapZoneInvertMode = useRef<IReaderSettingsWithDefaultFlag['tapZoneInvertMode']>(undefined);
|
||||||
const isInitialPreview = useRef(true);
|
const isInitialPreview = useRef(true);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ForwardRefExoticComponent, MemoExoticComponent, RefAttributes } from 'react';
|
import { NamedExoticComponent, RefAttributes } from 'react';
|
||||||
import {
|
import {
|
||||||
IReaderSettings,
|
IReaderSettings,
|
||||||
IReaderSettingsWithDefaultFlag,
|
IReaderSettingsWithDefaultFlag,
|
||||||
@@ -59,7 +59,7 @@ export const isAutoWebtoonMode = (
|
|||||||
|
|
||||||
export const getPagerForReadingMode = (
|
export const getPagerForReadingMode = (
|
||||||
readingMode: ReadingMode,
|
readingMode: ReadingMode,
|
||||||
): MemoExoticComponent<ForwardRefExoticComponent<ReaderPagerProps & RefAttributes<HTMLDivElement>>> => {
|
): NamedExoticComponent<ReaderPagerProps & RefAttributes<HTMLDivElement>> => {
|
||||||
switch (readingMode) {
|
switch (readingMode) {
|
||||||
case ReadingMode.SINGLE_PAGE:
|
case ReadingMode.SINGLE_PAGE:
|
||||||
return ReaderPagedPager;
|
return ReaderPagedPager;
|
||||||
|
|||||||
52
yarn.lock
52
yarn.lock
@@ -2983,12 +2983,10 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
|
|
||||||
"@types/react-dom@18.3.0":
|
"@types/react-dom@19.1.2":
|
||||||
version "18.3.0"
|
version "19.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0"
|
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.2.tgz#bd1fe3b8c28a3a2e942f85314dcfb71f531a242f"
|
||||||
integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==
|
integrity sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==
|
||||||
dependencies:
|
|
||||||
"@types/react" "*"
|
|
||||||
|
|
||||||
"@types/react-transition-group@^4.4.12":
|
"@types/react-transition-group@^4.4.12":
|
||||||
version "4.4.12"
|
version "4.4.12"
|
||||||
@@ -3003,12 +3001,11 @@
|
|||||||
"@types/prop-types" "*"
|
"@types/prop-types" "*"
|
||||||
csstype "^3.0.2"
|
csstype "^3.0.2"
|
||||||
|
|
||||||
"@types/react@18.3.5":
|
"@types/react@19.1.2":
|
||||||
version "18.3.5"
|
version "19.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.5.tgz#5f524c2ad2089c0ff372bbdabc77ca2c4dbadf8f"
|
resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.2.tgz#11df86f66f188f212c90ecb537327ec68bfd593f"
|
||||||
integrity sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==
|
integrity sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/prop-types" "*"
|
|
||||||
csstype "^3.0.2"
|
csstype "^3.0.2"
|
||||||
|
|
||||||
"@types/sanitize-html@2.15.0":
|
"@types/sanitize-html@2.15.0":
|
||||||
@@ -6395,7 +6392,7 @@ log-update@^6.1.0:
|
|||||||
strip-ansi "^7.1.0"
|
strip-ansi "^7.1.0"
|
||||||
wrap-ansi "^9.0.0"
|
wrap-ansi "^9.0.0"
|
||||||
|
|
||||||
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
|
loose-envify@^1.0.0, loose-envify@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
||||||
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
||||||
@@ -7074,13 +7071,12 @@ queue-microtask@^1.2.2:
|
|||||||
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||||
|
|
||||||
react-dom@18.3.1:
|
react-dom@19.1.0:
|
||||||
version "18.3.1"
|
version "19.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
|
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.0.tgz#133558deca37fa1d682708df8904b25186793623"
|
||||||
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
|
integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.1.0"
|
scheduler "^0.26.0"
|
||||||
scheduler "^0.23.2"
|
|
||||||
|
|
||||||
react-hotkeys-hook@5.0.1:
|
react-hotkeys-hook@5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
@@ -7145,12 +7141,10 @@ react-virtuoso@4.12.6:
|
|||||||
resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.12.6.tgz#20fe374d43cce3c9821e29f4cc4d050596d06d01"
|
resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.12.6.tgz#20fe374d43cce3c9821e29f4cc4d050596d06d01"
|
||||||
integrity sha512-bfvS6aCL1ehXmq39KRiz/vxznGUbtA27I5I24TYCe1DhMf84O3aVNCIwrSjYQjkJGJGzY46ihdN8WkYlemuhMQ==
|
integrity sha512-bfvS6aCL1ehXmq39KRiz/vxznGUbtA27I5I24TYCe1DhMf84O3aVNCIwrSjYQjkJGJGzY46ihdN8WkYlemuhMQ==
|
||||||
|
|
||||||
react@18.3.1:
|
react@19.1.0:
|
||||||
version "18.3.1"
|
version "19.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
|
resolved "https://registry.yarnpkg.com/react/-/react-19.1.0.tgz#926864b6c48da7627f004795d6cce50e90793b75"
|
||||||
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
|
integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==
|
||||||
dependencies:
|
|
||||||
loose-envify "^1.1.0"
|
|
||||||
|
|
||||||
readable-stream@^3.4.0, readable-stream@^3.6.0:
|
readable-stream@^3.4.0, readable-stream@^3.6.0:
|
||||||
version "3.6.2"
|
version "3.6.2"
|
||||||
@@ -7505,12 +7499,10 @@ sanitize-html@2.16.0:
|
|||||||
parse-srcset "^1.0.2"
|
parse-srcset "^1.0.2"
|
||||||
postcss "^8.3.11"
|
postcss "^8.3.11"
|
||||||
|
|
||||||
scheduler@^0.23.2:
|
scheduler@^0.26.0:
|
||||||
version "0.23.2"
|
version "0.26.0"
|
||||||
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3"
|
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337"
|
||||||
integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==
|
integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==
|
||||||
dependencies:
|
|
||||||
loose-envify "^1.1.0"
|
|
||||||
|
|
||||||
scuid@^1.1.0:
|
scuid@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user