Rageshake Service (#70)

This commit is contained in:
ismailgulek
2022-06-06 12:38:07 +03:00
committed by GitHub
parent 1e7243fcf9
commit fa0721b160
57 changed files with 3010 additions and 32 deletions
@@ -25,7 +25,8 @@ struct HomeScreenCoordinatorParameters {
enum HomeScreenCoordinatorAction {
case logout
case selectRoom(roomIdentifier: String)
case presentRoom(roomIdentifier: String)
case presentSettings
}
final class HomeScreenCoordinator: Coordinator, Presentable {
@@ -65,7 +66,9 @@ final class HomeScreenCoordinator: Coordinator, Presentable {
case .logout:
self.callback?(.logout)
case .selectRoom(let roomIdentifier):
self.callback?(.selectRoom(roomIdentifier: roomIdentifier))
self.callback?(.presentRoom(roomIdentifier: roomIdentifier))
case .tapUserAvatar:
self.callback?(.presentSettings)
}
}
@@ -20,12 +20,14 @@ import UIKit
enum HomeScreenViewModelAction {
case logout
case selectRoom(roomIdentifier: String)
case tapUserAvatar
}
enum HomeScreenViewAction {
case logout
case loadRoomData(roomIdentifier: String)
case selectRoom(roomIdentifier: String)
case tapUserAvatar
}
struct HomeScreenViewState: BindableState {
@@ -51,6 +51,8 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
loadRoomDataForIdentifier(roomIdentifier)
case .selectRoom(let roomIdentifier):
callback?(.selectRoom(roomIdentifier: roomIdentifier))
case .tapUserAvatar:
callback?(.tapUserAvatar)
}
}
@@ -75,11 +75,13 @@ struct HomeScreen: View {
HStack {
ZStack {
if let avatar = context.viewState.userAvatar {
Image(uiImage: avatar)
.resizable()
.scaledToFill()
.frame(width: 40, height: 40, alignment: .center)
.mask(Circle())
Button { context.send(viewAction: .tapUserAvatar) } label: {
Image(uiImage: avatar)
.resizable()
.scaledToFill()
.frame(width: 40, height: 40, alignment: .center)
.mask(Circle())
}
} else {
EmptyView()
}
@@ -89,9 +91,12 @@ struct HomeScreen: View {
ZStack {
if let displayName = context.viewState.userDisplayName {
Text("Hello, \(displayName)!")
.font(.subheadline)
.fontWeight(.bold)
Button { context.send(viewAction: .tapUserAvatar) } label: {
Text("Hello, \(displayName)!")
.font(.subheadline)
.fontWeight(.bold)
.foregroundColor(.black)
}
} else {
EmptyView()
}