Private Sub CreateProductsRow (data As Map) As Tag
Dim id As Int = data.Get("id")
Dim code As String = data.Get("code")
Dim name As String = data.Get("name")
Dim price As Double = data.Get("price")
Dim category As String = data.Get("category")
If App.ctx.ContainsKey("/table/row") = False Then
Dim tr1 As Tag = Tr.init
tr1.add(Td.cls("align-middle").sty("text-align: right"))'.text(id)
tr1.add(Td.cls("align-middle"))'.text(code)
tr1.add(Td.cls("align-middle"))'.text(name)
tr1.add(Td.cls("align-middle"))'.text(category)
tr1.add(Td.cls("align-middle").sty("text-align: right"))'.text(NumberFormat2(price, 1, 2, 2, True))
Dim td6 As Tag = Td.cls("align-middle text-center px-1 py-1").up(tr1)
Dim anchor1 As Tag = Anchor.cls("edit text-primary mx-2").up(td6)
anchor1.hxGet("") '($"/api/products/edit/${id}"$)
anchor1.hxTarget("#modal-content")
anchor1.hxTrigger("click")
anchor1.data("bs-toggle", "modal")
anchor1.data("bs-target", "#modal-container")
anchor1.add(Icon.cls("bi bi-pencil"))
anchor1.attr("title", "Edit")
Dim anchor2 As Tag = Anchor.cls("delete text-danger mx-2").up(td6)
anchor2.hxGet("") '($"/api/products/delete/${id}"$)
anchor2.hxTarget("#modal-content")
anchor2.hxTrigger("click")
anchor2.data("bs-toggle", "modal")
anchor2.data("bs-target", "#modal-container")
anchor2.add(Icon.cls("bi bi-trash3"))
anchor2.attr("title", "Delete")
' Store for reuse
App.ctx.Put("/table/row", tr1)
End If
Dim ctx As CopyOnWriteMap
ctx.Initialize(App.ctx)
Dim row1 As Tag = ctx.GetMap.Get("/table/row")
Log($"temp: ${row1.Child(0).innerText} | ${row1.Child(1).innerText} | ${row1.Child(2).innerText}"$)
' Update tag with new data
row1.Child(0).text2(id)
row1.Child(1).text2(code)
row1.Child(2).text2(name)
row1.Child(3).text2(category)
row1.Child(4).text2(NumberFormat2(price, 1, 2, 2, True))
Dim td6 As Tag = row1.Child(5)
Dim anchor1 As Tag = td6.Child(0)
anchor1.hxGet($"/api/products/edit/${id}"$)
Dim anchor2 As Tag = td6.Child(1)
anchor2.hxGet($"/api/products/delete/${id}"$)
Log($"row: ${row1.Child(0).innerText} | ${row1.Child(1).innerText} | ${row1.Child(2).innerText}"$)
Return row1
End Sub