export function handleURL()

in src/actions/app-actions.ts [870:891]


export function handleURL(uri: string = ''): ReduxAction {
  return async (dispatch: ReduxThunkDispatch, getState: ReduxStateGetter, getApi: ReduxAPIGetter) => {
    const backendUrl = getApi().config.backendUrl;
    const url = uri.trim();
    if (url && backendUrl) {
      const issueId = extractIssueId(url) ?? undefined;
      const articleId = extractArticleId(url) ?? undefined;
      const helpdeskFormId = extractHelpdeskFormId(url) ?? undefined;
      const query = extractIssuesQuery(url) ?? undefined;
      if (issueId || articleId || helpdeskFormId) {
        navigateToScreen(backendUrl, dispatch, url, true, issueId, articleId, undefined, helpdeskFormId);
      } else if (query) {
        navigateToScreen(backendUrl, dispatch, url, true, undefined, undefined, query);
      } else {
        const canOpen = await Linking.canOpenURL(url);
        if (canOpen) {
          Linking.openURL(url);
        }
      }
    }
  };
}