mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-11-26 02:01:02 +00:00
Fix out of bounds composer in the share sheet and in the app Fix #507
This commit is contained in:
parent
e5b6e79fa9
commit
dbb8bd2a3d
3 changed files with 63 additions and 50 deletions
|
@ -37,6 +37,15 @@ class ShareViewController: UIViewController {
|
|||
childView.view.frame = self.view.bounds
|
||||
self.view.addSubview(childView.view)
|
||||
childView.didMove(toParent: self)
|
||||
|
||||
childView.view.translatesAutoresizingMaskIntoConstraints = false
|
||||
|
||||
NSLayoutConstraint.activate([
|
||||
childView.view.topAnchor.constraint(equalTo: self.view.topAnchor),
|
||||
childView.view.bottomAnchor.constraint(equalTo: self.view.bottomAnchor),
|
||||
childView.view.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
|
||||
childView.view.trailingAnchor.constraint(equalTo: self.view.trailingAnchor)
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,67 +21,70 @@ struct StatusEditorAccessoryView: View {
|
|||
var body: some View {
|
||||
VStack(spacing: 0) {
|
||||
Divider()
|
||||
HStack(alignment: .center, spacing: 16) {
|
||||
PhotosPicker(selection: $viewModel.selectedMedias,
|
||||
matching: .any(of: [.images, .videos])) {
|
||||
if viewModel.isMediasLoading {
|
||||
ProgressView()
|
||||
} else {
|
||||
Image(systemName: "photo.fill.on.rectangle.fill")
|
||||
}
|
||||
}
|
||||
.disabled(viewModel.showPoll)
|
||||
HStack {
|
||||
ScrollView(.horizontal) {
|
||||
HStack(alignment: .center, spacing: 16) {
|
||||
PhotosPicker(selection: $viewModel.selectedMedias,
|
||||
matching: .any(of: [.images, .videos])) {
|
||||
if viewModel.isMediasLoading {
|
||||
ProgressView()
|
||||
} else {
|
||||
Image(systemName: "photo.fill.on.rectangle.fill")
|
||||
}
|
||||
}
|
||||
.disabled(viewModel.showPoll)
|
||||
|
||||
Button {
|
||||
withAnimation {
|
||||
viewModel.showPoll.toggle()
|
||||
}
|
||||
} label: {
|
||||
Image(systemName: "chart.bar")
|
||||
}
|
||||
.disabled(viewModel.shouldDisablePollButton)
|
||||
Button {
|
||||
withAnimation {
|
||||
viewModel.showPoll.toggle()
|
||||
}
|
||||
} label: {
|
||||
Image(systemName: "chart.bar")
|
||||
}
|
||||
.disabled(viewModel.shouldDisablePollButton)
|
||||
|
||||
Button {
|
||||
withAnimation {
|
||||
viewModel.spoilerOn.toggle()
|
||||
}
|
||||
isSpoilerTextFocused.toggle()
|
||||
} label: {
|
||||
Image(systemName: viewModel.spoilerOn ? "exclamationmark.triangle.fill" : "exclamationmark.triangle")
|
||||
}
|
||||
Button {
|
||||
withAnimation {
|
||||
viewModel.spoilerOn.toggle()
|
||||
}
|
||||
isSpoilerTextFocused.toggle()
|
||||
} label: {
|
||||
Image(systemName: viewModel.spoilerOn ? "exclamationmark.triangle.fill" : "exclamationmark.triangle")
|
||||
}
|
||||
|
||||
if !viewModel.mode.isInShareExtension {
|
||||
Button {
|
||||
isDraftsSheetDisplayed = true
|
||||
} label: {
|
||||
Image(systemName: "archivebox")
|
||||
}
|
||||
}
|
||||
if !viewModel.mode.isInShareExtension {
|
||||
Button {
|
||||
isDraftsSheetDisplayed = true
|
||||
} label: {
|
||||
Image(systemName: "archivebox")
|
||||
}
|
||||
}
|
||||
|
||||
if !viewModel.customEmojis.isEmpty {
|
||||
Button {
|
||||
isCustomEmojisSheetDisplay = true
|
||||
} label: {
|
||||
Image(systemName: "face.smiling.inverse")
|
||||
}
|
||||
}
|
||||
if !viewModel.customEmojis.isEmpty {
|
||||
Button {
|
||||
isCustomEmojisSheetDisplay = true
|
||||
} label: {
|
||||
Image(systemName: "face.smiling.inverse")
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
isLanguageSheetDisplayed.toggle()
|
||||
} label: {
|
||||
if let language = viewModel.selectedLanguage {
|
||||
Text(language.uppercased())
|
||||
} else {
|
||||
Image(systemName: "globe")
|
||||
Button {
|
||||
isLanguageSheetDisplayed.toggle()
|
||||
} label: {
|
||||
if let language = viewModel.selectedLanguage {
|
||||
Text(language.uppercased())
|
||||
} else {
|
||||
Image(systemName: "globe")
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(.horizontal, .layoutPadding)
|
||||
}
|
||||
|
||||
Spacer()
|
||||
|
||||
characterCountView
|
||||
.padding(.trailing, .layoutPadding)
|
||||
}
|
||||
.frame(height: 20)
|
||||
.padding(.horizontal, .layoutPadding)
|
||||
.padding(.vertical, 12)
|
||||
.background(.ultraThinMaterial)
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ public struct StatusesListView<Fetcher>: View where Fetcher: StatusesFetcher {
|
|||
StatusRowView(viewModel: .init(status: status, isCompact: false))
|
||||
.redacted(reason: .placeholder)
|
||||
.shimmering()
|
||||
|
||||
.padding(.horizontal, .layoutPadding)
|
||||
Divider()
|
||||
.padding(.vertical, .dividerPadding)
|
||||
|
|
Loading…
Reference in a new issue