message: switch UnverifiedSessionToast to route to check sessions rather than verify the new login
  given the chances are that the new login will be stuck doing initial sync, and won't be in position
  to be verified until its finished.
diff: @@ -15,38 +15,36 @@ limitations under the License.
  */
  import { _t } from '../languageHandler';
  +import dis from "../dispatcher/dispatcher";
  import { MatrixClientPeg } from '../MatrixClientPeg';
  import Modal from '../Modal';
  import DeviceListener from '../DeviceListener';
  import NewSessionReviewDialog from '../components/views/dialogs/NewSessionReviewDialog';
  import ToastStore from "../stores/ToastStore";
  import GenericToast from "../components/views/toasts/GenericToast";
  +import { Action } from "../dispatcher/actions";
  +import { USER_SECURITY_TAB } from "../components/views/dialogs/UserSettingsDialog";
  function toastKey(deviceId: string) {
  return "unverified_session_" + deviceId;
  }
  -export const showToast = (deviceId: string) => {
  +export const showToast = async (deviceId: string) => {
  const cli = MatrixClientPeg.get();
  const onAccept = () => {
  - Modal.createTrackedDialog('New Session Review', 'Starting dialog', NewSessionReviewDialog, {
  - userId: cli.getUserId(),
  - device: cli.getStoredDevice(cli.getUserId(), deviceId),
  - onFinished: (r) => {
  - if (!r) {
  - /* This'll come back false if the user clicks "this wasn't me" and saw a warning dialog */
  DeviceListener.sharedInstance().dismissUnverifiedSessions([deviceId]);
  - }
  - },
  - }, null, /* priority = */ false, /* static = */ true);
  + dis.dispatch({
  + action: Action.ViewUserSettings,
  + initialTabId: USER_SECURITY_TAB,
  + });
  };
  const onReject = () => {
  DeviceListener.sharedInstance().dismissUnverifiedSessions([deviceId]);
  };
  - const device = cli.getStoredDevice(cli.getUserId(), deviceId);
  + const device = await cli.getDevice(deviceId);
  ToastStore.sharedInstance().addOrReplaceToast({
  key: toastKey(deviceId),
  @@ -54,8 +52,13 @@ export const showToast = (deviceId: string) => {
  icon: "verification_warning",
  props: {
  description: _t(
  - "Verify the new login accessing your account: %(name)s", { name: device.getDisplayName()}),
  - acceptLabel: _t("Verify"),
  + "A new login is accessing your account: %(name)s (%(deviceID)s) from %(IP)s", {
  + name: device.display_name,
  + deviceID: deviceId,
  + IP: device.last_seen_ip,
  + }
  + ),
  + acceptLabel: _t("Check your devices"),
  onAccept,
  rejectLabel: _t("Later"),
  onReject,
  