Add SwiftLint rule to enforce stack spacing. (#2080)

Xcode 15 changes the default behaviour and given we're always working from designs, we shouldn't rely on it for our layout.
This commit is contained in:
Doug
2023-11-14 12:38:38 +00:00
committed by GitHub
parent 752ad66397
commit 2c1e61a1bc
123 changed files with 289 additions and 293 deletions
@@ -72,7 +72,7 @@ struct LongPressWithFeedback_Previews: PreviewProvider, TestablePreview {
var body: some View {
NavigationStack {
ScrollView {
VStack(alignment: .leading) {
VStack(alignment: .leading, spacing: 8) {
mockBubble("This is a message from somebody with a couple of lines of text.")
.longPressWithFeedback { isPresentingSheet = true }
@@ -33,7 +33,7 @@ private struct TimelineItemAccessibilityModifier: ViewModifier {
case let timelineItem as EventBasedTimelineItemProtocol:
content
.accessibilityRepresentation {
VStack {
VStack(spacing: 8) {
Text(timelineItem.sender.displayName ?? timelineItem.sender.id)
content
}
@@ -49,7 +49,7 @@ struct TimelineItemBubbledStylerView<Content: View>: View {
}
VStack(alignment: alignment, spacing: 0) {
HStack {
HStack(spacing: 0) {
if timelineItem.isOutgoing {
Spacer()
}
@@ -520,7 +520,7 @@ struct TimelineItemBubbledStylerView_Previews: PreviewProvider, TestablePreview
}
static var replies: some View {
VStack {
VStack(spacing: 0) {
RoomTimelineItemView(viewState: .init(item: TextRoomTimelineItem(id: .init(timelineID: ""),
timestamp: "10:42",
isOutgoing: true,
@@ -27,16 +27,12 @@ struct TimelineItemPlainStylerView<Content: View>: View {
@State private var showItemActionMenu = false
var body: some View {
VStack(alignment: .trailing) {
VStack(alignment: .trailing, spacing: 0) {
VStack(alignment: .leading, spacing: 4) {
header
VStack(alignment: .leading, spacing: 4) {
HStack(alignment: .firstTextBaseline) {
contentWithReply
Spacer()
}
contentWithReply
supplementaryViews
}
}
@@ -47,7 +43,7 @@ struct TimelineItemPlainStylerView<Content: View>: View {
@ViewBuilder
var contentWithReply: some View {
VStack(alignment: .leading) {
VStack(alignment: .leading, spacing: 8) {
if let messageTimelineItem = timelineItem as? EventBasedMessageTimelineItemProtocol {
if messageTimelineItem.isThreaded {
ThreadDecorator()
@@ -98,8 +94,8 @@ struct TimelineItemPlainStylerView<Content: View>: View {
@ViewBuilder
private var header: some View {
if shouldShowSenderDetails {
HStack {
HStack {
HStack(spacing: 8) {
HStack(spacing: 8) {
TimelineSenderAvatarView(timelineItem: timelineItem)
Text(timelineItem.sender.displayName ?? timelineItem.sender.id)
.font(.subheadline)
@@ -123,7 +119,7 @@ struct TimelineItemPlainStylerView<Content: View>: View {
@ViewBuilder
private var supplementaryViews: some View {
VStack {
VStack(spacing: 4) {
if timelineItem.properties.isEdited {
Text(L10n.commonEditedSuffix)
.font(.compound.bodySM)
@@ -251,8 +247,9 @@ struct TimelineItemPlainStylerView_Previews: PreviewProvider, TestablePreview {
}
}
.environment(\.timelineStyle, .plain)
.previewLayout(.sizeThatFits)
.environmentObject(viewModel.context)
.previewLayout(.sizeThatFits)
threads
.padding()
.environment(\.timelineStyle, .plain)
@@ -145,7 +145,7 @@ struct TimelineItemStyler_Previews: PreviewProvider, TestablePreview {
content: .init(body: "באמת‏! -- house!"))
static var testView: some View {
VStack {
VStack(spacing: 0) {
TextRoomTimelineView(timelineItem: base)
TextRoomTimelineView(timelineItem: sentNonLast)
TextRoomTimelineView(timelineItem: sentLast)
@@ -156,7 +156,7 @@ struct TimelineItemStyler_Previews: PreviewProvider, TestablePreview {
}
static var languagesTestView: some View {
VStack {
VStack(spacing: 0) {
TextRoomTimelineView(timelineItem: ltrString)
TextRoomTimelineView(timelineItem: rtlString)
TextRoomTimelineView(timelineItem: ltrStringThatContainsRtl)