2020-07-06 18:20:35 +00:00
import SwiftUI
2020-07-23 20:53:04 +00:00
import BankingUiSwift
2020-07-06 18:20:35 +00:00
struct ContentView : View {
2020-07-17 19:06:41 +00:00
2020-07-18 15:23:49 +00:00
@ ObservedObject var data : AppData = AppData ( )
2020-07-06 18:20:35 +00:00
@ State private var selection = 0
2020-07-23 20:53:04 +00:00
@ State private var showTransferMoneyOptionsActionSheet = false
@ State private var selectedTransferMoneyOption : Int ? = 0
// TODO: r e m o v e a g a i n
private let enterTanState : EnterTanState
init ( ) {
let customer = Customer ( bankCode : " " , customerId : " " , password : " " , finTsServerAddress : " " )
let selectedTanProcedure = TanProcedure ( displayName : " chipTAN optisch " , type : . chiptanflickercode , bankInternalProcedureCode : " chipTAN optisch " )
customer . supportedTanProcedures = [
TanProcedure ( displayName : " App TAN " , type : . apptan , bankInternalProcedureCode : " App TAN " ) ,
selectedTanProcedure ,
TanProcedure ( displayName : " SMS TAN " , type : . smstan , bankInternalProcedureCode : " SMS TAN " )
]
customer . selectedTanProcedure = selectedTanProcedure
customer . tanMedia = [
TanMedium ( displayName : " EC-Karte mit Nummer 12345678 " , status : . available ) ,
TanMedium ( displayName : " Handy mit Nummer 0170 / 12345678 " , status : . available )
]
self . enterTanState = EnterTanState ( customer , TanChallenge ( messageToShowToUser : " Gib die TAN ein du faules Stueck! " , tanProcedure : selectedTanProcedure ) ) { result in }
}
2020-07-06 18:20:35 +00:00
var body : some View {
2020-07-23 20:53:04 +00:00
// N a v i g a t i o n V i e w {
VStack {
TabView ( selection : $ selection ) {
AccountsTab ( data : data )
. tabItem {
VStack {
Image ( " first " )
Text ( " Accounts " )
}
}
. tag ( 0 )
// a c t i o n S h e e t ( i s P r e s e n t e d : $ s h o w T r a n s f e r M o n e y O p t i o n s A c t i o n S h e e t ) {
// A c t i o n S h e e t (
// t i t l e : T e x t ( " A c t i o n " ) ,
// m e s s a g e : T e x t ( " A v a i l a b l e a c t i o n s " ) ,
// b u t t o n s : [
// . d e f a u l t ( T e x t ( " S h o w t r a n s f e r m o n e y d i a l o g " ) ) { s e l f . s e l e c t e d T r a n s f e r M o n e y O p t i o n = 1 } ,
// . d e s t r u c t i v e ( T e x t ( " D e l e t e " ) )
// ]
// )
// }
2020-07-17 19:06:41 +00:00
2020-07-23 20:53:04 +00:00
// T r a n s f e r M o n e y D i a l o g ( )
// . t a b I t e m {
// N a v i g a t i o n L i n k ( d e s t i n a t i o n : T r a n s f e r M o n e y D i a l o g ( ) , t a g : 1 , s e l e c t i o n : $ s e l e c t e d T r a n s f e r M o n e y O p t i o n ) {
// E m p t y V i e w ( )
// }
// V S t a c k {
// I m a g e ( " s e c o n d " )
// T e x t ( " S e c o n d " )
// }
// . o n T a p G e s t u r e {
// N S L o g ( " T a p p e d o n s e c o n d i t e m " ) / / TODO: r e m o v e a g a i n
// s e l f . s h o w T r a n s f e r M o n e y O p t i o n s A c t i o n S h e e t = t r u e
// }
// }
// N a v i g a t i o n V i e w {
VStack {
NavigationLink ( destination : TransferMoneyDialog ( ) ) {
Text ( " Show transfer money dialog " )
}
NavigationLink ( destination : TransferMoneyDialog ( ) . onDisappear ( perform : {
NSLog ( " Disappearing NavigationLink " ) // TODO: r e m o v e
self . selectedTransferMoneyOption = 0
} ) , tag : 1 , selection : $ selectedTransferMoneyOption ) {
EmptyView ( )
}
SheetPresenter ( presentingSheet : $ showTransferMoneyOptionsActionSheet , content :
ActionSheet (
title : Text ( " " ) ,
buttons : [
. default ( Text ( " Show transfer money dialog " ) ) { self . selectedTransferMoneyOption = 1 } ,
. cancel ( )
]
)
)
}
// }
. tabItem {
VStack {
Image ( systemName : " plus.circle.fill " )
}
}
. tag ( 1 )
NavigationView { EnterTanDialog ( self . enterTanState ) }
. tabItem {
VStack {
Text ( " EnterTanDialog " )
}
2020-07-17 19:06:41 +00:00
}
2020-07-23 20:53:04 +00:00
. tag ( 2 )
2020-07-17 19:06:41 +00:00
}
2020-07-23 20:53:04 +00:00
2020-07-17 19:06:41 +00:00
}
2020-07-23 20:53:04 +00:00
. hideNavigationBar ( )
// }
2020-07-06 18:20:35 +00:00
}
}
struct ContentView_Previews : PreviewProvider {
static var previews : some View {
ContentView ( )
}
}