useTbody.tsx 857 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import React, { useState } from 'react';
  2. const useTbody = (items: Array<any>, defaultState: any, id: string) => {
  3. const [state, setState] = useState(defaultState);
  4. const style = {
  5. paddingLeft: `${12}px`,
  6. width: `${25}%`
  7. };
  8. const style_2 = {
  9. paddingLeft: `${12}px`,
  10. width: `${75}%`
  11. };
  12. const List = () => (
  13. <div style={{ overflowY: 'auto' }}>
  14. <table>
  15. <tbody>
  16. {items.map(item => (
  17. <tr
  18. key={item.name}
  19. onClick={e => setState(item)}
  20. className={id + (state === item ? ' selected' : '')}
  21. >
  22. <td style={style}> {item.name} </td>
  23. <td style={style_2}> {item.value} </td>
  24. </tr>
  25. ))}
  26. </tbody>
  27. </table>
  28. </div>
  29. );
  30. return [state, List, setState];
  31. };
  32. export default useTbody;