Code Review Friday: Let's Improve your code, ask Corvid master

You were almost there



import wixData from "wix-data";

$w.onReady(function () {
  $w("#dynamicDataset").onReady(() => {
 // SHORT DESC CODE
    $w("#listRepeater").onItemReady(($item, itemData) => {
 const { description } = itemData;

 // on item ready set the desc shorter
      $item("#desc").text = shortText(description);
      $item("#showmore").label = "Show More";

      $item("#showmore").onClick((event) => {
 // toggle short desc.
 if ($item("#showmore").label === "Show More") {
          $item("#desc").text = description;
          $item("#showmore").label = "Show Less";
        } else {
          $item("#desc").text = shortText(description);
          $item("#showmore").label = "Show More";
        }
      });
    });

 function shortText(text, maxLen = 220) {
 return text.substr(0, maxLen) + "...";
    }

 // comment : change button10 to btnClear => stands for "button Clear" 
    $w('#button10').onClick(()=>{
      $w("#dropdown").value = "";
      $w("#dynamicDataset").setFilter(wixData.filter());
    })

  });

 //  FILTER CODE
  $w("#searc").onKeyPress(() => {
 // keypress event trigger before the dom is rendered
 // setTimeout will wait 40ms before excuting the code in filterDs
    setTimeout(filterDs, 40);
  });
 // Dropdown with all the company name
  $w("#dropdown").onChange(() => {
    filterDs();
  });
});

async function filterDs() {
 // inital filter
 let filterBuilder = wixData.filter();

 let keyword = $w("#searc").value;
 let dropdown = $w("#dropdown").value;

 if (keyword) {
    filterBuilder = filterBuilder.contains("positionTitle", keyword)
      .or(wixData.filter().contains("companyName", keyword));
 //lastFilterSearchBox = searchBox;
  }

 if (dropdown) {
    filterBuilder = filterBuilder.eq("jobType", dropdown);
    console.log("Dropdown value: " + dropdown);
  }
  await $w("#dynamicDataset").setFilter(filterBuilder);

 
 let count = $w("#dynamicDataset").getTotalCount();
  $w("#counter").text = String(count) + " jobs posted";

}