I try to sort the value and update the same of both columns by onclick of name and Lname(its TH) Below is the link which am refering https://codesandbox.io/s/customtablereact-forked-drnc0
am trying to sort both column, by ascending order by what am missing here https://codesandbox.io/s/customtablereact-forked-fnvlo any suggestion, how to implement sorting here
please refer below snippet
import React from "react";
export const CustTable = ({ columns, data, setData, search, setSearch }) => {
  const [editable, setEditable] = React.useState("");
  const [sortType, setSortType] = React.useState("asc");
  const cellEditable = (label) => {
    data.map((l) => {
      if (l.name === label.name) {
        setEditable(label.name);
      }
    });
  };
  const changeLastNameBasedIndex = (name, e, index) => {
    e.persist();
    setData((prevData) => {
      return [
        ...prevData.slice(0, index),
        { name, lname: e.target.value },
        ...prevData.slice(index + 1)
      ];
    });
  };
  const changeLastName = (name, e, index) => {
    let filterData = [];
    e.persist();
    setData((prevData) => {
      const dummyData = [...prevData];
      filterData = dummyData.filter((label) => {
        return label.name !== name;
      });
      return [...filterData, { name, lname: e.target.value }];
    });
  };
  const items = () => {
    let resultItems = data;
    if (search) {
      resultItems = data.filter((item) =>
        item.name.toLowerCase().includes(search.toLowerCase())
      );
    }
    return resultItems.map((label, index) => {
      return (
        <tr style={{ display: "flex" }} key={index}>
          <span style={{ width: "35%" }}>{label.name} </span>
          {editable === label.name ? (
            <input
              type="text"
              value={label.lname}
              onChange={
                search
                  ? (e) => changeLastName(label.name, e, index)
                  : (e) => changeLastNameBasedIndex(label.name, e, index)
              }
            />
          ) : (
            <span onClick={() => cellEditable(label)}>{label.lname} </span>
          )}
        </tr>
      );
    });
  };
  const searchData = (e) => {
    setSearch(e.target.value);
  };
  return (
    <>
      <div>
        <input
          type="search"
          placeholder="search"
          onChange={(e) => searchData(e)}
        />
      </div>
      <tr>
        <th>First</th>
        <th>Second</th>
      </tr>
      {items()}
    </>
  );
};
 
     
    