LogSearchBar.tsx 974 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import React from "react";
  2. import SearchBar from "./porter/SearchBar";
  3. type Props = {
  4. searchText: string;
  5. setSearchText: (x: string) => void;
  6. setEnteredSearchText: (x: string) => void;
  7. setSelectedDate: () => void;
  8. };
  9. const escapeExp = (str: string) => {
  10. // regex special character need to be escaped twice
  11. const regEscaped = str.replace(/[.*+?^${}()|[\]\\]/g, "\\\\$&");
  12. // double quotes need to be escaped once
  13. const quoteEscaped = regEscaped.replace(/["]/g, "\\$&");
  14. return quoteEscaped;
  15. };
  16. const LogSearchBar: React.FC<Props> = ({
  17. searchText,
  18. setSearchText,
  19. setEnteredSearchText,
  20. setSelectedDate,
  21. }) => {
  22. return (
  23. <SearchBar
  24. width="250px"
  25. value={searchText}
  26. setValue={(x: any): any => {
  27. setSearchText(x);
  28. }}
  29. onEnter={() => {
  30. setEnteredSearchText(escapeExp(searchText));
  31. setSelectedDate();
  32. }}
  33. placeholder="Search logs . . ."
  34. />
  35. );
  36. };
  37. export default LogSearchBar;