Files
standardnotes-app-web/app/assets/javascripts/UIModels/AppState/PurchaseFlowState.ts
2022-04-13 22:02:34 +05:30

42 lines
973 B
TypeScript

import { loadPurchaseFlowUrl } from '@/Components/PurchaseFlow/PurchaseFlowWrapper'
import { action, makeObservable, observable } from 'mobx'
import { WebApplication } from '../Application'
export enum PurchaseFlowPane {
SignIn,
CreateAccount,
}
export class PurchaseFlowState {
isOpen = false
currentPane = PurchaseFlowPane.CreateAccount
constructor(private application: WebApplication) {
makeObservable(this, {
isOpen: observable,
currentPane: observable,
setCurrentPane: action,
openPurchaseFlow: action,
closePurchaseFlow: action,
})
}
setCurrentPane = (currentPane: PurchaseFlowPane): void => {
this.currentPane = currentPane
}
openPurchaseFlow = (): void => {
const user = this.application.getUser()
if (!user) {
this.isOpen = true
} else {
loadPurchaseFlowUrl(this.application).catch(console.error)
}
}
closePurchaseFlow = (): void => {
this.isOpen = false
}
}