NavigationDestination.swift 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import Foundation
  2. enum NavigationDestination: String, CaseIterable, Identifiable {
  3. case grammarChecker
  4. case summarizer
  5. case paraphrasing
  6. case languageTranslator
  7. case punctuationChecker
  8. case wordsCount
  9. case aiEmailWriter
  10. case spellingChecker
  11. case dictionary
  12. case journalFinder
  13. case history
  14. var id: String { rawValue }
  15. var title: String {
  16. switch self {
  17. case .grammarChecker: "Grammar Checker"
  18. case .summarizer: "Summarizer"
  19. case .paraphrasing: "Paraphrasing"
  20. case .languageTranslator: "Language Translator"
  21. case .punctuationChecker: "Punctuation Checker"
  22. case .wordsCount: "Words Count"
  23. case .aiEmailWriter: "AI Email Writer"
  24. case .spellingChecker: "Spelling Checker"
  25. case .dictionary: "Dictionary"
  26. case .journalFinder: "Journal Finder"
  27. case .history: "History"
  28. }
  29. }
  30. var iconName: String {
  31. iconName(isSelected: false)
  32. }
  33. func iconName(isSelected: Bool) -> String {
  34. switch self {
  35. case .grammarChecker: isSelected ? "checkmark.square.fill" : "checkmark.square"
  36. case .summarizer: isSelected ? "doc.text.fill" : "doc.text"
  37. case .paraphrasing: isSelected ? "arrow.triangle.2.circlepath" : "arrow.triangle.2.circlepath"
  38. case .languageTranslator: isSelected ? "globe" : "globe"
  39. case .punctuationChecker: isSelected ? "text.quote" : "text.quote"
  40. case .wordsCount: isSelected ? "textformat.123" : "textformat.123"
  41. case .aiEmailWriter: isSelected ? "envelope.fill" : "envelope"
  42. case .spellingChecker: isSelected ? "checklist" : "checklist"
  43. case .dictionary: isSelected ? "book.fill" : "book"
  44. case .journalFinder: isSelected ? "magnifyingglass" : "magnifyingglass"
  45. case .history: isSelected ? "clock.fill" : "clock"
  46. }
  47. }
  48. }