Skip to main content
Glama
ListView.swift2.17 kB
import SwiftUI struct ListView: View { @State private var viewModel = ViewModel() var body: some View { List { ForEach(viewModel.todoItems) { item in TodoRowView( item: item, onToggle: { viewModel.toggleItem(item.id) } ) } .onMove(perform: viewModel.moveItems) .onDelete(perform: viewModel.deleteItems) if viewModel.isAddingNewItem { HStack { TextField("New todo item", text: $viewModel.newItemText) .textFieldStyle(RoundedBorderTextFieldStyle()) .onSubmit { viewModel.addNewItem() } Button("Cancel") { viewModel.cancelAddingItem() } .foregroundColor(.red) } .padding(.vertical, 4) } } .toolbar { ToolbarItemGroup(placement: .navigationBarTrailing) { EditButton() Button(action: { viewModel.startAddingNewItem() }) { Image(systemName: "plus") } .disabled(viewModel.isAddingNewItem) } } } } struct TodoRowView: View { let item: TodoItem let onToggle: () -> Void var body: some View { HStack { Button(action: onToggle) { Image(systemName: item.isCompleted ? "checkmark.circle.fill" : "circle") .foregroundColor(item.isCompleted ? .green : .gray) .font(.title2) } .buttonStyle(PlainButtonStyle()) Text(item.text) .strikethrough(item.isCompleted) .foregroundColor(item.isCompleted ? .gray : .primary) .animation(.easeInOut(duration: 0.2), value: item.isCompleted) Spacer() } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zillow/auto-mobile'

If you have feedback or need assistance with the MCP directory API, please join our Discord server