@react-navigation/native 6.0.4 → 6.0.5

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.
@@ -69,15 +69,13 @@ function useLinkProps({
69
69
  shouldHandle = e ? !e.defaultPrevented : true;
70
70
  } else if (!e.defaultPrevented && // onPress prevented default
71
71
  // @ts-expect-error: these properties exist on web, but not in React Native
72
- !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && ( // ignore clicks with modifier keys
73
- // @ts-expect-error: these properties exist on web, but not in React Native
74
- e.button == null || e.button === 0) && // ignore everything but left clicks
72
+ !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (e.button == null || e.button === 0) && // ignore everything but left clicks
75
73
  // @ts-expect-error: these properties exist on web, but not in React Native
76
74
  [undefined, null, '', 'self'].includes((_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.target) // let browser handle "target=_blank" etc.
77
75
  ) {
78
- e.preventDefault();
79
- shouldHandle = true;
80
- }
76
+ e.preventDefault();
77
+ shouldHandle = true;
78
+ }
81
79
 
82
80
  if (shouldHandle) {
83
81
  if (action) {
@@ -1 +1 @@
1
- {"version":3,"sources":["useLinkProps.tsx"],"names":["getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","to","action","root","React","useContext","NavigationContainerRefContext","navigation","NavigationHelpersContext","options","LinkingContext","linkTo","onPress","e","shouldHandle","Platform","OS","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","preventDefault","dispatch","Error","getPathFromStateHelper","getPathFromState","href","config","accessibilityRole"],"mappings":"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","sourcesContent":["import {\n getPathFromState,\n NavigationAction,\n NavigationContainerRefContext,\n NavigationHelpersContext,\n NavigatorScreenParams,\n ParamListBase,\n} from '@react-navigation/core';\nimport type { NavigationState, PartialState } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { GestureResponderEvent, Platform } from 'react-native';\n\nimport LinkingContext from './LinkingContext';\nimport useLinkTo, { To } from './useLinkTo';\n\ntype Props<ParamList extends ReactNavigation.RootParamList> = {\n to: To<ParamList>;\n action?: NavigationAction;\n};\n\nconst getStateFromParams = (\n params: NavigatorScreenParams<ParamListBase, NavigationState> | undefined\n): PartialState<NavigationState> | NavigationState | undefined => {\n if (params?.state) {\n return params.state;\n }\n\n if (params?.screen) {\n return {\n routes: [\n {\n name: params.screen,\n params: params.params,\n // @ts-expect-error\n state: params.screen\n ? getStateFromParams(\n params.params as\n | NavigatorScreenParams<ParamListBase, NavigationState>\n | undefined\n )\n : undefined,\n },\n ],\n };\n }\n\n return undefined;\n};\n\n/**\n * Hook to get props for an anchor tag so it can work with in page navigation.\n *\n * @param props.to Absolute path to screen (e.g. `/feeds/hot`).\n * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.\n */\nexport default function useLinkProps<\n ParamList extends ReactNavigation.RootParamList\n>({ to, action }: Props<ParamList>) {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationHelpersContext);\n const { options } = React.useContext(LinkingContext);\n const linkTo = useLinkTo<ParamList>();\n\n const onPress = (\n e?: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent\n ) => {\n let shouldHandle = false;\n\n if (Platform.OS !== 'web' || !e) {\n shouldHandle = e ? !e.defaultPrevented : true;\n } else if (\n !e.defaultPrevented && // onPress prevented default\n // @ts-expect-error: these properties exist on web, but not in React Native\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && // ignore clicks with modifier keys\n // @ts-expect-error: these properties exist on web, but not in React Native\n (e.button == null || e.button === 0) && // ignore everything but left clicks\n // @ts-expect-error: these properties exist on web, but not in React Native\n [undefined, null, '', 'self'].includes(e.currentTarget?.target) // let browser handle \"target=_blank\" etc.\n ) {\n e.preventDefault();\n shouldHandle = true;\n }\n\n if (shouldHandle) {\n if (action) {\n if (navigation) {\n navigation.dispatch(action);\n } else if (root) {\n root.dispatch(action);\n } else {\n throw new Error(\n \"Couldn't find a navigation object. Is your component inside NavigationContainer?\"\n );\n }\n } else {\n linkTo(to);\n }\n }\n };\n\n const getPathFromStateHelper = options?.getPathFromState ?? getPathFromState;\n\n const href =\n typeof to === 'string'\n ? to\n : getPathFromStateHelper(\n {\n routes: [\n {\n name: to.screen,\n // @ts-expect-error\n params: to.params,\n // @ts-expect-error\n state: getStateFromParams(to.params),\n },\n ],\n },\n options?.config\n );\n\n return {\n href,\n accessibilityRole: 'link' as const,\n onPress,\n };\n}\n"]}
1
+ {"version":3,"sources":["useLinkProps.tsx"],"names":["getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","to","action","root","React","useContext","NavigationContainerRefContext","navigation","NavigationHelpersContext","options","LinkingContext","linkTo","onPress","e","shouldHandle","Platform","OS","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","preventDefault","dispatch","Error","getPathFromStateHelper","getPathFromState","href","config","accessibilityRole"],"mappings":"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","sourcesContent":["import {\n getPathFromState,\n NavigationAction,\n NavigationContainerRefContext,\n NavigationHelpersContext,\n NavigatorScreenParams,\n ParamListBase,\n} from '@react-navigation/core';\nimport type { NavigationState, PartialState } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { GestureResponderEvent, Platform } from 'react-native';\n\nimport LinkingContext from './LinkingContext';\nimport useLinkTo, { To } from './useLinkTo';\n\ntype Props<ParamList extends ReactNavigation.RootParamList> = {\n to: To<ParamList>;\n action?: NavigationAction;\n};\n\nconst getStateFromParams = (\n params: NavigatorScreenParams<ParamListBase, NavigationState> | undefined\n): PartialState<NavigationState> | NavigationState | undefined => {\n if (params?.state) {\n return params.state;\n }\n\n if (params?.screen) {\n return {\n routes: [\n {\n name: params.screen,\n params: params.params,\n // @ts-expect-error\n state: params.screen\n ? getStateFromParams(\n params.params as\n | NavigatorScreenParams<ParamListBase, NavigationState>\n | undefined\n )\n : undefined,\n },\n ],\n };\n }\n\n return undefined;\n};\n\n/**\n * Hook to get props for an anchor tag so it can work with in page navigation.\n *\n * @param props.to Absolute path to screen (e.g. `/feeds/hot`).\n * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.\n */\nexport default function useLinkProps<\n ParamList extends ReactNavigation.RootParamList\n>({ to, action }: Props<ParamList>) {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationHelpersContext);\n const { options } = React.useContext(LinkingContext);\n const linkTo = useLinkTo<ParamList>();\n\n const onPress = (\n e?: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent\n ) => {\n let shouldHandle = false;\n\n if (Platform.OS !== 'web' || !e) {\n shouldHandle = e ? !e.defaultPrevented : true;\n } else if (\n !e.defaultPrevented && // onPress prevented default\n // @ts-expect-error: these properties exist on web, but not in React Native\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && // ignore clicks with modifier keys\n // @ts-expect-error: these properties exist on web, but not in React Native\n (e.button == null || e.button === 0) && // ignore everything but left clicks\n // @ts-expect-error: these properties exist on web, but not in React Native\n [undefined, null, '', 'self'].includes(e.currentTarget?.target) // let browser handle \"target=_blank\" etc.\n ) {\n e.preventDefault();\n shouldHandle = true;\n }\n\n if (shouldHandle) {\n if (action) {\n if (navigation) {\n navigation.dispatch(action);\n } else if (root) {\n root.dispatch(action);\n } else {\n throw new Error(\n \"Couldn't find a navigation object. Is your component inside NavigationContainer?\"\n );\n }\n } else {\n linkTo(to);\n }\n }\n };\n\n const getPathFromStateHelper = options?.getPathFromState ?? getPathFromState;\n\n const href =\n typeof to === 'string'\n ? to\n : getPathFromStateHelper(\n {\n routes: [\n {\n name: to.screen,\n // @ts-expect-error\n params: to.params,\n // @ts-expect-error\n state: getStateFromParams(to.params),\n },\n ],\n },\n options?.config\n );\n\n return {\n href,\n accessibilityRole: 'link' as const,\n onPress,\n };\n}\n"]}
@@ -52,15 +52,13 @@ export default function useLinkProps({
52
52
  shouldHandle = e ? !e.defaultPrevented : true;
53
53
  } else if (!e.defaultPrevented && // onPress prevented default
54
54
  // @ts-expect-error: these properties exist on web, but not in React Native
55
- !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && ( // ignore clicks with modifier keys
56
- // @ts-expect-error: these properties exist on web, but not in React Native
57
- e.button == null || e.button === 0) && // ignore everything but left clicks
55
+ !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (e.button == null || e.button === 0) && // ignore everything but left clicks
58
56
  // @ts-expect-error: these properties exist on web, but not in React Native
59
57
  [undefined, null, '', 'self'].includes((_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.target) // let browser handle "target=_blank" etc.
60
58
  ) {
61
- e.preventDefault();
62
- shouldHandle = true;
63
- }
59
+ e.preventDefault();
60
+ shouldHandle = true;
61
+ }
64
62
 
65
63
  if (shouldHandle) {
66
64
  if (action) {
@@ -1 +1 @@
1
- {"version":3,"sources":["useLinkProps.tsx"],"names":["getPathFromState","NavigationContainerRefContext","NavigationHelpersContext","React","Platform","LinkingContext","useLinkTo","getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","to","action","root","useContext","navigation","options","linkTo","onPress","e","shouldHandle","OS","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","preventDefault","dispatch","Error","getPathFromStateHelper","href","config","accessibilityRole"],"mappings":"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","sourcesContent":["import {\n getPathFromState,\n NavigationAction,\n NavigationContainerRefContext,\n NavigationHelpersContext,\n NavigatorScreenParams,\n ParamListBase,\n} from '@react-navigation/core';\nimport type { NavigationState, PartialState } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { GestureResponderEvent, Platform } from 'react-native';\n\nimport LinkingContext from './LinkingContext';\nimport useLinkTo, { To } from './useLinkTo';\n\ntype Props<ParamList extends ReactNavigation.RootParamList> = {\n to: To<ParamList>;\n action?: NavigationAction;\n};\n\nconst getStateFromParams = (\n params: NavigatorScreenParams<ParamListBase, NavigationState> | undefined\n): PartialState<NavigationState> | NavigationState | undefined => {\n if (params?.state) {\n return params.state;\n }\n\n if (params?.screen) {\n return {\n routes: [\n {\n name: params.screen,\n params: params.params,\n // @ts-expect-error\n state: params.screen\n ? getStateFromParams(\n params.params as\n | NavigatorScreenParams<ParamListBase, NavigationState>\n | undefined\n )\n : undefined,\n },\n ],\n };\n }\n\n return undefined;\n};\n\n/**\n * Hook to get props for an anchor tag so it can work with in page navigation.\n *\n * @param props.to Absolute path to screen (e.g. `/feeds/hot`).\n * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.\n */\nexport default function useLinkProps<\n ParamList extends ReactNavigation.RootParamList\n>({ to, action }: Props<ParamList>) {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationHelpersContext);\n const { options } = React.useContext(LinkingContext);\n const linkTo = useLinkTo<ParamList>();\n\n const onPress = (\n e?: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent\n ) => {\n let shouldHandle = false;\n\n if (Platform.OS !== 'web' || !e) {\n shouldHandle = e ? !e.defaultPrevented : true;\n } else if (\n !e.defaultPrevented && // onPress prevented default\n // @ts-expect-error: these properties exist on web, but not in React Native\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && // ignore clicks with modifier keys\n // @ts-expect-error: these properties exist on web, but not in React Native\n (e.button == null || e.button === 0) && // ignore everything but left clicks\n // @ts-expect-error: these properties exist on web, but not in React Native\n [undefined, null, '', 'self'].includes(e.currentTarget?.target) // let browser handle \"target=_blank\" etc.\n ) {\n e.preventDefault();\n shouldHandle = true;\n }\n\n if (shouldHandle) {\n if (action) {\n if (navigation) {\n navigation.dispatch(action);\n } else if (root) {\n root.dispatch(action);\n } else {\n throw new Error(\n \"Couldn't find a navigation object. Is your component inside NavigationContainer?\"\n );\n }\n } else {\n linkTo(to);\n }\n }\n };\n\n const getPathFromStateHelper = options?.getPathFromState ?? getPathFromState;\n\n const href =\n typeof to === 'string'\n ? to\n : getPathFromStateHelper(\n {\n routes: [\n {\n name: to.screen,\n // @ts-expect-error\n params: to.params,\n // @ts-expect-error\n state: getStateFromParams(to.params),\n },\n ],\n },\n options?.config\n );\n\n return {\n href,\n accessibilityRole: 'link' as const,\n onPress,\n };\n}\n"]}
1
+ {"version":3,"sources":["useLinkProps.tsx"],"names":["getPathFromState","NavigationContainerRefContext","NavigationHelpersContext","React","Platform","LinkingContext","useLinkTo","getStateFromParams","params","state","screen","routes","name","undefined","useLinkProps","to","action","root","useContext","navigation","options","linkTo","onPress","e","shouldHandle","OS","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","preventDefault","dispatch","Error","getPathFromStateHelper","href","config","accessibilityRole"],"mappings":"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","sourcesContent":["import {\n getPathFromState,\n NavigationAction,\n NavigationContainerRefContext,\n NavigationHelpersContext,\n NavigatorScreenParams,\n ParamListBase,\n} from '@react-navigation/core';\nimport type { NavigationState, PartialState } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { GestureResponderEvent, Platform } from 'react-native';\n\nimport LinkingContext from './LinkingContext';\nimport useLinkTo, { To } from './useLinkTo';\n\ntype Props<ParamList extends ReactNavigation.RootParamList> = {\n to: To<ParamList>;\n action?: NavigationAction;\n};\n\nconst getStateFromParams = (\n params: NavigatorScreenParams<ParamListBase, NavigationState> | undefined\n): PartialState<NavigationState> | NavigationState | undefined => {\n if (params?.state) {\n return params.state;\n }\n\n if (params?.screen) {\n return {\n routes: [\n {\n name: params.screen,\n params: params.params,\n // @ts-expect-error\n state: params.screen\n ? getStateFromParams(\n params.params as\n | NavigatorScreenParams<ParamListBase, NavigationState>\n | undefined\n )\n : undefined,\n },\n ],\n };\n }\n\n return undefined;\n};\n\n/**\n * Hook to get props for an anchor tag so it can work with in page navigation.\n *\n * @param props.to Absolute path to screen (e.g. `/feeds/hot`).\n * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.\n */\nexport default function useLinkProps<\n ParamList extends ReactNavigation.RootParamList\n>({ to, action }: Props<ParamList>) {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationHelpersContext);\n const { options } = React.useContext(LinkingContext);\n const linkTo = useLinkTo<ParamList>();\n\n const onPress = (\n e?: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent\n ) => {\n let shouldHandle = false;\n\n if (Platform.OS !== 'web' || !e) {\n shouldHandle = e ? !e.defaultPrevented : true;\n } else if (\n !e.defaultPrevented && // onPress prevented default\n // @ts-expect-error: these properties exist on web, but not in React Native\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && // ignore clicks with modifier keys\n // @ts-expect-error: these properties exist on web, but not in React Native\n (e.button == null || e.button === 0) && // ignore everything but left clicks\n // @ts-expect-error: these properties exist on web, but not in React Native\n [undefined, null, '', 'self'].includes(e.currentTarget?.target) // let browser handle \"target=_blank\" etc.\n ) {\n e.preventDefault();\n shouldHandle = true;\n }\n\n if (shouldHandle) {\n if (action) {\n if (navigation) {\n navigation.dispatch(action);\n } else if (root) {\n root.dispatch(action);\n } else {\n throw new Error(\n \"Couldn't find a navigation object. Is your component inside NavigationContainer?\"\n );\n }\n } else {\n linkTo(to);\n }\n }\n };\n\n const getPathFromStateHelper = options?.getPathFromState ?? getPathFromState;\n\n const href =\n typeof to === 'string'\n ? to\n : getPathFromStateHelper(\n {\n routes: [\n {\n name: to.screen,\n // @ts-expect-error\n params: to.params,\n // @ts-expect-error\n state: getStateFromParams(to.params),\n },\n ],\n },\n options?.config\n );\n\n return {\n href,\n accessibilityRole: 'link' as const,\n onPress,\n };\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/native",
3
3
  "description": "React Native integration for React Navigation",
4
- "version": "6.0.4",
4
+ "version": "6.0.5",
5
5
  "keywords": [
6
6
  "react-native",
7
7
  "react-navigation",
@@ -37,7 +37,7 @@
37
37
  "clean": "del lib"
38
38
  },
39
39
  "dependencies": {
40
- "@react-navigation/core": "^6.0.2",
40
+ "@react-navigation/core": "^6.0.3",
41
41
  "escape-string-regexp": "^4.0.0",
42
42
  "nanoid": "^3.1.23"
43
43
  },
@@ -71,5 +71,5 @@
71
71
  ]
72
72
  ]
73
73
  },
74
- "gitHead": "6a19be7dae997fc23ac9475040a17fb2db4ebd52"
74
+ "gitHead": "66a007b0649e443b528e6875df292563d0ed426c"
75
75
  }