@pisell/private-materials 6.5.8 → 6.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,7 +47,7 @@ var productListSetting = {
47
47
  isStock: 0
48
48
  };
49
49
  var AddSerivce = function AddSerivce(props) {
50
- var _context$appHelper, _context$appHelper$ge, _context$appHelper$ut, _context$appHelper$ut2, _context$appHelper$ut3, _state$bookingConfig2, _state$client2;
50
+ var _context$appHelper, _context$appHelper$ge, _context$appHelper$ut, _context$appHelper$ut2, _context$appHelper$ut3, _state$service, _state$service3, _state$bookingConfig2, _state$client2;
51
51
  var onEdit = props.onEdit,
52
52
  state = props.state,
53
53
  dispatch = props.dispatch,
@@ -75,6 +75,28 @@ var AddSerivce = function AddSerivce(props) {
75
75
  var stateRef = useRef(state);
76
76
  stateRef.current = state;
77
77
  var prerenderCompletedRef = useRef(false);
78
+ var latestServiceValueRef = useRef((state === null || state === void 0 || (_state$service = state.service) === null || _state$service === void 0 ? void 0 : _state$service.value) || []);
79
+ var lastOperationTimeRef = useRef(0);
80
+ var isInFastClickMode = function isInFastClickMode() {
81
+ var now = Date.now();
82
+ return now - lastOperationTimeRef.current < 1000;
83
+ };
84
+ var getCurrentServiceValue = function getCurrentServiceValue() {
85
+ if (isInFastClickMode()) {
86
+ var _stateRef$current;
87
+ return latestServiceValueRef.current || ((_stateRef$current = stateRef.current) === null || _stateRef$current === void 0 || (_stateRef$current = _stateRef$current.service) === null || _stateRef$current === void 0 ? void 0 : _stateRef$current.value) || [];
88
+ } else {
89
+ var _state$service2;
90
+ var stateValue = (state === null || state === void 0 || (_state$service2 = state.service) === null || _state$service2 === void 0 ? void 0 : _state$service2.value) || [];
91
+ latestServiceValueRef.current = null;
92
+ return stateValue;
93
+ }
94
+ };
95
+ useEffect(function () {
96
+ if (!isInFastClickMode()) {
97
+ latestServiceValueRef.current = null;
98
+ }
99
+ }, [state === null || state === void 0 || (_state$service3 = state.service) === null || _state$service3 === void 0 ? void 0 : _state$service3.value]);
78
100
  var _useProducts = useProducts(),
79
101
  getProducts = _useProducts.getProducts,
80
102
  products = _useProducts.products,
@@ -259,6 +281,7 @@ var AddSerivce = function AddSerivce(props) {
259
281
 
260
282
  // 执行原始的回调函数
261
283
  originalCallback(finalCacheValues, '', item, true);
284
+ lastOperationTimeRef.current = Date.now();
262
285
  });
263
286
 
264
287
  // 为每个商品单独创建防抖函数
@@ -277,8 +300,8 @@ var AddSerivce = function AddSerivce(props) {
277
300
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'select';
278
301
  console.log('handleSelectProduct');
279
302
  if (!isNormalProductByDurationSchedule(item)) {
280
- var _state$service;
281
- if (!Array.isArray((_state$service = state.service) === null || _state$service === void 0 ? void 0 : _state$service.resourcesOrigin) || !state.service.resourcesOrigin.length) {
303
+ var _state$service4;
304
+ if (!Array.isArray((_state$service4 = state.service) === null || _state$service4 === void 0 ? void 0 : _state$service4.resourcesOrigin) || !state.service.resourcesOrigin.length) {
282
305
  dispatch({
283
306
  type: 'setService',
284
307
  payload: _objectSpread(_objectSpread({}, stateRef.current.service), {}, {
@@ -392,7 +415,9 @@ var AddSerivce = function AddSerivce(props) {
392
415
  if (cacheItem.autoClose) {
393
416
  cacheItem.autoClose = false;
394
417
  cacheItem._serviceKey = genServiceKey(cacheItem);
395
- _addService2 = addService(_toConsumableArray(stateRef.current.service.value), cacheItem, state), _list = _addService2.list, quantity = _addService2.quantity;
418
+ _addService2 = addService(_toConsumableArray(getCurrentServiceValue()), cacheItem, state), _list = _addService2.list, quantity = _addService2.quantity; // 更新ref以确保后续快速操作时使用最新值
419
+ latestServiceValueRef.current = _list;
420
+ lastOperationTimeRef.current = Date.now();
396
421
  if (!notShowToast) {
397
422
  handleAddToast(cacheItem.title, quantity || 1);
398
423
  }
@@ -62,7 +62,7 @@ var productListSetting = {
62
62
  isStock: 0
63
63
  };
64
64
  var AddSerivce = (props) => {
65
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
65
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
66
66
  const { onEdit, state, dispatch, renderMode = "current", onPrerenderComplete } = props;
67
67
  const context = (0, import_useEngineContext.default)();
68
68
  const notAvailableRef = (0, import_react.useRef)(null);
@@ -84,6 +84,27 @@ var AddSerivce = (props) => {
84
84
  const stateRef = (0, import_react.useRef)(state);
85
85
  stateRef.current = state;
86
86
  const prerenderCompletedRef = (0, import_react.useRef)(false);
87
+ const latestServiceValueRef = (0, import_react.useRef)(((_j = state == null ? void 0 : state.service) == null ? void 0 : _j.value) || []);
88
+ const lastOperationTimeRef = (0, import_react.useRef)(0);
89
+ const isInFastClickMode = () => {
90
+ const now = Date.now();
91
+ return now - lastOperationTimeRef.current < 1e3;
92
+ };
93
+ const getCurrentServiceValue = () => {
94
+ var _a2, _b2, _c2;
95
+ if (isInFastClickMode()) {
96
+ return latestServiceValueRef.current || ((_b2 = (_a2 = stateRef.current) == null ? void 0 : _a2.service) == null ? void 0 : _b2.value) || [];
97
+ } else {
98
+ const stateValue = ((_c2 = state == null ? void 0 : state.service) == null ? void 0 : _c2.value) || [];
99
+ latestServiceValueRef.current = null;
100
+ return stateValue;
101
+ }
102
+ };
103
+ (0, import_react.useEffect)(() => {
104
+ if (!isInFastClickMode()) {
105
+ latestServiceValueRef.current = null;
106
+ }
107
+ }, [(_k = state == null ? void 0 : state.service) == null ? void 0 : _k.value]);
87
108
  const { getProducts, products, loading } = (0, import_pisellos.useProducts)();
88
109
  (0, import_react.useEffect)(() => {
89
110
  return () => {
@@ -118,11 +139,11 @@ var AddSerivce = (props) => {
118
139
  const menuList = (0, import_react.useMemo)(() => {
119
140
  var _a2, _b2, _c2;
120
141
  return ((_c2 = (_b2 = (_a2 = state == null ? void 0 : state.bookingConfig) == null ? void 0 : _a2.config) == null ? void 0 : _b2.menu_list_tab) == null ? void 0 : _c2.menu_list) || [];
121
- }, [(_j = state == null ? void 0 : state.bookingConfig) == null ? void 0 : _j.config]);
142
+ }, [(_l = state == null ? void 0 : state.bookingConfig) == null ? void 0 : _l.config]);
122
143
  const customerId = (0, import_react.useMemo)(() => {
123
144
  var _a2, _b2;
124
145
  return ((_b2 = (_a2 = state.client) == null ? void 0 : _a2.value) == null ? void 0 : _b2.id) || void 0;
125
- }, [(_l = (_k = state.client) == null ? void 0 : _k.value) == null ? void 0 : _l.id]);
146
+ }, [(_n = (_m = state.client) == null ? void 0 : _m.value) == null ? void 0 : _n.id]);
126
147
  const scanAddService = (0, import_ahooks.useMemoizedFn)((list, code) => {
127
148
  let newService = [...state.service.value];
128
149
  list.forEach((item) => {
@@ -171,6 +192,7 @@ var AddSerivce = (props) => {
171
192
  delete clickCountRef.current[productId];
172
193
  delete debounceTimersRef.current[productId];
173
194
  originalCallback(finalCacheValues, "", item, true);
195
+ lastOperationTimeRef.current = Date.now();
174
196
  }
175
197
  );
176
198
  const debouncedExecuteCacheValues = (0, import_ahooks.useMemoizedFn)(
@@ -279,10 +301,12 @@ var AddSerivce = (props) => {
279
301
  cacheItem.autoClose = false;
280
302
  cacheItem._serviceKey = (0, import_utils6.genServiceKey)(cacheItem);
281
303
  let { list: _list, quantity } = (0, import_utils6.addService)(
282
- [...stateRef.current.service.value],
304
+ [...getCurrentServiceValue()],
283
305
  cacheItem,
284
306
  state
285
307
  );
308
+ latestServiceValueRef.current = _list;
309
+ lastOperationTimeRef.current = Date.now();
286
310
  if (!notShowToast) {
287
311
  handleAddToast(cacheItem.title, quantity || 1);
288
312
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/private-materials",
3
- "version": "6.5.8",
3
+ "version": "6.5.9",
4
4
  "scripts": {
5
5
  "dev": "father dev",
6
6
  "build": "father build",
@@ -1,3 +0,0 @@
1
- import './index.less';
2
- declare const VoucherCard: (props: any) => JSX.Element | null;
3
- export default VoucherCard;
@@ -1,7 +0,0 @@
1
- import './index.less';
2
- export declare const _formatBookingDetail: (data: any, modalState: any) => any;
3
- interface TicketBookingProps {
4
- onPrerenderComplete?: () => void;
5
- }
6
- declare const TicketBooking: (props: TicketBookingProps) => JSX.Element;
7
- export default TicketBooking;
@@ -1,3 +0,0 @@
1
- import './index.less';
2
- declare const VoucherCard: (props: any) => JSX.Element | null;
3
- export default VoucherCard;
@@ -1,7 +0,0 @@
1
- import './index.less';
2
- export declare const _formatBookingDetail: (data: any, modalState: any) => any;
3
- interface TicketBookingProps {
4
- onPrerenderComplete?: () => void;
5
- }
6
- declare const TicketBooking: (props: TicketBookingProps) => JSX.Element;
7
- export default TicketBooking;