Files
bundesmessenger-ios/bwi/ContentScanner/UI/Thumbnail/ContentScannerThumbnailContentView.swift
T
2023-10-10 07:17:36 +02:00

86 lines
2.5 KiB
Swift

//
/*
* Copyright (c) 2021 BWI GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import SwiftUI
@available(iOS 14.0, *)
struct ContentScannerThumbnailContentView: View {
@ObservedObject var scanStatus: ContentScannerThumbnail
var body: some View {
VStack(alignment: .leading, spacing: 10) {
HStack {
ZStack {
Rectangle()
.fill(Color(scanStatus.backgroundColor))
if scanStatus.progressing {
ProgressView()
} else {
Image(scanStatus.imagePath)
}
}
.frame(
minHeight: 150
)
}
ThumbnailAttributedStatus(status: scanStatus.status,
filename: scanStatus.fileName,
statusColor: Color(scanStatus.statusColor),
filenameColor: Color(scanStatus.filenameColor))
}
.frame(
maxWidth: .infinity,
maxHeight: .infinity,
alignment: .topLeading
)
.background(Color.clear)
}
}
@available(iOS 14.0, *)
struct ThumbnailAttributedStatus: View {
let status: String
let filename: String
let statusColor: Color
let filenameColor: Color
var body: some View {
HStack {
if BWIBuildSettings.shared.showContentScannerStatusWithFilename {
Text(verbatim: filename)
.foregroundColor(filenameColor)
.font(.system(size: 15))
}
Text(verbatim: status)
.foregroundColor(statusColor)
.font(.system(size: 15))
}
}
}
@available(iOS 14.0, *)
struct ContentScannerThumbnailContentView_Previews: PreviewProvider {
static var previews: some View {
let scanStatus = ContentScannerThumbnail()
ContentScannerThumbnailContentView(scanStatus:scanStatus)
}
}