device.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import React from 'react';
  2. import ContextData from 'app/components/contextData';
  3. import EventDataSection from 'app/components/events/eventDataSection';
  4. import {t} from 'app/locale';
  5. import {Event} from 'app/types/event';
  6. type Props = {
  7. event: Event;
  8. };
  9. const DeviceInterface = ({event}: Props) => {
  10. const data = event.device || {};
  11. const extras = Object.entries<any>(data.data || {}).map(([key, value]) => {
  12. return (
  13. <tr key={key}>
  14. <td className="key">{key}</td>
  15. <td className="value">
  16. <ContextData data={value} />
  17. </td>
  18. </tr>
  19. );
  20. });
  21. return (
  22. <EventDataSection type="device" title={t('Device')} wrapTitle>
  23. <table className="table key-value">
  24. <tbody>
  25. {data.name && (
  26. <tr>
  27. <td className="key">Name</td>
  28. <td className="value">
  29. <pre>{data.name}</pre>
  30. </td>
  31. </tr>
  32. )}
  33. {data.version && (
  34. <tr>
  35. <td className="key">Version</td>
  36. <td className="value">
  37. <pre>{data.version}</pre>
  38. </td>
  39. </tr>
  40. )}
  41. {data.build && (
  42. <tr>
  43. <td className="key">Build</td>
  44. <td className="value">
  45. <pre>{data.build}</pre>
  46. </td>
  47. </tr>
  48. )}
  49. {extras}
  50. </tbody>
  51. </table>
  52. </EventDataSection>
  53. );
  54. };
  55. export default DeviceInterface;