react-vant-nova 1.1.6-test → 1.1.8-test
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.
Potentially problematic release.
This version of react-vant-nova might be problematic. Click here for more details.
- package/bundle/react-vant-nova.es.js +35 -23
- package/bundle/react-vant-nova.js +33 -21
- package/bundle/react-vant-nova.min.js +2 -2
- package/es/toast/method.js +32 -20
- package/lib/toast/method.js +32 -20
- package/package.json +1 -1
package/es/toast/method.js
CHANGED
|
@@ -7,6 +7,10 @@ import { lockClick } from './lock-click';
|
|
|
7
7
|
import BaseToast from './Toast';
|
|
8
8
|
import { render, unmount } from '../utils/dom/render';
|
|
9
9
|
import canUseDom from '../utils/dom/canUseDom';
|
|
10
|
+
import { reactVersion } from '../utils/dom/version';
|
|
11
|
+
console.log('method.tsx loaded');
|
|
12
|
+
console.log('React version:', reactVersion);
|
|
13
|
+
console.log('canUseDom:', canUseDom());
|
|
10
14
|
const defaultOptions = {
|
|
11
15
|
message: '',
|
|
12
16
|
className: '',
|
|
@@ -35,8 +39,13 @@ function nextTickClear() {
|
|
|
35
39
|
}
|
|
36
40
|
// 可返回用于销毁此弹窗的方法
|
|
37
41
|
const ToastObj = p => {
|
|
38
|
-
|
|
42
|
+
console.log('ToastObj called');
|
|
43
|
+
if (!canUseDom()) {
|
|
44
|
+
console.log('canUseDom returned false');
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
39
47
|
const props = parseOptions(p);
|
|
48
|
+
console.log('props:', props);
|
|
40
49
|
const update = {
|
|
41
50
|
config: () => {},
|
|
42
51
|
clear: () => null
|
|
@@ -48,16 +57,20 @@ const ToastObj = p => {
|
|
|
48
57
|
} = props;
|
|
49
58
|
const container = document.createElement('div');
|
|
50
59
|
const bodyContainer = resolveContainer(teleport);
|
|
60
|
+
console.log('bodyContainer:', bodyContainer);
|
|
51
61
|
bodyContainer.appendChild(container);
|
|
62
|
+
console.log('container added to bodyContainer');
|
|
52
63
|
const TempToast = () => {
|
|
53
|
-
console.log('TempToast');
|
|
64
|
+
console.log('TempToast component rendered');
|
|
54
65
|
const options = Object.assign({
|
|
55
66
|
duration: 2000
|
|
56
67
|
}, props);
|
|
57
|
-
const [visible, setVisible] = useState(
|
|
68
|
+
const [visible, setVisible] = useState(true); // 初始化为true,确保组件渲染时可见
|
|
58
69
|
const [state, setState] = useState(Object.assign({}, options));
|
|
70
|
+
console.log('TempToast useState initialized, visible:', visible);
|
|
59
71
|
// clearDOM after animation
|
|
60
72
|
const internalOnClosed = useCallback(() => {
|
|
73
|
+
console.log('internalOnClosed called');
|
|
61
74
|
if (state.forbidClick) {
|
|
62
75
|
lockClick(false);
|
|
63
76
|
}
|
|
@@ -72,17 +85,18 @@ const ToastObj = p => {
|
|
|
72
85
|
}, [container]);
|
|
73
86
|
// close with animation
|
|
74
87
|
const destroy = useCallback(() => {
|
|
75
|
-
console.log('destroy');
|
|
88
|
+
console.log('destroy called');
|
|
76
89
|
setVisible(false);
|
|
77
90
|
if (onClose) onClose();
|
|
78
91
|
}, []);
|
|
79
92
|
update.clear = internalOnClosed;
|
|
80
93
|
update.config = useCallback(nextState => {
|
|
94
|
+
console.log('update.config called:', nextState);
|
|
81
95
|
setState(prev => typeof nextState === 'function' ? Object.assign(Object.assign({}, prev), nextState(prev)) : Object.assign(Object.assign({}, prev), nextState));
|
|
82
96
|
}, [setState]);
|
|
83
97
|
useIsomorphicLayoutEffect(() => {
|
|
84
|
-
console.log('useIsomorphicLayoutEffect');
|
|
85
|
-
setVisible(true)
|
|
98
|
+
console.log('useIsomorphicLayoutEffect called');
|
|
99
|
+
// 移除setVisible(true),因为初始状态已经是true
|
|
86
100
|
if (!allowMultiple) syncClear();
|
|
87
101
|
toastArray.push(internalOnClosed);
|
|
88
102
|
if (state.duration !== 0 && 'duration' in state) {
|
|
@@ -99,25 +113,20 @@ const ToastObj = p => {
|
|
|
99
113
|
// @ts-ignore
|
|
100
114
|
_jsx(BaseToast, Object.assign({}, state, {
|
|
101
115
|
visible: visible,
|
|
102
|
-
teleport
|
|
116
|
+
// 移除teleport属性,避免嵌套的createPortal调用
|
|
103
117
|
onClose: destroy,
|
|
104
118
|
onClosed: internalOnClosed
|
|
105
119
|
}))
|
|
106
120
|
);
|
|
107
121
|
};
|
|
122
|
+
console.log('Before render(<TempToast />)');
|
|
108
123
|
// @ts-ignore
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
render(_jsx(TempToast, {}), container);
|
|
113
|
-
console.log('render(<TempToast />, container)');
|
|
114
|
-
//@ts-ignore
|
|
115
|
-
console.log(_jsx(TempToast, {}), 'TempToast2');
|
|
116
|
-
console.log(container, 'container');
|
|
117
|
-
return update;
|
|
118
|
-
}, 300);
|
|
124
|
+
render(_jsx(TempToast, {}), container);
|
|
125
|
+
console.log('After render(<TempToast />)');
|
|
126
|
+
return update;
|
|
119
127
|
};
|
|
120
128
|
function parseOptions(message) {
|
|
129
|
+
console.log('parseOptions called:', message);
|
|
121
130
|
if (isObject(message)) {
|
|
122
131
|
return message;
|
|
123
132
|
}
|
|
@@ -125,9 +134,12 @@ function parseOptions(message) {
|
|
|
125
134
|
message
|
|
126
135
|
};
|
|
127
136
|
}
|
|
128
|
-
const createMethod = type => options =>
|
|
129
|
-
type
|
|
130
|
-
}))
|
|
137
|
+
const createMethod = type => options => {
|
|
138
|
+
console.log('createMethod called:', type, options);
|
|
139
|
+
return ToastObj(Object.assign(Object.assign(Object.assign(Object.assign({}, currentOptions), defaultOptionsMap.get(type)), parseOptions(options)), {
|
|
140
|
+
type
|
|
141
|
+
}));
|
|
142
|
+
};
|
|
131
143
|
['info', 'loading', 'success', 'fail'].forEach(method => {
|
|
132
144
|
ToastObj[method] = createMethod(method);
|
|
133
145
|
});
|
package/lib/toast/method.js
CHANGED
|
@@ -25,8 +25,12 @@ var _lockClick = require("./lock-click");
|
|
|
25
25
|
var _Toast = _interopRequireDefault(require("./Toast"));
|
|
26
26
|
var _render = require("../utils/dom/render");
|
|
27
27
|
var _canUseDom = _interopRequireDefault(require("../utils/dom/canUseDom"));
|
|
28
|
+
var _version = require("../utils/dom/version");
|
|
28
29
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
30
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
31
|
+
console.log('method.tsx loaded');
|
|
32
|
+
console.log('React version:', _version.reactVersion);
|
|
33
|
+
console.log('canUseDom:', (0, _canUseDom.default)());
|
|
30
34
|
const defaultOptions = {
|
|
31
35
|
message: '',
|
|
32
36
|
className: '',
|
|
@@ -55,8 +59,13 @@ function nextTickClear() {
|
|
|
55
59
|
}
|
|
56
60
|
// 可返回用于销毁此弹窗的方法
|
|
57
61
|
const ToastObj = p => {
|
|
58
|
-
|
|
62
|
+
console.log('ToastObj called');
|
|
63
|
+
if (!(0, _canUseDom.default)()) {
|
|
64
|
+
console.log('canUseDom returned false');
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
59
67
|
const props = parseOptions(p);
|
|
68
|
+
console.log('props:', props);
|
|
60
69
|
const update = {
|
|
61
70
|
config: () => {},
|
|
62
71
|
clear: () => null
|
|
@@ -68,16 +77,20 @@ const ToastObj = p => {
|
|
|
68
77
|
} = props;
|
|
69
78
|
const container = document.createElement('div');
|
|
70
79
|
const bodyContainer = (0, _getContainer.resolveContainer)(teleport);
|
|
80
|
+
console.log('bodyContainer:', bodyContainer);
|
|
71
81
|
bodyContainer.appendChild(container);
|
|
82
|
+
console.log('container added to bodyContainer');
|
|
72
83
|
const TempToast = () => {
|
|
73
|
-
console.log('TempToast');
|
|
84
|
+
console.log('TempToast component rendered');
|
|
74
85
|
const options = Object.assign({
|
|
75
86
|
duration: 2000
|
|
76
87
|
}, props);
|
|
77
|
-
const [visible, setVisible] = (0, _react().useState)(
|
|
88
|
+
const [visible, setVisible] = (0, _react().useState)(true); // 初始化为true,确保组件渲染时可见
|
|
78
89
|
const [state, setState] = (0, _react().useState)(Object.assign({}, options));
|
|
90
|
+
console.log('TempToast useState initialized, visible:', visible);
|
|
79
91
|
// clearDOM after animation
|
|
80
92
|
const internalOnClosed = (0, _react().useCallback)(() => {
|
|
93
|
+
console.log('internalOnClosed called');
|
|
81
94
|
if (state.forbidClick) {
|
|
82
95
|
(0, _lockClick.lockClick)(false);
|
|
83
96
|
}
|
|
@@ -92,17 +105,18 @@ const ToastObj = p => {
|
|
|
92
105
|
}, [container]);
|
|
93
106
|
// close with animation
|
|
94
107
|
const destroy = (0, _react().useCallback)(() => {
|
|
95
|
-
console.log('destroy');
|
|
108
|
+
console.log('destroy called');
|
|
96
109
|
setVisible(false);
|
|
97
110
|
if (onClose) onClose();
|
|
98
111
|
}, []);
|
|
99
112
|
update.clear = internalOnClosed;
|
|
100
113
|
update.config = (0, _react().useCallback)(nextState => {
|
|
114
|
+
console.log('update.config called:', nextState);
|
|
101
115
|
setState(prev => typeof nextState === 'function' ? Object.assign(Object.assign({}, prev), nextState(prev)) : Object.assign(Object.assign({}, prev), nextState));
|
|
102
116
|
}, [setState]);
|
|
103
117
|
(0, _hooks.useIsomorphicLayoutEffect)(() => {
|
|
104
|
-
console.log('useIsomorphicLayoutEffect');
|
|
105
|
-
setVisible(true)
|
|
118
|
+
console.log('useIsomorphicLayoutEffect called');
|
|
119
|
+
// 移除setVisible(true),因为初始状态已经是true
|
|
106
120
|
if (!allowMultiple) syncClear();
|
|
107
121
|
toastArray.push(internalOnClosed);
|
|
108
122
|
if (state.duration !== 0 && 'duration' in state) {
|
|
@@ -119,25 +133,20 @@ const ToastObj = p => {
|
|
|
119
133
|
// @ts-ignore
|
|
120
134
|
(0, _jsxRuntime().jsx)(_Toast.default, Object.assign({}, state, {
|
|
121
135
|
visible: visible,
|
|
122
|
-
teleport
|
|
136
|
+
// 移除teleport属性,避免嵌套的createPortal调用
|
|
123
137
|
onClose: destroy,
|
|
124
138
|
onClosed: internalOnClosed
|
|
125
139
|
}))
|
|
126
140
|
);
|
|
127
141
|
};
|
|
142
|
+
console.log('Before render(<TempToast />)');
|
|
128
143
|
// @ts-ignore
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
(0, _render.render)((0, _jsxRuntime().jsx)(TempToast, {}), container);
|
|
133
|
-
console.log('render(<TempToast />, container)');
|
|
134
|
-
//@ts-ignore
|
|
135
|
-
console.log((0, _jsxRuntime().jsx)(TempToast, {}), 'TempToast2');
|
|
136
|
-
console.log(container, 'container');
|
|
137
|
-
return update;
|
|
138
|
-
}, 300);
|
|
144
|
+
(0, _render.render)((0, _jsxRuntime().jsx)(TempToast, {}), container);
|
|
145
|
+
console.log('After render(<TempToast />)');
|
|
146
|
+
return update;
|
|
139
147
|
};
|
|
140
148
|
function parseOptions(message) {
|
|
149
|
+
console.log('parseOptions called:', message);
|
|
141
150
|
if ((0, _utils.isObject)(message)) {
|
|
142
151
|
return message;
|
|
143
152
|
}
|
|
@@ -145,9 +154,12 @@ function parseOptions(message) {
|
|
|
145
154
|
message
|
|
146
155
|
};
|
|
147
156
|
}
|
|
148
|
-
const createMethod = type => options =>
|
|
149
|
-
type
|
|
150
|
-
}))
|
|
157
|
+
const createMethod = type => options => {
|
|
158
|
+
console.log('createMethod called:', type, options);
|
|
159
|
+
return ToastObj(Object.assign(Object.assign(Object.assign(Object.assign({}, currentOptions), defaultOptionsMap.get(type)), parseOptions(options)), {
|
|
160
|
+
type
|
|
161
|
+
}));
|
|
162
|
+
};
|
|
151
163
|
['info', 'loading', 'success', 'fail'].forEach(method => {
|
|
152
164
|
ToastObj[method] = createMethod(method);
|
|
153
165
|
});
|