From b6e2d3ae8e879163677ed2dcec78e47aab0926fe Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 29 Jul 2024 11:46:09 +0800 Subject: [PATCH 1/2] Refactor slot cloning logic in build.go --- sui/core/build.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/sui/core/build.go b/sui/core/build.go index 7c02c4876d..8f76f8a091 100644 --- a/sui/core/build.go +++ b/sui/core/build.go @@ -305,10 +305,11 @@ func (page *Page) parseImports(doc *goquery.Document) { // Copy the slots slots := selection.Find("slot").Clone() - for i = 0; i < slots.Length(); i++ { - slot := slots.Eq(i) + for j := 0; j < slots.Length(); j++ { + slot := slots.Eq(j) slotName, has := slot.Attr("name") if !has { + imp.slots[slotName] = slot continue } if impSlot, has := imp.slots[slotName]; has { @@ -799,10 +800,17 @@ func (page *Page) BuildHTML(option *BuildOption) (string, error) { } func setError(sel *goquery.Selection, err error) { + + errSel := sel + // If sel is input or textarea, set the error to the parent + if sel.Get(0).Data == "input" || sel.Get(0).Data == "textarea" { + errSel = sel.Parent() + } + html := `
%s
` - sel.SetHtml(fmt.Sprintf(html, err.Error())) - if sel.Nodes != nil || len(sel.Nodes) > 0 { - sel.Nodes[0].Data = "Error" + errSel.SetHtml(fmt.Sprintf(html, err.Error())) + if errSel.Nodes != nil || len(errSel.Nodes) > 0 { + errSel.Nodes[0].Data = "Error" } } From a91e47b072978a540fd4d6ba888a8342507602c5 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 29 Jul 2024 13:56:55 +0800 Subject: [PATCH 2/2] Refactor template build tests to use advanced template in sui/storages/local/build_test.go --- sui/storages/local/build_test.go | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/sui/storages/local/build_test.go b/sui/storages/local/build_test.go index d42549bb51..f8c6b1e281 100644 --- a/sui/storages/local/build_test.go +++ b/sui/storages/local/build_test.go @@ -56,7 +56,7 @@ func TestTemplateBuildAsComponent(t *testing.T) { tests := prepare(t) defer clean() - tmpl, err := tests.Web.GetTemplate("default") + tmpl, err := tests.Test.GetTemplate("advanced") if err != nil { t.Fatalf("GetTemplate error: %v", err) } @@ -76,15 +76,15 @@ func TestTemplateBuildAsComponent(t *testing.T) { t.Fatalf("Components error: %v", err) } - cselect := "/flowbite/components/edit/select.jit" - cinput := "/flowbite/components/edit/input.jit" + block := "/i18n/block.jit" + bar := "/backend/bar.jit" // Check JIT - assert.FileExists(t, filepath.Join(path, cselect)) - assert.FileExists(t, filepath.Join(path, cinput)) + assert.FileExists(t, filepath.Join(path, block)) + assert.FileExists(t, filepath.Join(path, bar)) assert.Len(t, warnings, 0) - content, err := os.ReadFile(filepath.Join(path, cselect)) + content, err := os.ReadFile(filepath.Join(path, bar)) if err != nil { t.Fatalf("ReadFile error: %v", err) } @@ -96,8 +96,8 @@ func TestTemplateBuildAsComponent(t *testing.T) { assert.Contains(t, string(content), `