import Foundation
import SwiftUI

public enum ImageSource: Equatable {
    case local(Image)
    case remote(url: String?, fallbackId: String?)
    case likedPlaylist
}

public extension ImageSource {
    @ViewBuilder var source: some View {
        switch self {
        case .local(let image):
            image.resizable()
        case .remote(let url, let fallbackId):
            RemoteImage(url: url, fallbackId: fallbackId)
        case .likedPlaylist:
            Image.Icon.thumbsUpPlaylistAsset
                .resizable()
                .aspectRatio(contentMode: .fill)
        }
    }
}
