IceCubesApp/Packages/Status/Sources/Status/Editor/Components/StatusEditorAIPrompt.swift

39 lines
1 KiB
Swift
Raw Normal View History

2023-01-13 17:43:02 +00:00
import Foundation
import Network
2023-01-17 10:36:01 +00:00
import SwiftUI
2023-01-13 17:43:02 +00:00
2023-02-21 17:52:30 +00:00
enum StatusEditorAIPrompt: CaseIterable {
case correct, fit, emphasize, addTags, insertTags
2023-01-17 10:36:01 +00:00
2023-01-13 17:43:02 +00:00
@ViewBuilder
var label: some View {
switch self {
case .correct:
Label("status.editor.ai-prompt.correct", systemImage: "text.badge.checkmark")
case .addTags:
Label("status.editor.ai-prompt.add-tags", systemImage: "number")
case .insertTags:
Label("status.editor.ai-prompt.insert-tags", systemImage: "number")
2023-01-13 17:43:02 +00:00
case .fit:
Label("status.editor.ai-prompt.fit", systemImage: "text.badge.minus")
2023-01-13 17:43:02 +00:00
case .emphasize:
Label("status.editor.ai-prompt.emphasize", systemImage: "text.badge.star")
2023-01-13 17:43:02 +00:00
}
}
2023-01-17 10:36:01 +00:00
2023-02-21 17:52:30 +00:00
func toRequestPrompt(text: String) -> OpenAIClient.Prompt {
2023-01-13 17:43:02 +00:00
switch self {
case .correct:
return .correct(input: text)
case .addTags:
return .addTags(input: text)
case .insertTags:
return .insertTags(input: text)
2023-01-13 17:43:02 +00:00
case .fit:
return .shorten(input: text)
case .emphasize:
return .emphasize(input: text)
}
}
}