useTimeseriesUnixToIso.ts 670 B

12345678910111213141516171819202122232425
  1. import { useMemo } from 'react'
  2. import {
  3. isUnixMicro,
  4. unixMicroToIsoTimestamp,
  5. } from '@/components/interfaces/Settings/Logs/Logs.utils'
  6. /**
  7. * Convenience hook for converting timeseries timestamp from unix microsecond to iso
  8. *
  9. * memoized
  10. */
  11. const useTimeseriesUnixToIso = (data: any[], timestampKey: string) => {
  12. return useMemo(() => {
  13. // check if need to convert or not
  14. if (data.length === 0) return data
  15. if (!isUnixMicro(data[0][timestampKey])) return data
  16. return data?.map((d) => {
  17. d[timestampKey] = unixMicroToIsoTimestamp(d[timestampKey])
  18. return d
  19. })
  20. }, [JSON.stringify(data)])
  21. }
  22. export default useTimeseriesUnixToIso