System.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import gql from 'graphql-tag'
  2. import { Query } from 'react-apollo'
  3. const QUERY_SYSTEM = gql`
  4. query QUERY_SYSTEM {
  5. system {
  6. apiVersion
  7. hostname
  8. type
  9. platform
  10. arch
  11. release
  12. uptime
  13. loadavg
  14. totalmem
  15. freemem
  16. cpus {
  17. model
  18. speed
  19. times {
  20. user
  21. nice
  22. sys
  23. idle
  24. irq
  25. }
  26. }
  27. networkInterfaces {
  28. name
  29. addresses {
  30. address
  31. netmask
  32. family
  33. mac
  34. internal
  35. cidr
  36. scopied
  37. }
  38. }
  39. }
  40. }
  41. `
  42. const System = props => (
  43. <Query query={QUERY_SYSTEM}>
  44. {({ data, loading, error }) => {
  45. if (loading) return <p>Loading system data...</p>
  46. if (error) {
  47. console.error(error)
  48. return <p>Error: {error.message}</p>
  49. }
  50. if (!data) return <p>No system data found</p>
  51. const { system } = data
  52. return (
  53. <div>
  54. <h1>System</h1>
  55. <p>API Version:</p><p>{system.apiVersion}</p>
  56. <p>Hostname:</p><p>{system.hostname}</p>
  57. <p>Type:</p><p>{system.type}</p>
  58. <p>Platform:</p><p>{system.platform}</p>
  59. <p>Architecture:</p><p>{system.arch}</p>
  60. <p>Release:</p><p>{system.release}</p>
  61. <p>Uptime:</p><p>{system.uptime}</p>
  62. <p>Total memory:</p><p>{system.totalmem}</p>
  63. <p>Free memory:</p><p>{system.freemem}</p>
  64. </div>
  65. )
  66. }}
  67. </Query>
  68. )
  69. export default System