36 lines
		
	
	
		
			857 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			857 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
| //
 | |
| //  ComposePostViewModel.swift
 | |
| //  WatchRunner Watch App
 | |
| //
 | |
| //  Created by LittleSheep on 2025/10/29.
 | |
| //
 | |
| 
 | |
| import Foundation
 | |
| import Combine
 | |
| 
 | |
| @MainActor
 | |
| class ComposePostViewModel: ObservableObject {
 | |
|     @Published var title = ""
 | |
|     @Published var content = ""
 | |
|     @Published var isPosting = false
 | |
|     @Published var errorMessage: String?
 | |
|     @Published var didPost = false
 | |
| 
 | |
|     private let networkService = NetworkService()
 | |
| 
 | |
|     func createPost(token: String, serverUrl: String) async {
 | |
|         guard !isPosting else { return }
 | |
|         isPosting = true
 | |
|         errorMessage = nil
 | |
| 
 | |
|         do {
 | |
|             try await networkService.createPost(title: title, content: content, token: token, serverUrl: serverUrl)
 | |
|             didPost = true
 | |
|         } catch {
 | |
|             errorMessage = error.localizedDescription
 | |
|         }
 | |
| 
 | |
|         isPosting = false
 | |
|     }
 | |
| }
 |