diff --git a/sui/core/build.go b/sui/core/build.go
index 7c02c487..8f76f8a0 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"
}
}
diff --git a/sui/storages/local/build_test.go b/sui/storages/local/build_test.go
index d42549bb..f8c6b1e2 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), `