Initial commit: Scala/Thorium task manager demo app

This commit is contained in:
davidtio
2026-02-28 12:56:14 +08:00
commit 93e8401ed3
12 changed files with 430 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
import java.util.UUID
import java.util.concurrent.ConcurrentHashMap
import scala.jdk.CollectionConverters.*
case class Task(id: UUID, title: String, completed: Boolean)
object TaskStore:
private val tasks = ConcurrentHashMap[UUID, Task]()
// Pre-seed sample tasks
locally {
val samples = List(
"Deploy Scala app to Clouderized",
"Set up CI/CD with Gitea Actions",
"Configure custom domain"
)
samples.foreach { title =>
val id = UUID.randomUUID()
tasks.put(id, Task(id, title, false))
}
}
def all(): List[Task] =
tasks.values().asScala.toList.sortBy(_.title)
def add(title: String): Task =
val id = UUID.randomUUID()
val task = Task(id, title.trim, false)
tasks.put(id, task)
task
def toggle(id: UUID): Unit =
Option(tasks.get(id)).foreach { task =>
tasks.put(id, task.copy(completed = !task.completed))
}
def delete(id: UUID): Unit =
tasks.remove(id)
def get(id: UUID): Option[Task] =
Option(tasks.get(id))