當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript history.History類代碼示例

本文整理匯總了TypeScript中history.History的典型用法代碼示例。如果您正苦於以下問題:TypeScript History類的具體用法?TypeScript History怎麽用?TypeScript History使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了History類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: push

  push(path: string | LocationDescriptorObject, state?: any) {
    // Do not navigate if the path object matches
    const nextPath = typeof path === 'string' ? path : createPath(path);
    if (nextPath === createPath(this.history.location)) return;

    if (Date.now() - this.lastPush > this.wait) {
      // @ts-ignore TypeScript doesn't recognize our push as a proxy for History.push's
      // overloaded signature, and it's really hard to fix this properly
      this.history.push(path, state);
    } else {
      try {
        // @ts-ignore
        this.history.replace(path, state);
      } catch (e) {
        // Ignore Safari's history.replaceState() rate limit error.
        // See https://github.com/nusmodifications/nusmods/issues/763
        if (
          e.name === 'SecurityError' &&
          e.message.includes('Attempt to use history.replaceState()')
        ) {
          return;
        }

        // Continue throwing all other errors
        throw e;
      }
    }

    this.lastPush = Date.now();
  }
開發者ID:nusmodifications,項目名稱:nusmods,代碼行數:30,代碼來源:HistoryDebouncer.ts

示例2: makeCallOnHistory

export function createHistory$(history: History,
                               sink$: Stream<HistoryInput | string>): MemoryStream<Location> {
  const history$ = xs.createWithMemory<Location>().startWith(history.location);
  const call = makeCallOnHistory(history);
  const unlisten = history.listen((loc: Location) => { history$._n(loc); });
  const sub = sink$.subscribe(createObserver(call, unlisten));
  (history$ as any).dispose = () => { sub.unsubscribe(); unlisten(); };
  return history$;
};
開發者ID:whitecolor,項目名稱:cyclejs,代碼行數:9,代碼來源:createHistory$.ts

示例3: trackPageView

export function trackPageView(history: History) {
  history.listen((location, action) => {
    if (action === 'PUSH') {
      // Wait a bit for the page title to update
      setTimeout(() => {
        withTracker((tracker) => tracker.trackPageView(document.title));
      }, 100);
    }
  });
}
開發者ID:nusmodifications,項目名稱:nusmods,代碼行數:10,代碼來源:matomo.ts

示例4: call

  return function call(input: Narrow<HistoryInput>): void {
    if (input.type === 'push') {
      history.push(input.pathname, input.state);
    }

    if (input.type === 'replace') {
      history.replace(input.pathname, input.state);
    }

    if (input.type === 'go') {
      history.go(input.amount);
    }

    if (input.type === 'goBack') {
      history.goBack();
    }

    if (input.type === 'goForward') {
      history.goForward();
    }
  };
開發者ID:,項目名稱:,代碼行數:21,代碼來源:

示例5:

export const updateSearch = (
  history: History,
  updates: { readonly [id: string]: any },
) => {
  history.push({
    pathname: history.location.pathname,
    search: qs.stringify({
      ...qs.parse(history.location.search),
      ...updates,
    }),
  });
};
開發者ID:mmerfort,項目名稱:puppetexplorer,代碼行數:12,代碼來源:util.ts

示例6: updateEditor

   export function updateEditor(fileResource: FileResource) { // why would you ever ignore an update here?
      var resourcePath: FilePath = fileResource.getResourcePath();
      var isReadOnly = fileResource.isHistorical() || fileResource.isError();
      var realText: string = fileResource.getFileContent();
      var textToDisplay = resolveEditorTextToUse(fileResource);
      var session = editorView.getEditorPanel().getSession();
      var currentMode = session.getMode();
      var actualMode = resolveEditorMode(resourcePath.getResourcePath());

      saveEditorHistory(); // save any existing history
      
      if(actualMode != currentMode) {
         session.setMode({
            path: actualMode,
            v: Date.now() 
         })
      }
      if(!isReadOnly) {
         createEditorUndoManager(session, textToDisplay, realText, resourcePath); // restore any existing history      
      } else {
         createEditorWithoutUndoManager(textToDisplay);
      }
      clearEditor();
      setReadOnly(isReadOnly);
      
      editorView.updateResourcePath(resourcePath, isReadOnly);
      ProblemManager.highlightProblems(); // higlight problems on this resource
      
      if (resourcePath != null && editorView.getEditorResource()) {
         var filePath: string = editorView.getEditorResource().getFilePath();
         var allBreakpoints = editorView.getEditorBreakpoints();
         var breakpoints = allBreakpoints[filePath];
   
         if (breakpoints != null) {
            for(var lineNumber in breakpoints) {
               if (breakpoints.hasOwnProperty(lineNumber)) {
                  if (breakpoints[lineNumber] == true) {
                     setEditorBreakpoint(parseInt(lineNumber) - 1, true);
                  }
               }
            }
         }
      }
      Project.createEditorTab(); // update the tab name
      History.showFileHistory(); // update the history
      StatusPanel.showActiveFile(editorView.getEditorResource().getProjectPath());  
      FileEditor.showEditorFileInTree();
      scrollEditorToPosition();
      updateEditorTabMark(); // add a * to the name if its not in sync
   }
開發者ID:snapscript,項目名稱:snap-develop,代碼行數:50,代碼來源:editor.ts

示例7: authSaga

export function* authSaga(
    history: History,
    authApi: IAuthApi,
    usersApi: IUsersApi
) {
    let token: IToken = yield call(authApi.getAuthToken)

    if (token) {
        token = yield call(login, history, authApi, usersApi, { type: 'token', token })
    } else {
        yield put(actions.logoutSuccess())
    }

    yield put(actions.authCheckFinished(token && token.value || null))

    while (true) {
        if (!token) {
            const { payload: credentials } = yield take(actions.login.getType())
            token = yield call(login, history, authApi, usersApi, credentials)
            if (token) {
                history.push('/')
            }
        }

        if (!token) {
            continue
        }

        let userLoggedOut = false
        while (!userLoggedOut) {
            const { expired } = yield race({
                expired: delay(Math.max(token.exp - Date.now() - 30000, 0)),
                loggedOut: take(actions.logout.getType()),
            })

            if (expired) {
                token = yield call(login, history, authApi, usersApi, { type: 'token', token })
            } else {
                yield call(logout, authApi)
                userLoggedOut = true
            }
        }
    }
}
開發者ID:steam-react,項目名稱:steam,代碼行數:44,代碼來源:auth.ts

示例8: onBrowserChange

 function onBrowserChange(callback: (s: BrowserState, action: Action) => void): void {
   history.listen((location, action) => {
     currentPath = locationToPathConfigAndMatch(paths, location).path;
     callback(parseBrowserState(paths, location), action);
   });
   callback(parseBrowserState(paths, history.location), 'PUSH');
 }
開發者ID:buildo,項目名稱:state,代碼行數:7,代碼來源:browser.ts

示例9: return

 return (key: string, value?) => {
   if (value === "") {
     delete querystring[key];
   } else {
     querystring[key] = value || key;
   }
   history.replace("?" + stringifyQs(querystring));
 };
開發者ID:p2p-ms,項目名稱:front,代碼行數:8,代碼來源:utils.ts

示例10: run

  run (sink: Sink<Location>, scheduler: Scheduler) {
    const push = (l: Location) => sink.event(scheduler.now(), l);

    const unlisten = this.history.listen(push);

    return {
      dispose () {
        unlisten();
        sink.end(scheduler.now());
      }
    };
  }
開發者ID:TylorS,項目名稱:most-history,代碼行數:12,代碼來源:index.ts


注:本文中的history.History類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。