TimeTravel.ts 1022 B

123456789101112131415161718192021222324252627282930313233
  1. import dayjs from 'dayjs';
  2. import { formatUtcToMilvus } from '../utils/Format';
  3. import { useMemo, useState } from 'react';
  4. import { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';
  5. import { useTranslation } from 'react-i18next';
  6. export const useTimeTravelHook = () => {
  7. const [timeTravel, setTimeTravel] = useState<MaterialUiPickersDate>(null);
  8. const { t: searchTrans } = useTranslation('search');
  9. const timeTravelInfo = useMemo(() => {
  10. const timestamp = dayjs(timeTravel).valueOf();
  11. return {
  12. label: timeTravel
  13. ? ` ${searchTrans('timeTravelPrefix')} ${dayjs(timeTravel).format(
  14. 'YYYY-MM-DD HH:mm:ss'
  15. )}`
  16. : searchTrans('timeTravel'),
  17. timestamp: timeTravel ? formatUtcToMilvus(timestamp) : undefined,
  18. };
  19. }, [searchTrans, timeTravel]);
  20. const handleDateTimeChange = (value: MaterialUiPickersDate) => {
  21. setTimeTravel(value);
  22. };
  23. return {
  24. timeTravel,
  25. setTimeTravel,
  26. handleDateTimeChange,
  27. timeTravelInfo,
  28. };
  29. };