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
 | 
						|
    }
 | 
						|
}
 |