Fix potentially buggy media uploader setting
This commit is contained in:
@@ -13,6 +13,7 @@ struct ImagePicker: UIViewControllerRepresentable {
|
|||||||
@Environment(\.presentationMode)
|
@Environment(\.presentationMode)
|
||||||
private var presentationMode
|
private var presentationMode
|
||||||
|
|
||||||
|
let uploader: MediaUploader
|
||||||
let sourceType: UIImagePickerController.SourceType
|
let sourceType: UIImagePickerController.SourceType
|
||||||
let pubkey: String
|
let pubkey: String
|
||||||
@Binding var image_upload_confirm: Bool
|
@Binding var image_upload_confirm: Bool
|
||||||
@@ -108,9 +109,8 @@ struct ImagePicker: UIViewControllerRepresentable {
|
|||||||
func makeUIViewController(context: UIViewControllerRepresentableContext<ImagePicker>) -> UIImagePickerController {
|
func makeUIViewController(context: UIViewControllerRepresentableContext<ImagePicker>) -> UIImagePickerController {
|
||||||
let picker = UIImagePickerController()
|
let picker = UIImagePickerController()
|
||||||
picker.sourceType = sourceType
|
picker.sourceType = sourceType
|
||||||
let mediaUploader = get_media_uploader(pubkey)
|
|
||||||
picker.mediaTypes = ["public.image", "com.compuserve.gif"]
|
picker.mediaTypes = ["public.image", "com.compuserve.gif"]
|
||||||
if mediaUploader.supportsVideo && !imagesOnly {
|
if uploader.supportsVideo && !imagesOnly {
|
||||||
picker.mediaTypes.append("public.movie")
|
picker.mediaTypes.append("public.movie")
|
||||||
}
|
}
|
||||||
picker.delegate = context.coordinator
|
picker.delegate = context.coordinator
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ struct PostView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handle_upload(media: MediaUpload) {
|
func handle_upload(media: MediaUpload) {
|
||||||
let uploader = get_media_uploader(damus_state.pubkey)
|
let uploader = damus_state.settings.default_media_uploader
|
||||||
Task.init {
|
Task.init {
|
||||||
let img = getImage(media: media)
|
let img = getImage(media: media)
|
||||||
let res = await image_upload.start(media: media, uploader: uploader)
|
let res = await image_upload.start(media: media, uploader: uploader)
|
||||||
@@ -336,7 +336,7 @@ struct PostView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.sheet(isPresented: $attach_media) {
|
.sheet(isPresented: $attach_media) {
|
||||||
ImagePicker(sourceType: .photoLibrary, pubkey: damus_state.pubkey, image_upload_confirm: $image_upload_confirm) { img in
|
ImagePicker(uploader: damus_state.settings.default_media_uploader, sourceType: .photoLibrary, pubkey: damus_state.pubkey, image_upload_confirm: $image_upload_confirm) { img in
|
||||||
self.mediaToUpload = .image(img)
|
self.mediaToUpload = .image(img)
|
||||||
} onVideoPicked: { url in
|
} onVideoPicked: { url in
|
||||||
self.mediaToUpload = .video(url)
|
self.mediaToUpload = .video(url)
|
||||||
@@ -353,7 +353,7 @@ struct PostView: View {
|
|||||||
}
|
}
|
||||||
.sheet(isPresented: $attach_camera) {
|
.sheet(isPresented: $attach_camera) {
|
||||||
// image_upload_confirm isn't handled here, I don't know we need to display it here too tbh
|
// image_upload_confirm isn't handled here, I don't know we need to display it here too tbh
|
||||||
ImagePicker(sourceType: .camera, pubkey: damus_state.pubkey, image_upload_confirm: $image_upload_confirm) { img in
|
ImagePicker(uploader: damus_state.settings.default_media_uploader, sourceType: .camera, pubkey: damus_state.pubkey, image_upload_confirm: $image_upload_confirm) { img in
|
||||||
handle_upload(media: .image(img))
|
handle_upload(media: .image(img))
|
||||||
} onVideoPicked: { url in
|
} onVideoPicked: { url in
|
||||||
handle_upload(media: .video(url))
|
handle_upload(media: .video(url))
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct EditProfilePictureControl: View {
|
struct EditProfilePictureControl: View {
|
||||||
|
let uploader: MediaUploader
|
||||||
let pubkey: String
|
let pubkey: String
|
||||||
@Binding var profile_image: URL?
|
@Binding var profile_image: URL?
|
||||||
@ObservedObject var viewModel: ProfileUploadingViewModel
|
@ObservedObject var viewModel: ProfileUploadingViewModel
|
||||||
@@ -46,7 +46,7 @@ struct EditProfilePictureControl: View {
|
|||||||
}
|
}
|
||||||
.sheet(isPresented: $show_camera) {
|
.sheet(isPresented: $show_camera) {
|
||||||
// The alert may not be required for the profile pic upload case. Not showing the confirm check alert for this scenario
|
// The alert may not be required for the profile pic upload case. Not showing the confirm check alert for this scenario
|
||||||
ImagePicker(sourceType: .camera, pubkey: pubkey, image_upload_confirm: $image_upload_confirm, imagesOnly: true) { img in
|
ImagePicker(uploader: uploader, sourceType: .camera, pubkey: pubkey, image_upload_confirm: $image_upload_confirm, imagesOnly: true) { img in
|
||||||
handle_upload(media: .image(img))
|
handle_upload(media: .image(img))
|
||||||
} onVideoPicked: { url in
|
} onVideoPicked: { url in
|
||||||
print("Cannot upload videos as profile image")
|
print("Cannot upload videos as profile image")
|
||||||
@@ -54,7 +54,7 @@ struct EditProfilePictureControl: View {
|
|||||||
}
|
}
|
||||||
.sheet(isPresented: $show_library) {
|
.sheet(isPresented: $show_library) {
|
||||||
// The alert may not be required for the profile pic upload case. Not showing the confirm check alert for this scenario
|
// The alert may not be required for the profile pic upload case. Not showing the confirm check alert for this scenario
|
||||||
ImagePicker(sourceType: .photoLibrary, pubkey: pubkey, image_upload_confirm: $image_upload_confirm, imagesOnly: true) { img in
|
ImagePicker(uploader: uploader, sourceType: .photoLibrary, pubkey: pubkey, image_upload_confirm: $image_upload_confirm, imagesOnly: true) { img in
|
||||||
handle_upload(media: .image(img))
|
handle_upload(media: .image(img))
|
||||||
} onVideoPicked: { url in
|
} onVideoPicked: { url in
|
||||||
print("Cannot upload videos as profile image")
|
print("Cannot upload videos as profile image")
|
||||||
@@ -64,7 +64,6 @@ struct EditProfilePictureControl: View {
|
|||||||
|
|
||||||
private func handle_upload(media: MediaUpload) {
|
private func handle_upload(media: MediaUpload) {
|
||||||
viewModel.isLoading = true
|
viewModel.isLoading = true
|
||||||
let uploader = get_media_uploader(pubkey)
|
|
||||||
Task {
|
Task {
|
||||||
let res = await image_upload.start(media: media, uploader: uploader)
|
let res = await image_upload.start(media: media, uploader: uploader)
|
||||||
|
|
||||||
|
|||||||
@@ -23,11 +23,15 @@ struct ProfilePictureSelector: View {
|
|||||||
|
|
||||||
@State var profile_image: URL? = nil
|
@State var profile_image: URL? = nil
|
||||||
|
|
||||||
|
var uploader: MediaUploader {
|
||||||
|
damus_state?.settings.default_media_uploader ?? .nostrBuild
|
||||||
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
let highlight: Highlight = .custom(Color.white, 2.0)
|
let highlight: Highlight = .custom(Color.white, 2.0)
|
||||||
ZStack {
|
ZStack {
|
||||||
EditProfilePictureView(url: $profile_image, pubkey: pubkey, size: size, highlight: highlight, damus_state: damus_state)
|
EditProfilePictureView(url: $profile_image, pubkey: pubkey, size: size, highlight: highlight, damus_state: damus_state)
|
||||||
EditProfilePictureControl(pubkey: pubkey, profile_image: $profile_image, viewModel: viewModel, callback: callback)
|
EditProfilePictureControl(uploader: uploader, pubkey: pubkey, profile_image: $profile_image, viewModel: viewModel, callback: callback)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user