You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.5 KiB

  1. import icon_check_s from '../assets/icon_check_s_s.svg';
  2. import icon_check_u from '../assets/icon_check_s_u.svg';
  3. import icon_arr from '../assets/icon_arr_p_r.svg';
  4. import { Measurement } from '../services/apiTypes';
  5. export default function MeasurementItem({
  6. item,
  7. editMode,
  8. selected,
  9. onDetail,
  10. onSelected,
  11. }: {
  12. item: Measurement;
  13. editMode: boolean;
  14. selected: boolean;
  15. onDetail?: () => void;
  16. onSelected?: () => void;
  17. }) {
  18. return (
  19. <div className="flex mx-2 gap-3" onClick={editMode ? onSelected : undefined}>
  20. {editMode && (
  21. <div className="flex justify-center items-center">
  22. <img className="w-[14px]" src={selected ? icon_check_s : icon_check_u} alt="icon" />
  23. </div>
  24. )}
  25. <main className="flex-1">
  26. <header className="flex items-center gap-2">
  27. <h1 className="text-[15px] font-medium ">{item.name}</h1>
  28. {/* <span className="text-sm text-[#b7b7b7]">{item.createAt.replace('T',' ').split(' ')[1]}</span> */}
  29. </header>
  30. <main className="flex mt-2">
  31. <p className="flex-1 text-sm ">{`${item.line}`}</p>
  32. <p className="flex-1 text-sm ">{`${item.section}`}</p>
  33. <p className="flex-1 text-sm ">{`${item.direction}方向`}</p>
  34. </main>
  35. </main>
  36. {!editMode && (
  37. <aside className="flex items-center" onClick={onDetail}>
  38. <span className="mr-2 text-sm text-primary font-medium"></span>
  39. <img src={icon_arr} alt="arr" className="h-[10px]" />
  40. </aside>
  41. )}
  42. </div>
  43. );
  44. }