fix: disable duplicate linking check for independent containers

This commit is contained in:
Satyajit Sahoo
2021-06-26 19:09:30 +02:00
parent 4c16083d51
commit 20b8ebd405
3 changed files with 21 additions and 2 deletions

View File

@@ -74,6 +74,7 @@ function NavigationContainerInner(
useDocumentTitle(refContainer, documentTitle);
const { getInitialState } = useLinking(refContainer, {
independent: rest.independent,
enabled: isLinkingEnabled,
prefixes: [],
...linking,

View File

@@ -12,11 +12,16 @@ import type { LinkingOptions } from './types';
type ResultState = ReturnType<typeof getStateFromPathDefault>;
type Options = LinkingOptions<ParamListBase> & {
independent?: boolean;
};
let isUsingLinking = false;
export default function useLinking(
ref: React.RefObject<NavigationContainerRef<ParamListBase>>,
{
independent,
enabled = true,
prefixes,
config,
@@ -47,9 +52,13 @@ export default function useLinking(
},
getStateFromPath = getStateFromPathDefault,
getActionFromState = getActionFromStateDefault,
}: LinkingOptions<ParamListBase>
}: Options
) {
React.useEffect(() => {
if (independent) {
return undefined;
}
if (enabled !== false && isUsingLinking) {
throw new Error(
[

View File

@@ -289,17 +289,26 @@ const series = (cb: () => Promise<void>) => {
let isUsingLinking = false;
type Options = LinkingOptions<ParamListBase> & {
independent?: boolean;
};
export default function useLinking(
ref: React.RefObject<NavigationContainerRef<ParamListBase>>,
{
independent,
enabled = true,
config,
getStateFromPath = getStateFromPathDefault,
getPathFromState = getPathFromStateDefault,
getActionFromState = getActionFromStateDefault,
}: LinkingOptions<ParamListBase>
}: Options
) {
React.useEffect(() => {
if (independent) {
return undefined;
}
if (enabled !== false && isUsingLinking) {
throw new Error(
[