conversations-classic-ios/ConversationsClassic/AppCore/Reducers/SharingReducer.swift

37 lines
1.1 KiB
Swift
Raw Normal View History

2024-07-10 17:49:36 +00:00
import Foundation
2024-07-10 14:13:47 +00:00
extension SharingState {
static func reducer(state: inout SharingState, action: SharingAction) {
switch action {
case .showSharing(let shown):
state.sharingShown = shown
2024-07-10 17:49:36 +00:00
case .setCameraAccess(let granted):
state.isCameraAccessGranted = granted
case .setGalleryAccess(let granted):
state.isGalleryAccessGranted = granted
case .cameraCaptured(let media, let type):
state.cameraCapturedMedia = media
state.cameraCapturedMediaType = type
case .flushCameraCaptured:
state.cameraCapturedMedia = Data()
state.cameraCapturedMediaType = .photo
case .galleryFetched(let items):
state.galleryItems = items
case .thumbnailUpdated(let thumbnailData, let id):
guard let index = state.galleryItems.firstIndex(where: { $0.id == id }) else {
return
}
state.galleryItems[index].thumbnail = thumbnailData
2024-07-10 14:13:47 +00:00
default:
break
}
}
}