PagerUtil.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { getFocusedRouteNameFromRoute } from "@react-navigation/core";
  2. import { PagerList } from "./ChargeAdapter";
  3. import app from '../../../app.json';
  4. var chargeInfoState = global.chargeInfoState
  5. var refreshListener = [];
  6. const DEBUG = app.debug && !app.product;
  7. export default PagerUtil = {
  8. ENABLE_NEW_UI: true, //是否启用新的充电页面
  9. getStationInfo: () => {
  10. return chargeInfoState.stationInfo ?? {}
  11. },
  12. setStationInfo: (info) => {
  13. chargeInfoState.stationInfo = info;
  14. },
  15. addOnRefresh: (page) => {
  16. refreshListener.push(page)
  17. },
  18. setRefreshing: (route) => {
  19. if (DEBUG) {
  20. console.log("[PagerUtil]刷新指定子页面:", route);
  21. }
  22. refreshListener.map((item, index) => {
  23. if (!route || route == item.props?.route?.name) {
  24. if (item.onRefresh)
  25. item.onRefresh();
  26. }
  27. })
  28. },
  29. setBackRefreshing: () => {
  30. refreshListener.map((item, index) => {
  31. if (item.onBackRefresh)
  32. item.onBackRefresh();
  33. })
  34. },
  35. onCharge: (props) => {
  36. const isFocused = props?.navigation?.isFocused();
  37. if (!isFocused) {
  38. if (DEBUG) {
  39. console.log("[PagerUtil]", "onCharge");
  40. }
  41. startPage(PagerList.tabCharge);
  42. } else if (DEBUG) {
  43. console.log("[PagerUtil]", "onCharge-skip");
  44. }
  45. },
  46. onReserve: (props) => {
  47. const isFocused = props?.navigation?.isFocused();
  48. if (!isFocused) {
  49. if (DEBUG) {
  50. console.log("[PagerUtil]", "onReserve");
  51. }
  52. startPage(PagerList.tabReserve);
  53. } else if (DEBUG) {
  54. console.log("[PagerUtil]", "onReserve-skip");
  55. }
  56. },
  57. onInnerScanQR() {
  58. global.chargeV3InnerScanQR = true;
  59. if (this.ENABLE_NEW_UI) {
  60. if (DEBUG) {
  61. console.log("[PagerUtil]", "激活自动进入新充电页面的开关");
  62. }
  63. refreshListener.map((item, index) => {
  64. if (item.activeNewUIPage)
  65. item.activeNewUIPage();
  66. });
  67. }
  68. },
  69. isInnerScanQR: () => {
  70. return global.chargeV3InnerScanQR;
  71. },
  72. ofInnerScanQR: () => {
  73. global.chargeV3InnerScanQR = false;
  74. },
  75. onEnterStation: (props) => {
  76. //const isFocused = props?.navigation?.isFocused();
  77. startPage(PagerList.tabCharge);
  78. },
  79. onDestory: () => {
  80. chargeInfoState = {};
  81. refreshListener = [];
  82. },
  83. getCurrentRoute: (props) => (
  84. getFocusedRouteNameFromRoute(props.route)
  85. )
  86. }