Compare commits
1 Commits
main
...
jc/react-r
| Author | SHA1 | Date |
|---|---|---|
|
|
0b212d2c3c |
|
|
@ -70,6 +70,7 @@
|
||||||
"@types/prompts": "^2.0.9",
|
"@types/prompts": "^2.0.9",
|
||||||
"@types/react": "^17.0.2",
|
"@types/react": "^17.0.2",
|
||||||
"@types/react-dev-utils": "^9.0.1",
|
"@types/react-dev-utils": "^9.0.1",
|
||||||
|
"@types/react-helmet": "^6.0.0",
|
||||||
"@types/react-test-renderer": "^17.0.1",
|
"@types/react-test-renderer": "^17.0.1",
|
||||||
"@types/semver": "^7.1.0",
|
"@types/semver": "^7.1.0",
|
||||||
"@types/shelljs": "^0.8.6",
|
"@types/shelljs": "^0.8.6",
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,8 @@
|
||||||
"@docusaurus/types": "2.0.0-beta.15",
|
"@docusaurus/types": "2.0.0-beta.15",
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
"@types/react-helmet": "*",
|
"@types/react-helmet": "*",
|
||||||
"@types/react-router-config": "*",
|
"react-router": "6.x",
|
||||||
"@types/react-router-dom": "*"
|
"react-router-dom": "6.x"
|
||||||
},
|
},
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,11 +34,11 @@ declare module '@generated/registry' {
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@generated/routes' {
|
declare module '@generated/routes' {
|
||||||
import type {RouteConfig} from 'react-router-config';
|
import type {RouteObject} from 'react-router';
|
||||||
|
|
||||||
type Route = {
|
type Route = {
|
||||||
readonly path: string;
|
readonly path: string;
|
||||||
readonly component: RouteConfig['component'];
|
readonly component: RouteObject['element'];
|
||||||
readonly exact?: boolean;
|
readonly exact?: boolean;
|
||||||
readonly routes?: Route[];
|
readonly routes?: Route[];
|
||||||
};
|
};
|
||||||
|
|
@ -158,6 +158,8 @@ declare module '@docusaurus/Link' {
|
||||||
readonly to?: string;
|
readonly to?: string;
|
||||||
readonly href?: string;
|
readonly href?: string;
|
||||||
readonly autoAddBaseUrl?: boolean;
|
readonly autoAddBaseUrl?: boolean;
|
||||||
|
readonly isActive?: boolean;
|
||||||
|
readonly activeClassName?: string;
|
||||||
|
|
||||||
// escape hatch in case broken links check is annoying for a specific link
|
// escape hatch in case broken links check is annoying for a specific link
|
||||||
readonly 'data-noBrokenLinkCheck'?: boolean;
|
readonly 'data-noBrokenLinkCheck'?: boolean;
|
||||||
|
|
@ -240,13 +242,9 @@ declare module '@docusaurus/Translate' {
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@docusaurus/router' {
|
declare module '@docusaurus/router' {
|
||||||
// eslint-disable-next-line import/no-extraneous-dependencies, no-restricted-syntax
|
// eslint-disable-next-line no-restricted-syntax
|
||||||
export * from 'react-router-dom';
|
export * from 'react-router-dom';
|
||||||
}
|
}
|
||||||
declare module '@docusaurus/history' {
|
|
||||||
// eslint-disable-next-line import/no-extraneous-dependencies, no-restricted-syntax
|
|
||||||
export * from 'history';
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module '@docusaurus/useDocusaurusContext' {
|
declare module '@docusaurus/useDocusaurusContext' {
|
||||||
import type {DocusaurusContext} from '@docusaurus/types';
|
import type {DocusaurusContext} from '@docusaurus/types';
|
||||||
|
|
@ -315,10 +313,9 @@ declare module '@docusaurus/Noop' {
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@docusaurus/renderRoutes' {
|
declare module '@docusaurus/renderRoutes' {
|
||||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
import type {useRoutes} from 'react-router';
|
||||||
import {renderRoutes} from 'react-router-config';
|
|
||||||
|
|
||||||
export default renderRoutes;
|
export default useRoutes;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@docusaurus/useGlobalData' {
|
declare module '@docusaurus/useGlobalData' {
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
"postcss": "^8.3.7",
|
"postcss": "^8.3.7",
|
||||||
"prism-react-renderer": "^1.2.1",
|
"prism-react-renderer": "^1.2.1",
|
||||||
"prismjs": "^1.26.0",
|
"prismjs": "^1.26.0",
|
||||||
"react-router-dom": "^5.2.0",
|
"react-router-dom": "^6.0.2",
|
||||||
"rtlcss": "^3.3.0"
|
"rtlcss": "^3.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, {useRef} from 'react';
|
import React, {useRef} from 'react';
|
||||||
import {useHistory} from '@docusaurus/router';
|
import {useNavigationType} from '@docusaurus/router';
|
||||||
import Translate from '@docusaurus/Translate';
|
import Translate from '@docusaurus/Translate';
|
||||||
import {useLocationChange} from '@docusaurus/theme-common';
|
import {useLocationChange} from '@docusaurus/theme-common';
|
||||||
|
|
||||||
|
|
@ -20,7 +20,7 @@ function programmaticFocus(el: HTMLElement) {
|
||||||
|
|
||||||
function SkipToContent(): JSX.Element {
|
function SkipToContent(): JSX.Element {
|
||||||
const containerRef = useRef<HTMLDivElement>(null);
|
const containerRef = useRef<HTMLDivElement>(null);
|
||||||
const {action} = useHistory();
|
const action = useNavigationType();
|
||||||
const handleSkip = (e: React.MouseEvent<HTMLAnchorElement>) => {
|
const handleSkip = (e: React.MouseEvent<HTMLAnchorElement>) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {useHistory} from '@docusaurus/router';
|
import {useNavigate} from '@docusaurus/router';
|
||||||
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
||||||
import {useCallback, useEffect, useState} from 'react';
|
import {useCallback, useEffect, useState} from 'react';
|
||||||
|
|
||||||
|
|
@ -18,7 +18,7 @@ interface UseSearchPageReturn {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function useSearchPage(): UseSearchPageReturn {
|
export default function useSearchPage(): UseSearchPageReturn {
|
||||||
const history = useHistory();
|
const navigate = useNavigate();
|
||||||
const {
|
const {
|
||||||
siteConfig: {baseUrl},
|
siteConfig: {baseUrl},
|
||||||
} = useDocusaurusContext();
|
} = useDocusaurusContext();
|
||||||
|
|
@ -43,12 +43,15 @@ export default function useSearchPage(): UseSearchPageReturn {
|
||||||
searchParams.delete(SEARCH_PARAM_QUERY);
|
searchParams.delete(SEARCH_PARAM_QUERY);
|
||||||
}
|
}
|
||||||
|
|
||||||
history.replace({
|
navigate(
|
||||||
search: searchParams.toString(),
|
{
|
||||||
});
|
search: searchParams.toString(),
|
||||||
|
},
|
||||||
|
{replace: true},
|
||||||
|
);
|
||||||
setSearchQueryState(newSearchQuery);
|
setSearchQueryState(newSearchQuery);
|
||||||
},
|
},
|
||||||
[history],
|
[navigate],
|
||||||
);
|
);
|
||||||
|
|
||||||
const generateSearchPageLink = useCallback(
|
const generateSearchPageLink = useCallback(
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {useEffect, useRef} from 'react';
|
import {useEffect, useRef} from 'react';
|
||||||
|
import type {Location, NavigationType} from '@docusaurus/router';
|
||||||
import {useHistory} from '@docusaurus/router';
|
import {useHistory} from '@docusaurus/router';
|
||||||
import type {Location, Action} from '@docusaurus/history';
|
|
||||||
|
|
||||||
type HistoryBlockHandler = (location: Location, action: Action) => void | false;
|
type HistoryBlockHandler = (
|
||||||
|
location: Location,
|
||||||
|
action: NavigationType,
|
||||||
|
) => void | false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permits to register a handler that will be called on history actions (pop,
|
* Permits to register a handler that will be called on history actions (pop,
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {useEffect} from 'react';
|
import {useEffect} from 'react';
|
||||||
import {useLocation} from '@docusaurus/router';
|
import {useLocation, type Location} from '@docusaurus/router';
|
||||||
import type {Location} from '@docusaurus/history';
|
|
||||||
import {usePrevious} from './usePrevious';
|
import {usePrevious} from './usePrevious';
|
||||||
import {useDynamicCallback} from './reactUtils';
|
import {useDynamicCallback} from './reactUtils';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
import React, {useState, useRef, useCallback, useMemo} from 'react';
|
import React, {useState, useRef, useCallback, useMemo} from 'react';
|
||||||
import {createPortal} from 'react-dom';
|
import {createPortal} from 'react-dom';
|
||||||
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
||||||
import {useHistory} from '@docusaurus/router';
|
import {useNavigate} from '@docusaurus/router';
|
||||||
import {useBaseUrlUtils} from '@docusaurus/useBaseUrl';
|
import {useBaseUrlUtils} from '@docusaurus/useBaseUrl';
|
||||||
import Link from '@docusaurus/Link';
|
import Link from '@docusaurus/Link';
|
||||||
import Head from '@docusaurus/Head';
|
import Head from '@docusaurus/Head';
|
||||||
|
|
@ -105,7 +105,7 @@ function DocSearch({
|
||||||
};
|
};
|
||||||
|
|
||||||
const {withBaseUrl} = useBaseUrlUtils();
|
const {withBaseUrl} = useBaseUrlUtils();
|
||||||
const history = useHistory();
|
const navigate = useNavigate();
|
||||||
const searchContainer = useRef<HTMLDivElement | null>(null);
|
const searchContainer = useRef<HTMLDivElement | null>(null);
|
||||||
const searchButtonRef = useRef<HTMLButtonElement>(null);
|
const searchButtonRef = useRef<HTMLButtonElement>(null);
|
||||||
const [isOpen, setIsOpen] = useState(false);
|
const [isOpen, setIsOpen] = useState(false);
|
||||||
|
|
@ -160,7 +160,7 @@ function DocSearch({
|
||||||
if (isRegexpStringMatch(externalUrlRegex, itemUrl)) {
|
if (isRegexpStringMatch(externalUrlRegex, itemUrl)) {
|
||||||
window.location.href = itemUrl!;
|
window.location.href = itemUrl!;
|
||||||
} else {
|
} else {
|
||||||
history.push(itemUrl!);
|
navigate(itemUrl!);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}).current;
|
}).current;
|
||||||
|
|
|
||||||
|
|
@ -84,9 +84,8 @@
|
||||||
"react-helmet-async": "^1.2.2",
|
"react-helmet-async": "^1.2.2",
|
||||||
"react-loadable": "npm:@docusaurus/react-loadable@5.5.2",
|
"react-loadable": "npm:@docusaurus/react-loadable@5.5.2",
|
||||||
"react-loadable-ssr-addon-v5-slorber": "^1.0.1",
|
"react-loadable-ssr-addon-v5-slorber": "^1.0.1",
|
||||||
"react-router": "^5.2.0",
|
"react-router": "^6.0.2",
|
||||||
"react-router-config": "^5.1.1",
|
"react-router-dom": "^6.0.2",
|
||||||
"react-router-dom": "^5.2.0",
|
|
||||||
"remark-admonitions": "^1.2.1",
|
"remark-admonitions": "^1.2.1",
|
||||||
"rtl-detect": "^1.0.4",
|
"rtl-detect": "^1.0.4",
|
||||||
"semver": "^7.3.4",
|
"semver": "^7.3.4",
|
||||||
|
|
|
||||||
|
|
@ -6,21 +6,20 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {Route, withRouter, type RouteComponentProps} from 'react-router-dom';
|
import {Route, type RouteComponentProps} from 'react-router-dom';
|
||||||
import type {RouteConfig} from 'react-router-config';
|
import type {RouteObject, Location} from 'react-router';
|
||||||
import nprogress from 'nprogress';
|
import nprogress from 'nprogress';
|
||||||
|
|
||||||
import clientLifecyclesDispatcher from './client-lifecycles-dispatcher';
|
import clientLifecyclesDispatcher from './client-lifecycles-dispatcher';
|
||||||
import preload from './preload';
|
import preload from './preload';
|
||||||
import normalizeLocation from './normalizeLocation';
|
import normalizeLocation from './normalizeLocation';
|
||||||
import type {Location} from '@docusaurus/history';
|
|
||||||
|
|
||||||
import './nprogress.css';
|
import './nprogress.css';
|
||||||
|
|
||||||
nprogress.configure({showSpinner: false});
|
nprogress.configure({showSpinner: false});
|
||||||
|
|
||||||
interface Props extends RouteComponentProps {
|
interface Props extends RouteComponentProps {
|
||||||
readonly routes: RouteConfig[];
|
readonly routes: RouteObject[];
|
||||||
readonly delay: number;
|
readonly delay: number;
|
||||||
readonly location: Location;
|
readonly location: Location;
|
||||||
}
|
}
|
||||||
|
|
@ -129,4 +128,4 @@ class PendingNavigation extends React.Component<Props, State> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default withRouter(PendingNavigation);
|
export default PendingNavigation;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {matchRoutes} from 'react-router-config';
|
import {matchRoutes} from 'react-router';
|
||||||
import routesChunkNames from '@generated/routesChunkNames';
|
import routesChunkNames from '@generated/routesChunkNames';
|
||||||
import routes from '@generated/routes';
|
import routes from '@generated/routes';
|
||||||
import prefetchHelper from './prefetch';
|
import prefetchHelper from './prefetch';
|
||||||
|
|
@ -58,7 +58,7 @@ const docusaurus = {
|
||||||
fetched[routePath] = true;
|
fetched[routePath] = true;
|
||||||
|
|
||||||
// Find all webpack chunk names needed.
|
// Find all webpack chunk names needed.
|
||||||
const matches = matchRoutes(routes, routePath);
|
const matches = matchRoutes(routes, routePath)!;
|
||||||
|
|
||||||
const chunkNamesNeeded = matches.flatMap((match) =>
|
const chunkNamesNeeded = matches.flatMap((match) =>
|
||||||
getChunkNamesToLoad(match.route.path),
|
getChunkNamesToLoad(match.route.path),
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,6 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {renderRoutes} from 'react-router-config';
|
import {useRoutes} from 'react-router';
|
||||||
|
|
||||||
export default renderRoutes;
|
export default useRoutes;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import type {Location} from '@docusaurus/history';
|
import type {Location} from 'react-router';
|
||||||
|
|
||||||
// Memoize previously normalized pathnames.
|
// Memoize previously normalized pathnames.
|
||||||
const pathnames: Record<string, string> = {};
|
const pathnames: Record<string, string> = {};
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {matchRoutes, type RouteConfig} from 'react-router-config';
|
import {matchRoutes, type RouteObject} from 'react-router';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to make sure all async components for that particular route
|
* Helper function to make sure all async components for that particular route
|
||||||
|
|
@ -17,17 +17,17 @@ import {matchRoutes, type RouteConfig} from 'react-router-config';
|
||||||
* @returns Promise object represents whether pathname has been preloaded
|
* @returns Promise object represents whether pathname has been preloaded
|
||||||
*/
|
*/
|
||||||
export default function preload(
|
export default function preload(
|
||||||
routes: RouteConfig[],
|
routes: RouteObject[],
|
||||||
pathname: string,
|
pathname: string,
|
||||||
): Promise<void[]> {
|
): Promise<void[]> {
|
||||||
const matches = matchRoutes(routes, pathname);
|
const matches = matchRoutes(routes, pathname)!;
|
||||||
|
|
||||||
return Promise.all(
|
return Promise.all(
|
||||||
matches.map((match) => {
|
matches.map((match) => {
|
||||||
const {component} = match.route;
|
const {element} = match.route;
|
||||||
|
|
||||||
// @ts-expect-error: ComponentCreator injected this method.
|
// @ts-expect-error: ComponentCreator injected this method.
|
||||||
if (component && component.preload) {
|
if (element && element.preload) {
|
||||||
// @ts-expect-error: checked above.
|
// @ts-expect-error: checked above.
|
||||||
return component.preload();
|
return component.preload();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,7 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {
|
import {matchRoutes} from 'react-router';
|
||||||
matchRoutes,
|
|
||||||
type RouteConfig as RRRouteConfig,
|
|
||||||
} from 'react-router-config';
|
|
||||||
import fs from 'fs-extra';
|
import fs from 'fs-extra';
|
||||||
import {mapValues, pickBy, countBy} from 'lodash';
|
import {mapValues, pickBy, countBy} from 'lodash';
|
||||||
import type {RouteConfig, ReportingSeverity} from '@docusaurus/types';
|
import type {RouteConfig, ReportingSeverity} from '@docusaurus/types';
|
||||||
|
|
@ -21,11 +18,6 @@ import {
|
||||||
import {getAllFinalRoutes} from './utils';
|
import {getAllFinalRoutes} from './utils';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
|
||||||
function toReactRouterRoutes(routes: RouteConfig[]): RRRouteConfig[] {
|
|
||||||
// @ts-expect-error: types incompatible???
|
|
||||||
return routes as RRRouteConfig[];
|
|
||||||
}
|
|
||||||
|
|
||||||
type BrokenLink = {
|
type BrokenLink = {
|
||||||
link: string;
|
link: string;
|
||||||
resolvedLink: string;
|
resolvedLink: string;
|
||||||
|
|
@ -56,7 +48,7 @@ function getPageBrokenLinks({
|
||||||
|
|
||||||
function isBrokenLink(link: string) {
|
function isBrokenLink(link: string) {
|
||||||
const matchedRoutes = [link, decodeURI(link)]
|
const matchedRoutes = [link, decodeURI(link)]
|
||||||
.map((l) => matchRoutes(toReactRouterRoutes(routes), l))
|
.map((l) => matchRoutes(routes, l)!)
|
||||||
.reduce((prev, cur) => prev.concat(cur));
|
.reduce((prev, cur) => prev.concat(cur));
|
||||||
return matchedRoutes.length === 0;
|
return matchedRoutes.length === 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import React, {
|
||||||
useEffect,
|
useEffect,
|
||||||
forwardRef,
|
forwardRef,
|
||||||
} from 'react';
|
} from 'react';
|
||||||
import {useHistory} from '@docusaurus/router';
|
import {useNavigate, useLocation} from '@docusaurus/router';
|
||||||
import styles from './styles.module.css';
|
import styles from './styles.module.css';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
@ -43,18 +43,19 @@ const APITableRow = forwardRef(
|
||||||
const entryName = getText(children);
|
const entryName = getText(children);
|
||||||
const id = name ? `${name}-${entryName}` : entryName;
|
const id = name ? `${name}-${entryName}` : entryName;
|
||||||
const anchor = `#${id}`;
|
const anchor = `#${id}`;
|
||||||
const history = useHistory();
|
const navigate = useNavigate();
|
||||||
|
const location = useLocation();
|
||||||
return (
|
return (
|
||||||
<tr
|
<tr
|
||||||
id={id}
|
id={id}
|
||||||
tabIndex={0}
|
tabIndex={0}
|
||||||
ref={history.location.hash === anchor ? ref : undefined}
|
ref={location.hash === anchor ? ref : undefined}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
history.push(anchor);
|
navigate(anchor);
|
||||||
}}
|
}}
|
||||||
onKeyDown={(e: React.KeyboardEvent) => {
|
onKeyDown={(e: React.KeyboardEvent) => {
|
||||||
if (e.key === 'Enter') {
|
if (e.key === 'Enter') {
|
||||||
history.push(anchor);
|
navigate(anchor);
|
||||||
}
|
}
|
||||||
}}>
|
}}>
|
||||||
{children.props.children}
|
{children.props.children}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, {useState, useEffect, useCallback} from 'react';
|
import React, {useState, useEffect, useCallback} from 'react';
|
||||||
import {useHistory, useLocation} from '@docusaurus/router';
|
import {useNavigate, useLocation} from '@docusaurus/router';
|
||||||
|
|
||||||
import {prepareUserState} from '../../index';
|
import {prepareUserState} from '../../index';
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ export function readOperator(search: string): Operator {
|
||||||
export default function ShowcaseFilterToggle(): JSX.Element {
|
export default function ShowcaseFilterToggle(): JSX.Element {
|
||||||
const id = 'showcase_filter_toggle';
|
const id = 'showcase_filter_toggle';
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const history = useHistory();
|
const navigate = useNavigate();
|
||||||
const [operator, setOperator] = useState(false);
|
const [operator, setOperator] = useState(false);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setOperator(readOperator(location.search) === 'AND');
|
setOperator(readOperator(location.search) === 'AND');
|
||||||
|
|
@ -37,12 +37,14 @@ export default function ShowcaseFilterToggle(): JSX.Element {
|
||||||
if (!operator) {
|
if (!operator) {
|
||||||
searchParams.append(OperatorQueryKey, operator ? 'OR' : 'AND');
|
searchParams.append(OperatorQueryKey, operator ? 'OR' : 'AND');
|
||||||
}
|
}
|
||||||
history.push({
|
navigate(
|
||||||
...location,
|
{
|
||||||
search: searchParams.toString(),
|
...location,
|
||||||
state: prepareUserState(),
|
search: searchParams.toString(),
|
||||||
});
|
},
|
||||||
}, [operator, location, history]);
|
{state: prepareUserState()},
|
||||||
|
);
|
||||||
|
}, [operator, location, navigate]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import React, {
|
||||||
useState,
|
useState,
|
||||||
useEffect,
|
useEffect,
|
||||||
} from 'react';
|
} from 'react';
|
||||||
import {useHistory, useLocation} from '@docusaurus/router';
|
import {useNavigate, useLocation} from '@docusaurus/router';
|
||||||
import {toggleListItem} from '@site/src/utils/jsUtils';
|
import {toggleListItem} from '@site/src/utils/jsUtils';
|
||||||
import {prepareUserState} from '../../index';
|
import {prepareUserState} from '../../index';
|
||||||
import type {TagType} from '@site/src/data/users';
|
import type {TagType} from '@site/src/data/users';
|
||||||
|
|
@ -42,7 +42,7 @@ function replaceSearchTags(search: string, newTags: TagType[]) {
|
||||||
const ShowcaseTagSelect = React.forwardRef<HTMLLabelElement, Props>(
|
const ShowcaseTagSelect = React.forwardRef<HTMLLabelElement, Props>(
|
||||||
({id, icon, label, tag, ...rest}, ref) => {
|
({id, icon, label, tag, ...rest}, ref) => {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const history = useHistory();
|
const navigate = useNavigate();
|
||||||
const [selected, setSelected] = useState(false);
|
const [selected, setSelected] = useState(false);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const tags = readSearchTags(location.search);
|
const tags = readSearchTags(location.search);
|
||||||
|
|
@ -52,12 +52,14 @@ const ShowcaseTagSelect = React.forwardRef<HTMLLabelElement, Props>(
|
||||||
const tags = readSearchTags(location.search);
|
const tags = readSearchTags(location.search);
|
||||||
const newTags = toggleListItem(tags, tag);
|
const newTags = toggleListItem(tags, tag);
|
||||||
const newSearch = replaceSearchTags(location.search, newTags);
|
const newSearch = replaceSearchTags(location.search, newTags);
|
||||||
history.push({
|
navigate(
|
||||||
...location,
|
{
|
||||||
search: newSearch,
|
...location,
|
||||||
state: prepareUserState(),
|
search: newSearch,
|
||||||
});
|
},
|
||||||
}, [tag, location, history]);
|
{state: prepareUserState()},
|
||||||
|
);
|
||||||
|
}, [tag, location, navigate]);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<input
|
<input
|
||||||
|
|
|
||||||
123
yarn.lock
123
yarn.lock
|
|
@ -1211,10 +1211,10 @@
|
||||||
core-js-pure "^3.20.2"
|
core-js-pure "^3.20.2"
|
||||||
regenerator-runtime "^0.13.4"
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
|
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4":
|
||||||
version "7.16.7"
|
version "7.16.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5"
|
||||||
integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==
|
integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.13.4"
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
|
|
@ -4110,7 +4110,7 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
|
|
||||||
"@types/react-router-config@*", "@types/react-router-config@^5.0.1":
|
"@types/react-router-config@^5.0.1":
|
||||||
version "5.0.6"
|
version "5.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.6.tgz#87c5c57e72d241db900d9734512c50ccec062451"
|
resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.6.tgz#87c5c57e72d241db900d9734512c50ccec062451"
|
||||||
integrity sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==
|
integrity sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==
|
||||||
|
|
@ -4119,15 +4119,6 @@
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
"@types/react-router" "*"
|
"@types/react-router" "*"
|
||||||
|
|
||||||
"@types/react-router-dom@*":
|
|
||||||
version "5.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83"
|
|
||||||
integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==
|
|
||||||
dependencies:
|
|
||||||
"@types/history" "^4.7.11"
|
|
||||||
"@types/react" "*"
|
|
||||||
"@types/react-router" "*"
|
|
||||||
|
|
||||||
"@types/react-router@*":
|
"@types/react-router@*":
|
||||||
version "5.1.18"
|
version "5.1.18"
|
||||||
resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3"
|
resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3"
|
||||||
|
|
@ -9988,24 +9979,12 @@ highlight.js@^10.7.1:
|
||||||
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
|
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
|
||||||
integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
|
integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
|
||||||
|
|
||||||
history@^4.9.0:
|
history@^5.1.0:
|
||||||
version "4.10.1"
|
version "5.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3"
|
resolved "https://registry.yarnpkg.com/history/-/history-5.1.0.tgz#2e93c09c064194d38d52ed62afd0afc9d9b01ece"
|
||||||
integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==
|
integrity sha512-zPuQgPacm2vH2xdORvGGz1wQMuHSIB56yNAy5FnLuwOwgSYyPKptJtcMm6Ev+hRGeS+GzhbmRacHzvlESbFwDg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.1.2"
|
"@babel/runtime" "^7.7.6"
|
||||||
loose-envify "^1.2.0"
|
|
||||||
resolve-pathname "^3.0.0"
|
|
||||||
tiny-invariant "^1.0.2"
|
|
||||||
tiny-warning "^1.0.0"
|
|
||||||
value-equal "^1.0.1"
|
|
||||||
|
|
||||||
hoist-non-react-statics@^3.1.0:
|
|
||||||
version "3.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
|
|
||||||
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
|
|
||||||
dependencies:
|
|
||||||
react-is "^16.7.0"
|
|
||||||
|
|
||||||
hosted-git-info@^2.1.4:
|
hosted-git-info@^2.1.4:
|
||||||
version "2.8.9"
|
version "2.8.9"
|
||||||
|
|
@ -10990,11 +10969,6 @@ is-yarn-global@^0.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
|
resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
|
||||||
integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
|
integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
|
||||||
|
|
||||||
isarray@0.0.1:
|
|
||||||
version "0.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
|
|
||||||
integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
|
|
||||||
|
|
||||||
isarray@1.0.0, isarray@~1.0.0:
|
isarray@1.0.0, isarray@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||||
|
|
@ -12376,7 +12350,7 @@ longest-streak@^2.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4"
|
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4"
|
||||||
integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==
|
integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==
|
||||||
|
|
||||||
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
|
loose-envify@^1.0.0, loose-envify@^1.1.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==
|
||||||
|
|
@ -12804,14 +12778,6 @@ min-indent@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
|
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
|
||||||
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
|
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
|
||||||
|
|
||||||
mini-create-react-context@^0.4.0:
|
|
||||||
version "0.4.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e"
|
|
||||||
integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==
|
|
||||||
dependencies:
|
|
||||||
"@babel/runtime" "^7.12.1"
|
|
||||||
tiny-warning "^1.0.3"
|
|
||||||
|
|
||||||
mini-css-extract-plugin@*, mini-css-extract-plugin@^2.5.3:
|
mini-css-extract-plugin@*, mini-css-extract-plugin@^2.5.3:
|
||||||
version "2.5.3"
|
version "2.5.3"
|
||||||
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz#c5c79f9b22ce9b4f164e9492267358dbe35376d9"
|
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz#c5c79f9b22ce9b4f164e9492267358dbe35376d9"
|
||||||
|
|
@ -14398,13 +14364,6 @@ path-to-regexp@2.2.1:
|
||||||
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45"
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45"
|
||||||
integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==
|
integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==
|
||||||
|
|
||||||
path-to-regexp@^1.7.0:
|
|
||||||
version "1.8.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
|
|
||||||
integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
|
|
||||||
dependencies:
|
|
||||||
isarray "0.0.1"
|
|
||||||
|
|
||||||
path-type@^3.0.0:
|
path-type@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
|
||||||
|
|
@ -15359,7 +15318,7 @@ react-helmet-async@^1.2.2:
|
||||||
react-fast-compare "^3.2.0"
|
react-fast-compare "^3.2.0"
|
||||||
shallowequal "^1.1.0"
|
shallowequal "^1.1.0"
|
||||||
|
|
||||||
react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0:
|
react-is@^16.12.0, react-is@^16.13.1:
|
||||||
version "16.13.1"
|
version "16.13.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||||
|
|
@ -15421,41 +15380,20 @@ react-popper@^2.2.5:
|
||||||
react-fast-compare "^3.0.1"
|
react-fast-compare "^3.0.1"
|
||||||
warning "^4.0.2"
|
warning "^4.0.2"
|
||||||
|
|
||||||
react-router-config@^5.1.1:
|
react-router-dom@6.x, react-router-dom@^6.0.2:
|
||||||
version "5.1.1"
|
version "6.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988"
|
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.0.2.tgz#860cefa697b9d4965eced3f91e82cdbc5995f3ad"
|
||||||
integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==
|
integrity sha512-cOpJ4B6raFutr0EG8O/M2fEoyQmwvZWomf1c6W2YXBZuFBx8oTk/zqjXghwScyhfrtnt0lANXV2182NQblRxFA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.1.2"
|
history "^5.1.0"
|
||||||
|
react-router "6.0.2"
|
||||||
|
|
||||||
react-router-dom@^5.2.0:
|
react-router@6.0.2, react-router@6.x, react-router@^6.0.2:
|
||||||
version "5.3.0"
|
version "6.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363"
|
resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.0.2.tgz#bd2b0fa84fd1d152671e9f654d9c0b1f5a7c86da"
|
||||||
integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==
|
integrity sha512-8/Wm3Ed8t7TuedXjAvV39+c8j0vwrI5qVsYqjFr5WkJjsJpEvNSoLRUbtqSEYzqaTUj1IV+sbPJxvO+accvU0Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.12.13"
|
history "^5.1.0"
|
||||||
history "^4.9.0"
|
|
||||||
loose-envify "^1.3.1"
|
|
||||||
prop-types "^15.6.2"
|
|
||||||
react-router "5.2.1"
|
|
||||||
tiny-invariant "^1.0.2"
|
|
||||||
tiny-warning "^1.0.0"
|
|
||||||
|
|
||||||
react-router@5.2.1, react-router@^5.2.0:
|
|
||||||
version "5.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d"
|
|
||||||
integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==
|
|
||||||
dependencies:
|
|
||||||
"@babel/runtime" "^7.12.13"
|
|
||||||
history "^4.9.0"
|
|
||||||
hoist-non-react-statics "^3.1.0"
|
|
||||||
loose-envify "^1.3.1"
|
|
||||||
mini-create-react-context "^0.4.0"
|
|
||||||
path-to-regexp "^1.7.0"
|
|
||||||
prop-types "^15.6.2"
|
|
||||||
react-is "^16.6.0"
|
|
||||||
tiny-invariant "^1.0.2"
|
|
||||||
tiny-warning "^1.0.0"
|
|
||||||
|
|
||||||
react-shallow-renderer@^16.13.1:
|
react-shallow-renderer@^16.13.1:
|
||||||
version "16.14.1"
|
version "16.14.1"
|
||||||
|
|
@ -17753,16 +17691,6 @@ timsort@^0.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
|
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
|
||||||
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
|
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
|
||||||
|
|
||||||
tiny-invariant@^1.0.2:
|
|
||||||
version "1.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9"
|
|
||||||
integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==
|
|
||||||
|
|
||||||
tiny-warning@^1.0.0, tiny-warning@^1.0.3:
|
|
||||||
version "1.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
|
|
||||||
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
|
|
||||||
|
|
||||||
tinycolor2@^1.4.1:
|
tinycolor2@^1.4.1:
|
||||||
version "1.4.2"
|
version "1.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
|
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
|
||||||
|
|
@ -18613,11 +18541,6 @@ validate-npm-package-name@^3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
builtins "^1.0.3"
|
builtins "^1.0.3"
|
||||||
|
|
||||||
value-equal@^1.0.1:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
|
|
||||||
integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==
|
|
||||||
|
|
||||||
vary@~1.1.2:
|
vary@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue