@Component
export struct YTSearch {
  //----搜索栏属性
  @State searchValue:string = ''
  //是否可以输入内容
  isEnable:boolean = true
  searchHeight:number = 36
  searchPadding:Padding|Length = {left:14,right:14}
  placeHolder:string = '请输入搜索内容'
  placeholderColor:ResourceColor = '#CC333333'
  placeholderFont:Font = {size:12}
  needLeftBuilder:boolean = true
  //----默认搜索图片属性 在传入leftBuilder或needLeftBuilder=false后无效
  src:ResourceStr = $r('app.media.search')
  imgWidth:Length = 24
  //----提交函数,回调以回传输入内容
  submit=(_:string)=>{

  }
  //----整体点击的处理函数
  click=()=>{

  }
  @BuilderParam leftBuilder:()=>void = this.defaultLeftBuilder
  @BuilderParam rightBuilder?:()=>void
  build() {
    Row(){
      if (this.needLeftBuilder){
        this.leftBuilder()
      }

      TextInput({text:$$this.searchValue,placeholder:this.placeHolder})
        .backgroundColor(Color.Transparent)
        .height('100%')
        .layoutWeight(1)
        .fontSize(12)
        .borderRadius(0)
        .placeholderFont(this.placeholderFont)
        .placeholderColor(this.placeholderColor)
        .padding(0)
        .caretColor('app.color.main_ac_color_dark')
        .enabled(this.isEnable)
        .onSubmit(()=>{
          this.submit(this.searchValue)
        })
      if (this.rightBuilder){
        this.rightBuilder()
      }
    }
    .padding(this.searchPadding)
    .borderRadius(this.searchHeight/2)
    .height(this.searchHeight)
    .width('100%')
    .border({width:1,color:$r('app.color.main_ac_color_dark')})
    .onClick(this.click)
  }

  @Builder
  defaultLeftBuilder(){
    Image(this.src)
      .width(this.imgWidth)
      .aspectRatio(1)
      .margin({right:4})
  }
}