react-router-native 6.2.2 → 6.4.0-pre.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/LICENSE.md +1 -1
- package/{index.d.ts → dist/index.d.ts} +5 -6
- package/dist/index.js +135 -0
- package/dist/index.js.map +1 -0
- package/package.json +24 -18
- package/index.js +0 -112
- package/index.js.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# react-router-native
|
|
2
|
+
|
|
3
|
+
## 6.4.0-pre.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- react-router@6.4.0-pre.10
|
|
9
|
+
|
|
10
|
+
## 6.4.0-pre.9
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
- react-router@6.4.0-pre.9
|
|
16
|
+
|
|
17
|
+
## 6.4.0-pre.8
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
- react-router@6.4.0-pre.8
|
|
23
|
+
|
|
24
|
+
## 6.4.0-pre.7
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Updated dependencies
|
|
29
|
+
- `react-router@6.4.0-pre.7`
|
|
30
|
+
|
|
31
|
+
## 6.4.0-pre.6
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- Updated dependencies
|
|
36
|
+
- `react-router@6.4.0-pre.6`
|
|
37
|
+
|
|
38
|
+
## 6.4.0-pre.5
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- Updated dependencies
|
|
43
|
+
- `react-router@6.4.0-pre.5`
|
|
44
|
+
|
|
45
|
+
## 6.4.0-pre.4
|
|
46
|
+
|
|
47
|
+
### Patch Changes
|
|
48
|
+
|
|
49
|
+
- Fix missing `dist` files
|
|
50
|
+
|
|
51
|
+
## 6.4.0-pre.3
|
|
52
|
+
|
|
53
|
+
### Patch Changes
|
|
54
|
+
|
|
55
|
+
- Updated dependencies
|
package/LICENSE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
3
|
Copyright (c) React Training 2015-2019
|
|
4
|
-
Copyright (c) Remix Software 2020-
|
|
4
|
+
Copyright (c) Remix Software 2020-2022
|
|
5
5
|
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { GestureResponderEvent, TouchableHighlightProps } from "react-native";
|
|
3
|
-
import {
|
|
3
|
+
import { MemoryRouterProps, NavigateOptions } from "react-router";
|
|
4
4
|
import type { To } from "react-router";
|
|
5
5
|
import URLSearchParams from "@ungap/url-search-params";
|
|
6
|
-
export {
|
|
7
|
-
export { NavigationType } from "react-router";
|
|
8
|
-
export type { Hash, IndexRouteProps, LayoutRouteProps, Location, MemoryRouterProps, NavigateFunction, NavigateOptions, NavigateProps, Navigator, OutletProps, Params, Path, PathMatch, PathRouteProps, RouteMatch, RouteObject, RouteProps, RouterProps, RoutesProps, Pathname, Search, To, } from "react-router";
|
|
6
|
+
export type { ActionFunction, ActionFunctionArgs, DataMemoryRouterProps, DataRouteMatch, DeferredProps, Fetcher, Hash, IndexRouteProps, JsonFunction, LayoutRouteProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, OutletProps, Params, ParamParseKey, Path, PathMatch, Pathname, PathPattern, PathRouteProps, RedirectFunction, RouteMatch, RouteObject, RouteProps, RouterProps, RoutesProps, Search, ShouldRevalidateFunction, To, } from "react-router";
|
|
7
|
+
export { DataMemoryRouter, Deferred, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, createPath, createRoutesFromChildren, deferred, isDeferredError, isRouteErrorResponse, generatePath, json, matchPath, matchRoutes, parsePath, redirect, renderMatches, resolvePath, useActionData, useDeferredData, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, } from "react-router";
|
|
9
8
|
/** @internal */
|
|
10
|
-
export { UNSAFE_NavigationContext, UNSAFE_LocationContext, UNSAFE_RouteContext, } from "react-router";
|
|
9
|
+
export { UNSAFE_DataRouter, UNSAFE_DataRouterProvider, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_DataStaticRouterContext, UNSAFE_NavigationContext, UNSAFE_LocationContext, UNSAFE_RouteContext, } from "react-router";
|
|
11
10
|
export interface NativeRouterProps extends MemoryRouterProps {
|
|
12
11
|
}
|
|
13
12
|
/**
|
|
@@ -49,7 +48,7 @@ export declare function useDeepLinking(): void;
|
|
|
49
48
|
* URLSearchParams interface.
|
|
50
49
|
*/
|
|
51
50
|
export declare function useSearchParams(defaultInit?: URLSearchParamsInit): [URLSearchParams, SetURLSearchParams];
|
|
52
|
-
declare type SetURLSearchParams = (nextInit?: URLSearchParamsInit |
|
|
51
|
+
declare type SetURLSearchParams = (nextInit?: URLSearchParamsInit | ((prev: URLSearchParams) => URLSearchParamsInit), navigateOpts?: NavigateOptions) => void;
|
|
53
52
|
export declare type ParamKeyValuePair = [string, string];
|
|
54
53
|
export declare type URLSearchParamsInit = string | ParamKeyValuePair[] | Record<string, string | string[]> | URLSearchParams;
|
|
55
54
|
/**
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Router Native v6.4.0-pre.10
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Remix Software Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
import * as React from 'react';
|
|
12
|
+
import { TouchableHighlight, BackHandler, Linking } from 'react-native';
|
|
13
|
+
import { MemoryRouter, useNavigate, useLocation } from 'react-router';
|
|
14
|
+
export { DataMemoryRouter, Deferred, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouter, UNSAFE_DataRouterContext, UNSAFE_DataRouterProvider, UNSAFE_DataRouterStateContext, UNSAFE_DataStaticRouterContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, createPath, createRoutesFromChildren, deferred, generatePath, isDeferredError, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, renderMatches, resolvePath, useActionData, useDeferredData, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';
|
|
15
|
+
import URLSearchParams from '@ungap/url-search-params';
|
|
16
|
+
|
|
17
|
+
function ownKeys(object, enumerableOnly) {
|
|
18
|
+
var keys = Object.keys(object);
|
|
19
|
+
|
|
20
|
+
if (Object.getOwnPropertySymbols) {
|
|
21
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
22
|
+
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
23
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
24
|
+
})), keys.push.apply(keys, symbols);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return keys;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function _objectSpread2(target) {
|
|
31
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
32
|
+
var source = null != arguments[i] ? arguments[i] : {};
|
|
33
|
+
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
34
|
+
_defineProperty(target, key, source[key]);
|
|
35
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
36
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return target;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function _defineProperty(obj, key, value) {
|
|
44
|
+
if (key in obj) {
|
|
45
|
+
Object.defineProperty(obj, key, {
|
|
46
|
+
value: value,
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true
|
|
50
|
+
});
|
|
51
|
+
} else {
|
|
52
|
+
obj[key] = value;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return obj;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
59
|
+
if (source == null) return {};
|
|
60
|
+
var target = {};
|
|
61
|
+
var sourceKeys = Object.keys(source);
|
|
62
|
+
var key, i;
|
|
63
|
+
|
|
64
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
65
|
+
key = sourceKeys[i];
|
|
66
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
67
|
+
target[key] = source[key];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return target;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function _objectWithoutProperties(source, excluded) {
|
|
74
|
+
if (source == null) return {};
|
|
75
|
+
|
|
76
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
77
|
+
|
|
78
|
+
var key, i;
|
|
79
|
+
|
|
80
|
+
if (Object.getOwnPropertySymbols) {
|
|
81
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
82
|
+
|
|
83
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
84
|
+
key = sourceSymbolKeys[i];
|
|
85
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
86
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
87
|
+
target[key] = source[key];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return target;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
95
|
+
if (!o) return;
|
|
96
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
97
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
98
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
99
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
100
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function _arrayLikeToArray(arr, len) {
|
|
104
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
105
|
+
|
|
106
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
107
|
+
|
|
108
|
+
return arr2;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
112
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
113
|
+
if (it) return (it = it.call(o)).next.bind(it);
|
|
114
|
+
|
|
115
|
+
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
116
|
+
if (it) o = it;
|
|
117
|
+
var i = 0;
|
|
118
|
+
return function () {
|
|
119
|
+
if (i >= o.length) return {
|
|
120
|
+
done: true
|
|
121
|
+
};
|
|
122
|
+
return {
|
|
123
|
+
done: false,
|
|
124
|
+
value: o[i++]
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
var _excluded=["onPress","replace","state","to"];function NativeRouter(props){return React.createElement(MemoryRouter,_objectSpread2({},props));}function Link(_ref){var onPress=_ref.onPress,_ref$replace=_ref.replace,replace=_ref$replace===void 0?false:_ref$replace,state=_ref.state,to=_ref.to,rest=_objectWithoutProperties(_ref,_excluded);var internalOnPress=useLinkPressHandler(to,{replace:replace,state:state});function handlePress(event){if(onPress)onPress(event);if(!event.defaultPrevented){internalOnPress(event);}}return React.createElement(TouchableHighlight,_objectSpread2(_objectSpread2({},rest),{},{onPress:handlePress}));}var HardwareBackPressEventType="hardwareBackPress";var URLEventType="url";function useLinkPressHandler(to){var _ref2=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},replace=_ref2.replace,state=_ref2.state;var navigate=useNavigate();return function handlePress(){navigate(to,{replace:replace,state:state});};}function useHardwareBackButton(){React.useEffect(function(){function handleHardwardBackPress(){return undefined;}BackHandler.addEventListener(HardwareBackPressEventType,handleHardwardBackPress);return function(){BackHandler.removeEventListener(HardwareBackPressEventType,handleHardwardBackPress);};},[]);}function useDeepLinking(){var navigate=useNavigate();React.useEffect(function(){var current=true;Linking.getInitialURL().then(function(url){if(current){if(url)navigate(trimScheme(url));}});return function(){current=false;};},[navigate]);React.useEffect(function(){function handleURLChange(event){navigate(trimScheme(event.url));}Linking.addEventListener(URLEventType,handleURLChange);return function(){Linking.removeEventListener(URLEventType,handleURLChange);};},[navigate]);}function trimScheme(url){return url.replace(/^.*?:\/\//,"");}function useSearchParams(defaultInit){var defaultSearchParamsRef=React.useRef(createSearchParams(defaultInit));var location=useLocation();var searchParams=React.useMemo(function(){var searchParams=createSearchParams(location.search);var _loop=function _loop(key){if(!searchParams.has(key)){defaultSearchParamsRef.current.getAll(key).forEach(function(value){searchParams.append(key,value);});}};for(var _iterator=_createForOfIteratorHelperLoose(defaultSearchParamsRef.current.keys()),_step;!(_step=_iterator()).done;){var key=_step.value;_loop(key);}return searchParams;},[location.search]);var navigate=useNavigate();var setSearchParams=React.useCallback(function(nextInit,navigateOpts){var newSearchParams=createSearchParams(typeof nextInit==="function"?nextInit(searchParams):nextInit);navigate("?"+newSearchParams,navigateOpts);},[navigate,searchParams]);return [searchParams,setSearchParams];}function createSearchParams(){var init=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";return new URLSearchParams(typeof init==="string"||Array.isArray(init)||init instanceof URLSearchParams?init:Object.keys(init).reduce(function(memo,key){var value=init[key];return memo.concat(Array.isArray(value)?value.map(function(v){return [key,v];}):[[key,value]]);},[]));}
|
|
133
|
+
|
|
134
|
+
export { Link, NativeRouter, createSearchParams, useHardwareBackButton as useAndroidBackButton, useDeepLinking, useHardwareBackButton, useLinkPressHandler, useSearchParams };
|
|
135
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n BackHandler,\n GestureResponderEvent,\n Linking,\n TouchableHighlight,\n TouchableHighlightProps,\n} from \"react-native\";\nimport {\n MemoryRouter,\n MemoryRouterProps,\n NavigateOptions,\n useLocation,\n useNavigate,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nimport URLSearchParams from \"@ungap/url-search-params\";\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n DataMemoryRouterProps,\n DataRouteMatch,\n DeferredProps,\n Fetcher,\n Hash,\n IndexRouteProps,\n JsonFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n DataMemoryRouter,\n Deferred,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n Routes,\n createPath,\n createRoutesFromChildren,\n deferred,\n isDeferredError,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useDeferredData,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouter,\n UNSAFE_DataRouterProvider,\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_DataStaticRouterContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface NativeRouterProps extends MemoryRouterProps {}\n\n/**\n * A <Router> that runs on React Native.\n */\nexport function NativeRouter(props: NativeRouterProps) {\n return <MemoryRouter {...props} />;\n}\n\nexport interface LinkProps extends TouchableHighlightProps {\n children?: React.ReactNode;\n onPress?: (event: GestureResponderEvent) => void;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * A <TouchableHighlight> that navigates to a different URL when touched.\n */\nexport function Link({\n onPress,\n replace = false,\n state,\n to,\n ...rest\n}: LinkProps) {\n let internalOnPress = useLinkPressHandler(to, { replace, state });\n function handlePress(event: GestureResponderEvent) {\n if (onPress) onPress(event);\n if (!event.defaultPrevented) {\n internalOnPress(event);\n }\n }\n\n return <TouchableHighlight {...rest} onPress={handlePress} />;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\nconst HardwareBackPressEventType = \"hardwareBackPress\";\nconst URLEventType = \"url\";\n\n/**\n * Handles the press behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same press behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkPressHandler(\n to: To,\n {\n replace,\n state,\n }: {\n replace?: boolean;\n state?: any;\n } = {}\n): (event: GestureResponderEvent) => void {\n let navigate = useNavigate();\n return function handlePress() {\n navigate(to, { replace, state });\n };\n}\n\n/**\n * Enables support for the hardware back button on Android.\n */\nexport function useHardwareBackButton() {\n React.useEffect(() => {\n function handleHardwardBackPress() {\n return undefined;\n // TODO: The implementation will be something like this\n // if (history.index === 0) {\n // return false; // home screen\n // } else {\n // history.back();\n // return true;\n // }\n }\n\n BackHandler.addEventListener(\n HardwareBackPressEventType,\n handleHardwardBackPress\n );\n\n return () => {\n BackHandler.removeEventListener(\n HardwareBackPressEventType,\n handleHardwardBackPress\n );\n };\n }, []);\n}\n\nexport { useHardwareBackButton as useAndroidBackButton };\n\n/**\n * Enables deep linking, both on the initial app launch and for\n * subsequent incoming links.\n */\nexport function useDeepLinking() {\n let navigate = useNavigate();\n\n // Get the initial URL\n React.useEffect(() => {\n let current = true;\n\n Linking.getInitialURL().then((url) => {\n if (current) {\n if (url) navigate(trimScheme(url));\n }\n });\n\n return () => {\n current = false;\n };\n }, [navigate]);\n\n // Listen for URL changes\n React.useEffect(() => {\n function handleURLChange(event: { url: string }) {\n navigate(trimScheme(event.url));\n }\n\n Linking.addEventListener(URLEventType, handleURLChange);\n\n return () => {\n Linking.removeEventListener(URLEventType, handleURLChange);\n };\n }, [navigate]);\n}\n\nfunction trimScheme(url: string) {\n return url.replace(/^.*?:\\/\\//, \"\");\n}\n\n/**\n * A convenient wrapper for accessing individual query parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback<SetURLSearchParams>(\n (nextInit, navigateOpts) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n navigate(\"?\" + newSearchParams, navigateOpts);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\ntype SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n"],"names":["props","createElement","MemoryRouter","onPress","replace","state","to","rest","useLinkPressHandler","handlePress","event","defaultPrevented","internalOnPress","TouchableHighlight","HardwareBackPressEventType","navigate","useNavigate","React","useEffect","handleHardwardBackPress","BackHandler","addEventListener","removeEventListener","current","Linking","getInitialURL","then","url","trimScheme","URLEventType","handleURLChange","defaultInit","useRef","createSearchParams","location","useLocation","searchParams","useMemo","search","key","has","defaultSearchParamsRef","getAll","forEach","value","append","keys","setSearchParams","useCallback","nextInit","navigateOpts","newSearchParams","Array","isArray","init","Object","reduce","memo","concat","map","v"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,35 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-router-native",
|
|
3
|
-
"version": "6.
|
|
4
|
-
"author": "Remix Software <hello@remix.run>",
|
|
3
|
+
"version": "6.4.0-pre.10",
|
|
5
4
|
"description": "Declarative routing for React Native applications",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react",
|
|
7
|
+
"router",
|
|
8
|
+
"route",
|
|
9
|
+
"routing",
|
|
10
|
+
"history",
|
|
11
|
+
"link"
|
|
12
|
+
],
|
|
6
13
|
"repository": {
|
|
7
14
|
"type": "git",
|
|
8
|
-
"url": "https://github.com/remix-run/react-router
|
|
15
|
+
"url": "https://github.com/remix-run/react-router",
|
|
9
16
|
"directory": "packages/react-router-native"
|
|
10
17
|
},
|
|
11
18
|
"license": "MIT",
|
|
12
|
-
"
|
|
13
|
-
"
|
|
19
|
+
"author": "Remix Software <hello@remix.run>",
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"main": "./dist/index.js",
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
14
23
|
"dependencies": {
|
|
15
24
|
"@ungap/url-search-params": "^0.1.4",
|
|
16
|
-
"react-router": "6.
|
|
17
|
-
|
|
25
|
+
"react-router": "6.4.0-pre.10"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"react": "^17.0.2",
|
|
29
|
+
"react-native": "^0.61.4"
|
|
18
30
|
},
|
|
19
31
|
"peerDependencies": {
|
|
20
32
|
"react": ">=16.8",
|
|
21
33
|
"react-native": ">=0.44"
|
|
22
34
|
},
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"react",
|
|
29
|
-
"router",
|
|
30
|
-
"route",
|
|
31
|
-
"routing",
|
|
32
|
-
"history",
|
|
33
|
-
"link"
|
|
35
|
+
"files": [
|
|
36
|
+
"dist/",
|
|
37
|
+
"CHANGELOG.md",
|
|
38
|
+
"LICENSE.md",
|
|
39
|
+
"README.md"
|
|
34
40
|
]
|
|
35
41
|
}
|
package/index.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* React Router Native v6.2.2
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) Remix Software Inc.
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
-
*
|
|
9
|
-
* @license MIT
|
|
10
|
-
*/
|
|
11
|
-
import { createElement, useEffect, useRef, useMemo, useCallback } from 'react';
|
|
12
|
-
import { TouchableHighlight, BackHandler, Linking } from 'react-native';
|
|
13
|
-
import { MemoryRouter, useNavigate, useLocation } from 'react-router';
|
|
14
|
-
export { MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, createPath, createRoutesFromChildren, generatePath, matchPath, matchRoutes, parsePath, renderMatches, resolvePath, useHref, useInRouterContext, useLocation, useMatch, useNavigate, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes } from 'react-router';
|
|
15
|
-
import URLSearchParams from '@ungap/url-search-params';
|
|
16
|
-
|
|
17
|
-
function _extends() {
|
|
18
|
-
_extends = Object.assign || function (target) {
|
|
19
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
20
|
-
var source = arguments[i];
|
|
21
|
-
|
|
22
|
-
for (var key in source) {
|
|
23
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
24
|
-
target[key] = source[key];
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return target;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
return _extends.apply(this, arguments);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
36
|
-
if (source == null) return {};
|
|
37
|
-
var target = {};
|
|
38
|
-
var sourceKeys = Object.keys(source);
|
|
39
|
-
var key, i;
|
|
40
|
-
|
|
41
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
42
|
-
key = sourceKeys[i];
|
|
43
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
44
|
-
target[key] = source[key];
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return target;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function _objectWithoutProperties(source, excluded) {
|
|
51
|
-
if (source == null) return {};
|
|
52
|
-
|
|
53
|
-
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
54
|
-
|
|
55
|
-
var key, i;
|
|
56
|
-
|
|
57
|
-
if (Object.getOwnPropertySymbols) {
|
|
58
|
-
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
59
|
-
|
|
60
|
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
61
|
-
key = sourceSymbolKeys[i];
|
|
62
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
63
|
-
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
64
|
-
target[key] = source[key];
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return target;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function _unsupportedIterableToArray(o, minLen) {
|
|
72
|
-
if (!o) return;
|
|
73
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
74
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
75
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
76
|
-
if (n === "Map" || n === "Set") return Array.from(o);
|
|
77
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function _arrayLikeToArray(arr, len) {
|
|
81
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
82
|
-
|
|
83
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
84
|
-
|
|
85
|
-
return arr2;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
89
|
-
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
90
|
-
if (it) return (it = it.call(o)).next.bind(it);
|
|
91
|
-
|
|
92
|
-
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
93
|
-
if (it) o = it;
|
|
94
|
-
var i = 0;
|
|
95
|
-
return function () {
|
|
96
|
-
if (i >= o.length) return {
|
|
97
|
-
done: true
|
|
98
|
-
};
|
|
99
|
-
return {
|
|
100
|
-
done: false,
|
|
101
|
-
value: o[i++]
|
|
102
|
-
};
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
var _excluded=["onPress","replace","state","to"];var _jsxFileName="/home/runner/work/react-router/react-router/packages/react-router-native/index.tsx";function NativeRouter(props){return createElement(MemoryRouter,_extends({},props,{__source:{fileName:_jsxFileName,lineNumber:131,columnNumber:10}}));}function Link(_ref){var onPress=_ref.onPress,_ref$replace=_ref.replace,replace=_ref$replace===void 0?false:_ref$replace,state=_ref.state,to=_ref.to,rest=_objectWithoutProperties(_ref,_excluded);var internalOnPress=useLinkPressHandler(to,{replace:replace,state:state});function handlePress(event){if(onPress)onPress(event);if(!event.defaultPrevented){internalOnPress(event);}}return createElement(TouchableHighlight,_extends({},rest,{onPress:handlePress,__source:{fileName:_jsxFileName,lineNumber:160,columnNumber:10}}));}var HardwareBackPressEventType="hardwareBackPress";var URLEventType="url";function useLinkPressHandler(to){var _ref2=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},replace=_ref2.replace,state=_ref2.state;var navigate=useNavigate();return function handlePress(){navigate(to,{replace:replace,state:state});};}function useHardwareBackButton(){useEffect(function(){function handleHardwardBackPress(){return undefined;}BackHandler.addEventListener(HardwareBackPressEventType,handleHardwardBackPress);return function(){BackHandler.removeEventListener(HardwareBackPressEventType,handleHardwardBackPress);};},[]);}function useDeepLinking(){var navigate=useNavigate();useEffect(function(){var current=true;Linking.getInitialURL().then(function(url){if(current){if(url)navigate(trimScheme(url));}});return function(){current=false;};},[navigate]);useEffect(function(){function handleURLChange(event){navigate(trimScheme(event.url));}Linking.addEventListener(URLEventType,handleURLChange);return function(){Linking.removeEventListener(URLEventType,handleURLChange);};},[navigate]);}function trimScheme(url){return url.replace(/^.*?:\/\//,"");}function useSearchParams(defaultInit){var defaultSearchParamsRef=useRef(createSearchParams(defaultInit));var location=useLocation();var searchParams=useMemo(function(){var searchParams=createSearchParams(location.search);var _loop=function _loop(key){if(!searchParams.has(key)){defaultSearchParamsRef.current.getAll(key).forEach(function(value){searchParams.append(key,value);});}};for(var _iterator=_createForOfIteratorHelperLoose(defaultSearchParamsRef.current.keys()),_step;!(_step=_iterator()).done;){var key=_step.value;_loop(key);}return searchParams;},[location.search]);var navigate=useNavigate();var setSearchParams=useCallback(function(nextInit,navigateOpts){navigate("?"+createSearchParams(nextInit),navigateOpts);},[navigate]);return [searchParams,setSearchParams];}function createSearchParams(){var init=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";return new URLSearchParams(typeof init==="string"||Array.isArray(init)||init instanceof URLSearchParams?init:Object.keys(init).reduce(function(memo,key){var value=init[key];return memo.concat(Array.isArray(value)?value.map(function(v){return [key,v];}):[[key,value]]);},[]));}
|
|
110
|
-
|
|
111
|
-
export { Link, NativeRouter, createSearchParams, useHardwareBackButton as useAndroidBackButton, useDeepLinking, useHardwareBackButton, useLinkPressHandler, useSearchParams };
|
|
112
|
-
//# sourceMappingURL=index.js.map
|
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../packages/react-router-native/index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n BackHandler,\n GestureResponderEvent,\n Linking,\n TouchableHighlight,\n TouchableHighlightProps,\n} from \"react-native\";\nimport {\n MemoryRouter,\n MemoryRouterProps,\n Navigate,\n NavigateOptions,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nimport URLSearchParams from \"@ungap/url-search-params\";\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n IndexRouteProps,\n LayoutRouteProps,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n Path,\n PathMatch,\n PathRouteProps,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RoutesProps,\n Pathname,\n Search,\n To,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface NativeRouterProps extends MemoryRouterProps {}\n\n/**\n * A <Router> that runs on React Native.\n */\nexport function NativeRouter(props: NativeRouterProps) {\n return <MemoryRouter {...props} />;\n}\n\nexport interface LinkProps extends TouchableHighlightProps {\n children?: React.ReactNode;\n onPress?: (event: GestureResponderEvent) => void;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * A <TouchableHighlight> that navigates to a different URL when touched.\n */\nexport function Link({\n onPress,\n replace = false,\n state,\n to,\n ...rest\n}: LinkProps) {\n let internalOnPress = useLinkPressHandler(to, { replace, state });\n function handlePress(event: GestureResponderEvent) {\n if (onPress) onPress(event);\n if (!event.defaultPrevented) {\n internalOnPress(event);\n }\n }\n\n return <TouchableHighlight {...rest} onPress={handlePress} />;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\nconst HardwareBackPressEventType = \"hardwareBackPress\";\nconst URLEventType = \"url\";\n\n/**\n * Handles the press behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same press behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkPressHandler(\n to: To,\n {\n replace,\n state,\n }: {\n replace?: boolean;\n state?: any;\n } = {}\n): (event: GestureResponderEvent) => void {\n let navigate = useNavigate();\n return function handlePress() {\n navigate(to, { replace, state });\n };\n}\n\n/**\n * Enables support for the hardware back button on Android.\n */\nexport function useHardwareBackButton() {\n React.useEffect(() => {\n function handleHardwardBackPress() {\n return undefined;\n // TODO: The implementation will be something like this\n // if (history.index === 0) {\n // return false; // home screen\n // } else {\n // history.back();\n // return true;\n // }\n }\n\n BackHandler.addEventListener(\n HardwareBackPressEventType,\n handleHardwardBackPress\n );\n\n return () => {\n BackHandler.removeEventListener(\n HardwareBackPressEventType,\n handleHardwardBackPress\n );\n };\n }, []);\n}\n\nexport { useHardwareBackButton as useAndroidBackButton };\n\n/**\n * Enables deep linking, both on the initial app launch and for\n * subsequent incoming links.\n */\nexport function useDeepLinking() {\n let navigate = useNavigate();\n\n // Get the initial URL\n React.useEffect(() => {\n let current = true;\n\n Linking.getInitialURL().then((url) => {\n if (current) {\n if (url) navigate(trimScheme(url));\n }\n });\n\n return () => {\n current = false;\n };\n }, [navigate]);\n\n // Listen for URL changes\n React.useEffect(() => {\n function handleURLChange(event: { url: string }) {\n navigate(trimScheme(event.url));\n }\n\n Linking.addEventListener(URLEventType, handleURLChange);\n\n return () => {\n Linking.removeEventListener(URLEventType, handleURLChange);\n };\n }, [navigate]);\n}\n\nfunction trimScheme(url: string) {\n return url.replace(/^.*?:\\/\\//, \"\");\n}\n\n/**\n * A convenient wrapper for accessing individual query parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams: SetURLSearchParams = React.useCallback(\n (nextInit, navigateOpts) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOpts);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams];\n}\n\ntype SetURLSearchParams = (\n nextInit?: URLSearchParamsInit | undefined,\n navigateOpts?: NavigateOptions | undefined\n) => void;\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n"],"names":["NativeRouter","props","Link","onPress","replace","state","to","rest","internalOnPress","useLinkPressHandler","handlePress","event","defaultPrevented","HardwareBackPressEventType","URLEventType","navigate","useNavigate","useHardwareBackButton","React","handleHardwardBackPress","undefined","BackHandler","addEventListener","removeEventListener","useDeepLinking","current","Linking","getInitialURL","then","url","trimScheme","handleURLChange","useSearchParams","defaultInit","defaultSearchParamsRef","createSearchParams","location","useLocation","searchParams","search","key","has","getAll","forEach","value","append","keys","setSearchParams","nextInit","navigateOpts","init","URLSearchParams","Array","isArray","Object","reduce","memo","concat","map","v"],"mappings":"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"}
|