Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS-3276 Version history | Update empty header height #1886

Merged
merged 1 commit into from
Aug 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading