refactor: http service (#2233)
This commit is contained in:
@@ -12,6 +12,7 @@ import Icon from '@/Components/Icon/Icon'
|
||||
import IconButton from '@/Components/Button/IconButton'
|
||||
import AdvancedOptions from './AdvancedOptions'
|
||||
import HorizontalSeparator from '../Shared/HorizontalSeparator'
|
||||
import { isErrorResponse } from '@standardnotes/snjs'
|
||||
|
||||
type Props = {
|
||||
viewControllerManager: ViewControllerManager
|
||||
@@ -96,9 +97,9 @@ const SignInPane: FunctionComponent<Props> = ({ application, viewControllerManag
|
||||
|
||||
application
|
||||
.signIn(email, password, isStrictSignin, isEphemeral, shouldMergeLocal)
|
||||
.then((res) => {
|
||||
if (res.error) {
|
||||
throw new Error(res.error.message)
|
||||
.then((response) => {
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data?.error.message)
|
||||
}
|
||||
viewControllerManager.accountMenuController.closeAccountMenu()
|
||||
})
|
||||
|
||||
@@ -7,6 +7,7 @@ import { ChangeEventHandler, FunctionComponent, useEffect, useRef, useState } fr
|
||||
import FloatingLabelInput from '@/Components/Input/FloatingLabelInput'
|
||||
import { isEmailValid } from '@/Utils'
|
||||
import { BlueDotIcon, CircleIcon, DiamondIcon } from '@standardnotes/icons'
|
||||
import { isErrorResponse } from '@standardnotes/snjs'
|
||||
|
||||
type Props = {
|
||||
viewControllerManager: ViewControllerManager
|
||||
@@ -70,8 +71,8 @@ const SignIn: FunctionComponent<Props> = ({ viewControllerManager, application }
|
||||
|
||||
try {
|
||||
const response = await application.signIn(email, password)
|
||||
if (response.error || response.data?.error) {
|
||||
throw new Error(response.error?.message || response.data?.error?.message)
|
||||
if (isErrorResponse(response)) {
|
||||
throw new Error(response.data.error?.message)
|
||||
} else {
|
||||
viewControllerManager.purchaseFlowController.closePurchaseFlow()
|
||||
viewControllerManager.purchaseFlowController.openPurchaseFlow()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
|
||||
import { SNApplication, SessionStrings, UuidString, isNullOrUndefined, RemoteSession } from '@standardnotes/snjs'
|
||||
import { SNApplication, SessionStrings, UuidString, SessionListEntry, isErrorResponse } from '@standardnotes/snjs'
|
||||
import { FunctionComponent, useState, useEffect, useRef, useMemo, useCallback } from 'react'
|
||||
import { Alert } from '@reach/alert'
|
||||
import { AlertDialog, AlertDialogDescription, AlertDialogLabel } from '@reach/alert-dialog'
|
||||
@@ -11,7 +11,7 @@ import Icon from '../Icon/Icon'
|
||||
import Modal, { ModalAction } from '../Modal/Modal'
|
||||
import ModalOverlay from '../Modal/ModalOverlay'
|
||||
|
||||
type Session = RemoteSession & {
|
||||
type Session = SessionListEntry & {
|
||||
revoking?: true
|
||||
}
|
||||
|
||||
@@ -26,18 +26,20 @@ function useSessions(
|
||||
useEffect(() => {
|
||||
;(async () => {
|
||||
setRefreshing(true)
|
||||
|
||||
const response = await application.getSessions()
|
||||
if ('error' in response || isNullOrUndefined(response.data)) {
|
||||
if (response.error?.message) {
|
||||
setErrorMessage(response.error.message)
|
||||
if (isErrorResponse(response)) {
|
||||
if (response.data?.error?.message) {
|
||||
setErrorMessage(response.data?.error.message)
|
||||
} else {
|
||||
setErrorMessage('An unknown error occured while loading sessions.')
|
||||
}
|
||||
} else {
|
||||
const sessions = response.data as RemoteSession[]
|
||||
const sessions = response.data as SessionListEntry[]
|
||||
setSessions(sessions)
|
||||
setErrorMessage('')
|
||||
}
|
||||
|
||||
setRefreshing(false)
|
||||
})().catch(console.error)
|
||||
}, [application, lastRefreshDate])
|
||||
@@ -60,13 +62,11 @@ function useSessions(
|
||||
setSessions(sessionsDuringRevoke)
|
||||
|
||||
const response = await responsePromise
|
||||
if (isNullOrUndefined(response)) {
|
||||
if (!response) {
|
||||
setSessions(sessionsBeforeRevoke)
|
||||
} else if ('error' in response) {
|
||||
if (response.error?.message) {
|
||||
setErrorMessage(response.error?.message)
|
||||
} else {
|
||||
setErrorMessage('An unknown error occured while revoking the session.')
|
||||
} else if (isErrorResponse(response)) {
|
||||
if (response.data?.error.message) {
|
||||
setErrorMessage(response.data?.error.message || 'An unknown error occured while revoking the session.')
|
||||
}
|
||||
setSessions(sessionsBeforeRevoke)
|
||||
} else {
|
||||
@@ -145,7 +145,7 @@ const SessionsModalContent: FunctionComponent<{
|
||||
<span className="font-bold text-info">Current session</span>
|
||||
) : (
|
||||
<>
|
||||
<p>Signed in on {formatter.format(session.updated_at)}</p>
|
||||
<p>Signed in on {formatter.format(new Date(session.updated_at))}</p>
|
||||
<Button
|
||||
primary
|
||||
small
|
||||
|
||||
Reference in New Issue
Block a user