Skip to content

Commit

Permalink
IOS-3276 Update empty header height
Browse files Browse the repository at this point in the history
  • Loading branch information
joe-pusya committed Aug 7, 2024
1 parent 2a7096d commit de31db3
Show file tree
Hide file tree
Showing 15 changed files with 51 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ final class SetObjectCreationSettingsCoordinator:
data: EditorPageObject(
objectId: setting.templateId,
spaceId: setting.spaceId,
usecase: .templateEditing
usecase: .embedded
),
showHeader: false,
setupEditorInput: { [weak self] input, _ in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ extension TemplatesCoordinator: TemplatePickerViewModuleOutput {
data: EditorPageObject(
objectId: template.id,
spaceId: template.spaceId,
usecase: .templateEditing
usecase: .embedded
),
showHeader: false,
setupEditorInput: { [weak self] input, objectId in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ extension TemplatePreviewModel {
header: HeaderBuilder.buildObjectHeader(
details: objectDetails,
usecase: .templatePreview,
presentationUsecase: .editor,
presentationUsecase: .full,
onIconTap: {},
onCoverTap: {}
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ extension EditorPageObject {
details: ObjectDetails,
mode: DocumentMode = .handling,
blockId: String? = nil,
usecase: ObjectHeaderEmptyData.ObjectHeaderEmptyUsecase = .editor
usecase: ObjectHeaderEmptyUsecase = .full
) {
self.objectId = details.id
self.spaceId = details.spaceId
Expand All @@ -38,12 +38,18 @@ extension EditorPageObject {
}

extension EditorSetObject {
init(details: ObjectDetails, activeViewId: String? = nil, mode: DocumentMode = .handling) {
init(
details: ObjectDetails,
activeViewId: String? = nil,
mode: DocumentMode = .handling,
usecase: ObjectHeaderEmptyUsecase = .full
) {
self.objectId = details.id
self.spaceId = details.spaceId
self.activeViewId = activeViewId
self.inline = nil
self.mode = mode
self.usecase = usecase
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ struct EditorPageObject: Hashable, Codable {
let spaceId: String
let mode: DocumentMode
var blockId: String?
let usecase: ObjectHeaderEmptyData.ObjectHeaderEmptyUsecase
let usecase: ObjectHeaderEmptyUsecase

init(
objectId: String,
spaceId: String,
mode: DocumentMode = .handling,
blockId: String? = nil,
usecase: ObjectHeaderEmptyData.ObjectHeaderEmptyUsecase = .editor
usecase: ObjectHeaderEmptyUsecase = .full
) {
self.objectId = objectId
self.spaceId = spaceId
Expand All @@ -41,19 +41,22 @@ struct EditorSetObject: Hashable, Codable {
let activeViewId: String?
var inline: EditorInlineSetObject?
let mode: DocumentMode
let usecase: ObjectHeaderEmptyUsecase

init(
objectId: String,
spaceId: String,
activeViewId: String? = nil,
inline: EditorInlineSetObject? = nil,
mode: DocumentMode = .handling
mode: DocumentMode = .handling,
usecase: ObjectHeaderEmptyUsecase = .full
) {
self.objectId = objectId
self.spaceId = spaceId
self.activeViewId = activeViewId
self.inline = inline
self.mode = mode
self.usecase = usecase
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ import Foundation

struct EditorPageViewModelConfiguration {
let blockId: String?
let usecase: ObjectHeaderEmptyData.ObjectHeaderEmptyUsecase
let usecase: ObjectHeaderEmptyUsecase
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ final class ObjectHeaderEmptyContentView: UIView, BlockContentView {
}

switch configuration.data.presentationStyle {
case .editor:
case .full:
heightConstraint?.constant = ObjectHeaderConstants.emptyViewHeight
case .templateEditing:
heightConstraint?.constant = ObjectHeaderConstants.templateEditingEmptyViewHeight
case .embedded:
heightConstraint?.constant = ObjectHeaderConstants.emptyViewHeightCompact
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ enum HeaderBuilder {
static func buildObjectHeader(
details: ObjectDetails,
usecase: ObjectIconImageUsecase,
presentationUsecase: ObjectHeaderEmptyData.ObjectHeaderEmptyUsecase,
presentationUsecase: ObjectHeaderEmptyUsecase,
onIconTap: @escaping () -> Void,
onCoverTap: @escaping () -> Void
) -> ObjectHeader {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ enum ObjectHeader: Hashable {
}

static func empty(
usecase: ObjectHeaderEmptyData.ObjectHeaderEmptyUsecase,
usecase: ObjectHeaderEmptyUsecase,
onTap: @escaping () -> Void
) -> Self {
return .empty(data: .init(presentationStyle: usecase, onTap: onTap), isShimmering: false)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import Foundation

enum ObjectHeaderEmptyUsecase: Codable {
case full
case embedded
}

struct ObjectHeaderEmptyData: Hashable {
enum ObjectHeaderEmptyUsecase: Codable {
case editor
case templateEditing
}

let presentationStyle: ObjectHeaderEmptyUsecase
@EquatableNoop private(set) var onTap: () -> Void
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import CoreGraphics

enum ObjectHeaderConstants {
static let minimizedHeaderHeight: CGFloat = 48
static let templateEditingEmptyViewHeight: CGFloat = 32
static let emptyViewHeight: CGFloat = 124
static let emptyViewHeightCompact: CGFloat = 32

static let coverHeight: CGFloat = 228
static let coverBottomInset: CGFloat = 32
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,10 @@ struct ObjectVersionView: View {

var body: some View {
VStack(spacing: 0) {
header
content
buttons
}
.overlay(alignment: .topLeading) {
header
}
.task {
await model.setupObject()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,23 @@ final class ObjectVersionViewModel: ObservableObject {
private func currentScreenData() -> EditorScreenData? {
let mode: DocumentMode = .version(data.versionId)
if data.isListType {
return .set(EditorSetObject(objectId: data.objectId, spaceId: data.spaceId, mode: mode))
return .set(
EditorSetObject(
objectId: data.objectId,
spaceId: data.spaceId,
mode: mode,
usecase: .embedded
)
)
} else {
return .page(EditorPageObject(objectId: data.objectId, spaceId: data.spaceId, mode: mode))
return .page(
EditorPageObject(
objectId: data.objectId,
spaceId: data.spaceId,
mode: mode,
usecase: .embedded
)
)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ final class EditorSetViewModel: ObservableObject {
targetObjectId: setDocument.targetObjectId,
configuration: EditorPageViewModelConfiguration(
blockId: nil,
usecase: .editor
usecase: data.usecase
),
output: output
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ struct SetFullHeader: View {

private var inlineHeader: some View {
VStack(alignment: .leading, spacing: 0) {
emptyCover
emptyCover(presentationStyle: .full)
VStack(alignment: .leading, spacing: 8) {
iconWithTitle
featuredRelationsView
Expand All @@ -46,7 +46,7 @@ struct SetFullHeader: View {
switch model.headerModel.header {
case .empty(let data, _):
Button(action: data.onTap) {
emptyCover
emptyCover(presentationStyle: data.presentationStyle)
}
case .filled(let state, _):
ObjectHeaderFilledContentSwitfUIView(
Expand All @@ -62,9 +62,9 @@ struct SetFullHeader: View {
}
}

private var emptyCover: some View {
private func emptyCover(presentationStyle: ObjectHeaderEmptyUsecase) -> some View {
Color.Background.primary
.frame(height: ObjectHeaderConstants.emptyViewHeight)
.frame(height: presentationStyle == .full ? ObjectHeaderConstants.emptyViewHeight : ObjectHeaderConstants.emptyViewHeightCompact)
}
}

Expand Down

0 comments on commit de31db3

Please sign in to comment.