Remove internal package import from todo example
All checks were successful
CI / build (push) Successful in 27s
All checks were successful
CI / build (push) Successful in 27s
Replace direct internal/element usage with public ui package components to ensure examples only use the public API: - Add ui.RawCheckbox for plain checkbox without label wrapper - Add ui.Span for span elements with text content - Add View.TextDecoration modifier for strikethrough styling - Update todo example to use these public components Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit was merged in pull request #16.
This commit is contained in:
@@ -6,7 +6,6 @@ import (
|
||||
"fmt"
|
||||
"syscall/js"
|
||||
|
||||
"git.flowmade.one/flowmade-one/iris/internal/element"
|
||||
"git.flowmade.one/flowmade-one/iris/reactive"
|
||||
"git.flowmade.one/flowmade-one/iris/ui"
|
||||
)
|
||||
@@ -142,28 +141,19 @@ func todoItem(todo Todo, todos *reactive.Signal[[]Todo]) ui.View {
|
||||
row.Display("flex").Gap("12px").Padding("8px 0").Width("100%").AlignItems("center")
|
||||
row.BorderBottom("1px solid #eee")
|
||||
|
||||
// Completed checkbox
|
||||
checkbox := element.NewElement("input")
|
||||
checkbox.Attr("type", "checkbox")
|
||||
if todo.Completed {
|
||||
checkbox.Set("checked", true)
|
||||
}
|
||||
checkbox.On("change", func() {
|
||||
isChecked := checkbox.Get("checked").Bool()
|
||||
// Completed checkbox using public ui.RawCheckbox
|
||||
checkbox := ui.RawCheckbox(todo.Completed, func(isChecked bool) {
|
||||
toggleTodo(todos, todo.ID, isChecked)
|
||||
})
|
||||
checkboxView := ui.NewViewFromElement(checkbox)
|
||||
|
||||
// Todo text with strikethrough if completed
|
||||
textView := ui.NewView()
|
||||
textView.Display("flex").Width("100%")
|
||||
text := element.NewElement("span")
|
||||
text.Set("textContent", todo.Text)
|
||||
text := ui.Span(todo.Text)
|
||||
if todo.Completed {
|
||||
text.Get("style").Call("setProperty", "text-decoration", "line-through")
|
||||
text.Get("style").Call("setProperty", "color", "#999")
|
||||
text.TextDecoration("line-through").Color("#999")
|
||||
}
|
||||
textView.Child(ui.NewViewFromElement(text))
|
||||
textView.Child(text)
|
||||
|
||||
// Delete button
|
||||
deleteBtn := ui.Button(func() {
|
||||
@@ -171,7 +161,7 @@ func todoItem(todo Todo, todos *reactive.Signal[[]Todo]) ui.View {
|
||||
}, ui.TextFromString("X"))
|
||||
deleteBtn.Padding("4px 8px")
|
||||
|
||||
row.Child(checkboxView)
|
||||
row.Child(checkbox)
|
||||
row.Child(textView)
|
||||
row.Child(deleteBtn)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user