Skip to content

Instantly share code, notes, and snippets.

struct ContentView: View {
private let viewModel = HobbyViewModel()
@State private var showAlert: Bool = false
@State private var randomHobby: Hobby?
var body: some View {
Button("Random hobby") {
randomHobby = viewModel.randomHobby()
struct ContentView: View {
@State private var showAlert: Bool = false
var body: some View {
Button("Show alert") {
showAlert = true
}.alert(
"Hello!",
isPresented: $showAlert,
struct ContentView: View {
@State private var showAlert: Bool = false
var body: some View {
Button("Show alert") {
showAlert = true
}.alert("Hello!", isPresented: $showAlert, actions: {})
}
}
struct ContentView: View {
@State private var showAlert: Bool = false
var body: some View {
Button("Show alert") {
showAlert = true
}
}
}
struct ContentView: View {
@State private var showAlert: Bool = false
// ...
}
@MainActor
@Observable
class ChatViewModel {
// ...
var scrollPosition: UUID? = nil
func sendMessage() {
guard canSendMessage else { return }
// In a real chat app this would make a server call to send the message
SendMessageButton {
viewModel.sendMessage()
}
.disabled(!viewModel.canSendMessage)
@MainActor
struct ChatView: View {
@Bindable private var viewModel: ChatViewModel = ChatViewModel()
var body: some View {
NavigationStack {
VStack {
ChatMessagesList(viewModel: viewModel)
HStack {
import SwiftUI
struct ChatMessagesList: View {
@Bindable var viewModel: ChatViewModel
var body: some View {
ScrollView {
ForEach(viewModel.messages) { message in
MessageCell(message: message)
import SwiftUI
struct ChatMessagesList: View {
@Bindable var viewModel: ChatViewModel
var body: some View {
ScrollView {
ForEach(viewModel.messages) { message in
MessageCell(message: message)