hooks.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import {previewMedia} from '@tarojs/taro';
  2. import dayjs from 'dayjs';
  3. import {useEffect, useState} from 'react';
  4. export function usePreview() {
  5. return function (files) {
  6. const sources = files.map(function (url) {
  7. return {url};
  8. });
  9. return function () {
  10. previewMedia({
  11. sources,
  12. });
  13. };
  14. };
  15. }
  16. export function useOrderState(states, anomaly, {time}) {
  17. const [state, setState] = useState({className: '', msg: ''});
  18. useEffect(
  19. function () {
  20. switch (true) {
  21. case states === '0': {
  22. const diffDay = dayjs(time).diff(
  23. dayjs(dayjs().format('YYYY-MM-DD')),
  24. 'd',
  25. );
  26. if (diffDay < 0) {
  27. setState({className: 'bg-red-400', msg: '送货逾期'});
  28. break;
  29. }
  30. setState({className: 'bg-gray-400', msg: '正在送货'});
  31. break;
  32. }
  33. case states === '1':
  34. setState({
  35. className: anomaly === '1' ? 'bg-red-500' : 'bg-primary',
  36. msg: anomaly === '1' ? '订单异常' : '已送达',
  37. });
  38. break;
  39. }
  40. },
  41. [states, anomaly, time],
  42. );
  43. return state;
  44. }