diff options
Diffstat (limited to 'Hotline/Shared/FileIconView.swift')
| -rw-r--r-- | Hotline/Shared/FileIconView.swift | 85 |
1 files changed, 40 insertions, 45 deletions
diff --git a/Hotline/Shared/FileIconView.swift b/Hotline/Shared/FileIconView.swift index d0949fa..d39ff1e 100644 --- a/Hotline/Shared/FileIconView.swift +++ b/Hotline/Shared/FileIconView.swift @@ -3,13 +3,13 @@ import UniformTypeIdentifiers struct FolderIconView: View { private func folderIcon() -> Image { -#if os(iOS) - return Image(systemName: "folder.fill") -#elseif os(macOS) - return Image(nsImage: NSWorkspace.shared.icon(for: UTType.folder)) -#endif + #if os(iOS) + return Image(systemName: "folder.fill") + #elseif os(macOS) + return Image(nsImage: NSWorkspace.shared.icon(for: UTType.folder)) + #endif } - + var body: some View { folderIcon() .resizable() @@ -20,52 +20,47 @@ struct FolderIconView: View { struct FileIconView: View { let filename: String let fileType: String? - + #if os(iOS) - private func fileIcon() -> Image { - let fileExtension = (self.filename as NSString).pathExtension - if let fileType = UTType(filenameExtension: fileExtension) { - if fileType.isSubtype(of: .movie) { - return Image(systemName: "play.rectangle") - } - else if fileType.isSubtype(of: .image) { - return Image(systemName: "photo") - } - else if fileType.isSubtype(of: .archive) { - return Image(systemName: "doc.zipper") - } - else if fileType.isSubtype(of: .text) { - return Image(systemName: "doc.text") - } - else { - return Image(systemName: "doc") + private func fileIcon() -> Image { + let fileExtension = (self.filename as NSString).pathExtension + if let fileType = UTType(filenameExtension: fileExtension) { + if fileType.isSubtype(of: .movie) { + return Image(systemName: "play.rectangle") + } else if fileType.isSubtype(of: .image) { + return Image(systemName: "photo") + } else if fileType.isSubtype(of: .archive) { + return Image(systemName: "doc.zipper") + } else if fileType.isSubtype(of: .text) { + return Image(systemName: "doc.text") + } else { + return Image(systemName: "doc") + } } + + return Image(systemName: "doc") } - - return Image(systemName: "doc") - } #elseif os(macOS) - private func fileIcon() -> Image { - let fileExtension = (self.filename as NSString).pathExtension - - if !fileExtension.isEmpty, - let uttype = UTType(filenameExtension: fileExtension) { - return Image(nsImage: NSWorkspace.shared.icon(for: uttype)) - } - else if let fileType = self.fileType, - let fileTypeExtension = FileManager.HFSTypeToExtension[fileType.lowercased()], - let uttype = UTType(filenameExtension: fileTypeExtension) { - return Image(nsImage: NSWorkspace.shared.icon(for: uttype)) - } - else { - return Image(nsImage: NSWorkspace.shared.icon(for: UTType.data)) + private func fileIcon() -> Image { + let fileExtension = (self.filename as NSString).pathExtension + + if !fileExtension.isEmpty, + let uttype = UTType(filenameExtension: fileExtension) + { + return Image(nsImage: NSWorkspace.shared.icon(for: uttype)) + } else if let fileType = self.fileType, + let fileTypeExtension = FileManager.HFSTypeToExtension[fileType.lowercased()], + let uttype = UTType(filenameExtension: fileTypeExtension) + { + return Image(nsImage: NSWorkspace.shared.icon(for: uttype)) + } else { + return Image(nsImage: NSWorkspace.shared.icon(for: UTType.data)) + } + + // Image(nsImage: NSWorkspace.shared.icon(for: UTType(filenameExtension: (filename as NSString).pathExtension) ?? UTType.content)) } - -// Image(nsImage: NSWorkspace.shared.icon(for: UTType(filenameExtension: (filename as NSString).pathExtension) ?? UTType.content)) - } #endif - var body: some View { fileIcon() .resizable() |