@xhsreds/reds-rn-next 0.10.1-beta202512022044 → 0.10.1-beta202512041155
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.
- package/coverage/.tmp/coverage-0.json +1 -1
- package/coverage/.tmp/coverage-1.json +1 -1
- package/coverage/.tmp/coverage-10.json +1 -1
- package/coverage/.tmp/coverage-11.json +1 -1
- package/coverage/.tmp/coverage-12.json +1 -1
- package/coverage/.tmp/coverage-13.json +1 -1
- package/coverage/.tmp/coverage-14.json +1 -1
- package/coverage/.tmp/coverage-15.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-2.json +1 -1
- package/coverage/.tmp/coverage-23.json +1 -1
- package/coverage/.tmp/coverage-24.json +1 -1
- package/coverage/.tmp/coverage-25.json +1 -1
- package/coverage/.tmp/coverage-26.json +1 -1
- package/coverage/.tmp/coverage-27.json +1 -1
- package/coverage/.tmp/coverage-28.json +1 -1
- package/coverage/.tmp/coverage-3.json +1 -1
- package/coverage/.tmp/coverage-30.json +1 -1
- package/coverage/.tmp/coverage-31.json +1 -1
- package/coverage/.tmp/coverage-33.json +1 -1
- package/coverage/.tmp/coverage-34.json +1 -1
- package/coverage/.tmp/coverage-35.json +1 -1
- package/coverage/.tmp/coverage-36.json +1 -1
- package/coverage/.tmp/coverage-37.json +1 -1
- package/coverage/.tmp/coverage-38.json +1 -1
- package/coverage/.tmp/coverage-39.json +1 -1
- package/coverage/.tmp/coverage-4.json +1 -1
- package/coverage/.tmp/coverage-40.json +1 -1
- package/coverage/.tmp/coverage-42.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-6.json +1 -1
- package/coverage/.tmp/coverage-7.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/components/Alert/hooks/alert.js +1 -1
- package/lib/cjs/components/Image/Image.js +13 -13
- package/lib/cjs/components/Image/Image.js.map +1 -1
- package/lib/cjs/components/NoticeBar/NoticeBar.js +2 -1
- package/lib/cjs/components/NoticeBar/NoticeBar.js.map +1 -1
- package/lib/cjs/components/Portal/core/PortalHost.js +2 -3
- package/lib/cjs/components/Portal/core/PortalHost.js.map +1 -1
- package/lib/cjs/components/Portal/core/PortalProvider.js +0 -1
- package/lib/cjs/components/Portal/core/PortalProvider.js.map +1 -1
- package/lib/cjs/components/Portal/index.js +0 -1
- package/lib/cjs/components/Portal/index.js.map +1 -1
- package/lib/esm/components/Alert/hooks/alert.js +1 -1
- package/lib/esm/components/Image/Image.js +13 -13
- package/lib/esm/components/Image/Image.js.map +1 -1
- package/lib/esm/components/NoticeBar/NoticeBar.js +2 -1
- package/lib/esm/components/NoticeBar/NoticeBar.js.map +1 -1
- package/lib/esm/components/Portal/core/PortalHost.js +2 -3
- package/lib/esm/components/Portal/core/PortalHost.js.map +1 -1
- package/lib/esm/components/Portal/core/PortalProvider.js +0 -1
- package/lib/esm/components/Portal/core/PortalProvider.js.map +1 -1
- package/lib/esm/components/Portal/index.js +0 -1
- package/lib/esm/components/Portal/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Image/Image.tsx +14 -9
- package/src/components/Image/demo/index.tsx +4 -5
- package/src/components/NoticeBar/NoticeBar.tsx +3 -1
- package/src/components/Portal/core/PortalHost.tsx +3 -1
- package/src/i18n/@types/resources.d.ts +27 -27
- package/src/i18n/index.json +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalHost.js","sources":["../../../../../src/components/Portal/core/PortalHost.tsx"],"sourcesContent":["import React, { memo, useEffect } from \"react\";\nimport { View } from \"react-native\";\nimport { usePortalState } from \"./hooks/usePortalState\";\nimport { usePortal } from \"./hooks/usePortal\";\nimport { PortalHostProps } from \"../interface\";\n\nconst PortalHostComponent = ({ name }: PortalHostProps) => {\n const state = usePortalState(name);\n const { registerHost, deregisterHost } = usePortal(name);\n useEffect(() => {\n registerHost();\n return () => {\n deregisterHost();\n };\n }, []);\n\n return (\n <>\n {state.map((item, index) => {\n return
|
|
1
|
+
{"version":3,"file":"PortalHost.js","sources":["../../../../../src/components/Portal/core/PortalHost.tsx"],"sourcesContent":["import React, { memo, useEffect } from \"react\";\nimport { View } from \"react-native\";\nimport { usePortalState } from \"./hooks/usePortalState\";\nimport { usePortal } from \"./hooks/usePortal\";\nimport { PortalHostProps } from \"../interface\";\n\nconst PortalHostComponent = ({ name }: PortalHostProps) => {\n const state = usePortalState(name);\n const { registerHost, deregisterHost } = usePortal(name);\n useEffect(() => {\n registerHost();\n return () => {\n deregisterHost();\n };\n }, []);\n\n return (\n <>\n {state.map((item, index) => {\n return React.cloneElement(item.node as any, {\n key: index,\n });\n })}\n </>\n );\n};\n\nexport const PortalHost = memo(PortalHostComponent);\nPortalHost.displayName = \"PortalHost\";\n"],"names":["PortalHostComponent","_ref","name","state","usePortalState","_usePortal","usePortal","registerHost","deregisterHost","useEffect","React","createElement","Fragment","map","item","index","cloneElement","node","key","PortalHost","memo","displayName"],"mappings":";;;;;;;;AAMA,IAAMA,mBAAsB,GAAA,SAAtBA,mBAAsBA,CAAAC,IAAA,EAA+B;AAAA,EAAA,IAA5BC,IAAA,GAAAD,IAAA,CAAAC,IAAA,CAAA;AACvB,EAAA,IAAAC,KAAA,GAAQC,2DAAeF,IAAI,CAAA,CAAA;AACjC,EAAA,IAAAG,UAAA,GAAyCC,iDAAUJ,IAAI,CAAA;IAA/CK,YAAA,GAAAF,UAAA,CAAAE,YAAA;IAAcC,cAAe,GAAAH,UAAA,CAAfG,cAAe,CAAA;AACrCC,EAAAA,eAAA,CAAU,YAAM;AACDF,IAAAA,YAAA,EAAA,CAAA;AACb,IAAA,OAAO,YAAM;AACIC,MAAAA,cAAA,EAAA,CAAA;KACjB,CAAA;GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,sBAEKE,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EAAAT,KAAA,CAAMU,GAAI,CAAA,UAACC,MAAMC,KAAU,EAAA;AACnB,IAAA,oBAAAL,KAAA,CAAMM,YAAa,CAAAF,IAAA,CAAKG,IAAa,EAAA;AAC1CC,MAAAA,GAAK,EAAAH,KAAAA;AACP,KAAC,CAAA,CAAA;AACH,GAAC,CACH,CAAA,CAAA;AAEJ,CAAA,CAAA;IAEaI,UAAA,gBAAaC,WAAKpB,mBAAmB,EAAA;AAClDmB,UAAA,CAAWE,WAAc,GAAA,YAAA;;;;"}
|
|
@@ -5,7 +5,6 @@ var React = require('react');
|
|
|
5
5
|
var components_Portal_core_PortalHost = require('./PortalHost.js');
|
|
6
6
|
var components_Portal_core_PortalContext = require('./PortalContext.js');
|
|
7
7
|
var components_Portal_interface_index = require('../../../_chunks/D1Q6Re0a.js');
|
|
8
|
-
require('react-native');
|
|
9
8
|
require('./hooks/usePortalState.js');
|
|
10
9
|
require('./hooks/usePortal.js');
|
|
11
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalProvider.js","sources":["../../../../../src/components/Portal/core/PortalProvider.tsx"],"sourcesContent":["import React, { memo, useEffect, useReducer } from \"react\";\nimport { PortalHost } from \"./PortalHost\";\nimport { PortalDispatchContext, PortalStateContext } from \"./PortalContext\";\nimport { ACTIONS, ActionTypes, AddUpdatePortalAction, PortalType, RemovePortalAction } from \"../interface\";\nimport { PortalProviderProps } from \"../interface\";\n\nexport let INITIAL_STATE = {};\nexport const stateDispatch: any = {};\nconst registerHost = (state: Record<string, Array<PortalType>>, hostName: string) => {\n if (!(hostName in state)) {\n state[hostName] = [];\n }\n return state;\n};\n\nconst deregisterHost = (state: Record<string, Array<PortalType>>, hostName: string) => {\n delete state[hostName];\n return state;\n};\n\nconst addUpdatePortal = (state: Record<string, Array<PortalType>>, hostName: string, portalName: string, node: any) => {\n if (!(hostName in state)) {\n state = registerHost(state, hostName);\n }\n\n const index = state[hostName].findIndex((item) => item.name === portalName);\n if (index !== -1) {\n state[hostName][index].node = node;\n } else {\n state[hostName].push({\n name: portalName,\n node,\n });\n }\n return state;\n};\n\nconst removePortal = (state: Record<string, Array<PortalType>>, hostName: string, portalName: string) => {\n if (!(hostName in state)) {\n return state;\n }\n\n const index = state[hostName].findIndex((item) => item.name === portalName);\n if (index !== -1) state[hostName].splice(index, 1);\n return state;\n};\n\nconst reducer = (state: Record<string, Array<PortalType>>, action: ActionTypes) => {\n const { type } = action;\n let clonedState = { ...state };\n switch (type) {\n case ACTIONS.REGISTER_HOST:\n return registerHost(clonedState, action.hostName);\n case ACTIONS.DEREGISTER_HOST:\n return deregisterHost(clonedState, action.hostName);\n case ACTIONS.ADD_UPDATE_PORTAL:\n return addUpdatePortal(\n clonedState,\n action.hostName,\n (action as AddUpdatePortalAction).portalName,\n (action as AddUpdatePortalAction).node,\n );\n case ACTIONS.REMOVE_PORTAL:\n return removePortal(clonedState, action.hostName, (action as RemovePortalAction).portalName);\n default:\n return state;\n }\n};\n\nconst PortalProviderComponent = ({\n rootHostName = \"root\",\n shouldAddRootHost = true,\n children,\n}: PortalProviderProps) => {\n const [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n useEffect(() => {\n stateDispatch[rootHostName] = {\n dispatch: dispatch,\n };\n }, []);\n return (\n <PortalDispatchContext.Provider value={dispatch}>\n <PortalStateContext.Provider value={state}>\n {children}\n {shouldAddRootHost && <PortalHost name={rootHostName} />}\n </PortalStateContext.Provider>\n </PortalDispatchContext.Provider>\n );\n};\n\nexport const PortalProvider = memo(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\n\nexport class PortalManager {\n dispatch: React.Dispatch<ActionTypes>;\n hostName?: string;\n constructor(props: { dispatch: React.Dispatch<ActionTypes>; hostName?: string }) {\n this.dispatch = props.dispatch;\n this.hostName = props.hostName || \"root\";\n }\n\n registerHost = (hostName: string) => {\n this.dispatch({\n type: ACTIONS.REGISTER_HOST,\n hostName,\n });\n };\n\n deregisterHost = (hostName: string) => {\n this.dispatch({\n type: ACTIONS.DEREGISTER_HOST,\n hostName,\n });\n };\n\n addPortal = (hostName: string, portalName: string, node: any) => {\n this.dispatch({\n type: ACTIONS.ADD_UPDATE_PORTAL,\n hostName,\n portalName,\n node,\n });\n };\n\n addUpdatePortal = (hostName: string, portalName: string, node: any) => {\n this.addPortal(hostName, portalName, node);\n };\n\n removePortal = (hostName: string, portalName: string) => {\n this.dispatch({\n type: ACTIONS.REMOVE_PORTAL,\n hostName,\n portalName,\n });\n };\n\n componentDidMount() {\n this.registerHost(this.hostName!);\n }\n\n componentWillUnmount() {\n this.deregisterHost(this.hostName!);\n }\n}\n"],"names":["INITIAL_STATE","stateDispatch","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","splice","reducer","action","type","clonedState","_objectSpread","ACTIONS","REGISTER_HOST","DEREGISTER_HOST","ADD_UPDATE_PORTAL","REMOVE_PORTAL","PortalProviderComponent","_ref$rootHostName","_ref","rootHostName","_ref$shouldAddRootHos","shouldAddRootHost","children","_useReducer","useReducer","_useReducer2","_slicedToArray","dispatch","useEffect","PortalDispatchContext","Provider","value","PortalStateContext","React","createElement","PortalHost","PortalProvider","memo","displayName","PortalManager","props","_this","_classCallCheck","__publicField","addPortal","_createClass","key","componentDidMount","componentWillUnmount"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PortalProvider.js","sources":["../../../../../src/components/Portal/core/PortalProvider.tsx"],"sourcesContent":["import React, { memo, useEffect, useReducer } from \"react\";\nimport { PortalHost } from \"./PortalHost\";\nimport { PortalDispatchContext, PortalStateContext } from \"./PortalContext\";\nimport { ACTIONS, ActionTypes, AddUpdatePortalAction, PortalType, RemovePortalAction } from \"../interface\";\nimport { PortalProviderProps } from \"../interface\";\n\nexport let INITIAL_STATE = {};\nexport const stateDispatch: any = {};\nconst registerHost = (state: Record<string, Array<PortalType>>, hostName: string) => {\n if (!(hostName in state)) {\n state[hostName] = [];\n }\n return state;\n};\n\nconst deregisterHost = (state: Record<string, Array<PortalType>>, hostName: string) => {\n delete state[hostName];\n return state;\n};\n\nconst addUpdatePortal = (state: Record<string, Array<PortalType>>, hostName: string, portalName: string, node: any) => {\n if (!(hostName in state)) {\n state = registerHost(state, hostName);\n }\n\n const index = state[hostName].findIndex((item) => item.name === portalName);\n if (index !== -1) {\n state[hostName][index].node = node;\n } else {\n state[hostName].push({\n name: portalName,\n node,\n });\n }\n return state;\n};\n\nconst removePortal = (state: Record<string, Array<PortalType>>, hostName: string, portalName: string) => {\n if (!(hostName in state)) {\n return state;\n }\n\n const index = state[hostName].findIndex((item) => item.name === portalName);\n if (index !== -1) state[hostName].splice(index, 1);\n return state;\n};\n\nconst reducer = (state: Record<string, Array<PortalType>>, action: ActionTypes) => {\n const { type } = action;\n let clonedState = { ...state };\n switch (type) {\n case ACTIONS.REGISTER_HOST:\n return registerHost(clonedState, action.hostName);\n case ACTIONS.DEREGISTER_HOST:\n return deregisterHost(clonedState, action.hostName);\n case ACTIONS.ADD_UPDATE_PORTAL:\n return addUpdatePortal(\n clonedState,\n action.hostName,\n (action as AddUpdatePortalAction).portalName,\n (action as AddUpdatePortalAction).node,\n );\n case ACTIONS.REMOVE_PORTAL:\n return removePortal(clonedState, action.hostName, (action as RemovePortalAction).portalName);\n default:\n return state;\n }\n};\n\nconst PortalProviderComponent = ({\n rootHostName = \"root\",\n shouldAddRootHost = true,\n children,\n}: PortalProviderProps) => {\n const [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n useEffect(() => {\n stateDispatch[rootHostName] = {\n dispatch: dispatch,\n };\n }, []);\n return (\n <PortalDispatchContext.Provider value={dispatch}>\n <PortalStateContext.Provider value={state}>\n {children}\n {shouldAddRootHost && <PortalHost name={rootHostName} />}\n </PortalStateContext.Provider>\n </PortalDispatchContext.Provider>\n );\n};\n\nexport const PortalProvider = memo(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\n\nexport class PortalManager {\n dispatch: React.Dispatch<ActionTypes>;\n hostName?: string;\n constructor(props: { dispatch: React.Dispatch<ActionTypes>; hostName?: string }) {\n this.dispatch = props.dispatch;\n this.hostName = props.hostName || \"root\";\n }\n\n registerHost = (hostName: string) => {\n this.dispatch({\n type: ACTIONS.REGISTER_HOST,\n hostName,\n });\n };\n\n deregisterHost = (hostName: string) => {\n this.dispatch({\n type: ACTIONS.DEREGISTER_HOST,\n hostName,\n });\n };\n\n addPortal = (hostName: string, portalName: string, node: any) => {\n this.dispatch({\n type: ACTIONS.ADD_UPDATE_PORTAL,\n hostName,\n portalName,\n node,\n });\n };\n\n addUpdatePortal = (hostName: string, portalName: string, node: any) => {\n this.addPortal(hostName, portalName, node);\n };\n\n removePortal = (hostName: string, portalName: string) => {\n this.dispatch({\n type: ACTIONS.REMOVE_PORTAL,\n hostName,\n portalName,\n });\n };\n\n componentDidMount() {\n this.registerHost(this.hostName!);\n }\n\n componentWillUnmount() {\n this.deregisterHost(this.hostName!);\n }\n}\n"],"names":["INITIAL_STATE","stateDispatch","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","splice","reducer","action","type","clonedState","_objectSpread","ACTIONS","REGISTER_HOST","DEREGISTER_HOST","ADD_UPDATE_PORTAL","REMOVE_PORTAL","PortalProviderComponent","_ref$rootHostName","_ref","rootHostName","_ref$shouldAddRootHos","shouldAddRootHost","children","_useReducer","useReducer","_useReducer2","_slicedToArray","dispatch","useEffect","PortalDispatchContext","Provider","value","PortalStateContext","React","createElement","PortalHost","PortalProvider","memo","displayName","PortalManager","props","_this","_classCallCheck","__publicField","addPortal","_createClass","key","componentDidMount","componentWillUnmount"],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ require('react');
|
|
|
12
12
|
require('../../pvCount/useUnmountedProcess.js');
|
|
13
13
|
require('@xhs/reds-apm/src/index.native');
|
|
14
14
|
require('../../pvCount/pvData.js');
|
|
15
|
-
require('react-native');
|
|
16
15
|
require('./core/hooks/usePortalState.js');
|
|
17
16
|
require('../../_chunks/C9tZEm0t.js');
|
|
18
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -11,8 +11,8 @@ import '../../Portal/core/PortalContext.js';
|
|
|
11
11
|
import '../../../pvCount/useUnmountedProcess.js';
|
|
12
12
|
import '@xhs/reds-apm/src/index.native';
|
|
13
13
|
import '../../../pvCount/pvData.js';
|
|
14
|
-
import 'react-native';
|
|
15
14
|
import '../../Portal/core/hooks/usePortalState.js';
|
|
15
|
+
import 'react-native';
|
|
16
16
|
import '../../ConfigProvider/hooks/ConfigCache/ConfigCache.js';
|
|
17
17
|
import '@xhsreds/reds-token-next';
|
|
18
18
|
import '../../ConfigProvider/hooks/themeToken/useThemeToken.js';
|
|
@@ -173,11 +173,12 @@ var Image = function Image(_ref) {
|
|
|
173
173
|
};
|
|
174
174
|
var colorMode = useColorMode();
|
|
175
175
|
return /* @__PURE__ */React.createElement(View, {
|
|
176
|
-
style: _objectSpread2({
|
|
177
|
-
borderRadius: borderRadius
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
176
|
+
style: _objectSpread2(_objectSpread2({
|
|
177
|
+
borderRadius: borderRadius || (style === null || style === void 0 ? void 0 : style.borderRadius)
|
|
178
|
+
}, style), {}, {
|
|
179
|
+
height: (height || (style === null || style === void 0 ? void 0 : style.height) || 0) + ((style === null || style === void 0 ? void 0 : style.borderWidth) || 0) * 2,
|
|
180
|
+
width: (width || (style === null || style === void 0 ? void 0 : style.width) || 0) + ((style === null || style === void 0 ? void 0 : style.borderWidth) || 0) * 2
|
|
181
|
+
})
|
|
181
182
|
}, imageStatus !== IMAGE_STATUS.HIDE && /* @__PURE__ */React.createElement(Image$2, _objectSpread2(_objectSpread2({}, props), {}, {
|
|
182
183
|
source: formatSource,
|
|
183
184
|
onLoadStart: onLoadStart,
|
|
@@ -192,24 +193,24 @@ var Image = function Image(_ref) {
|
|
|
192
193
|
style: {
|
|
193
194
|
width: width || (style === null || style === void 0 ? void 0 : style.width),
|
|
194
195
|
height: height || (style === null || style === void 0 ? void 0 : style.height),
|
|
195
|
-
borderRadius: borderRadius
|
|
196
|
+
borderRadius: borderRadius || (style === null || style === void 0 ? void 0 : style.borderRadius)
|
|
196
197
|
// opacity: imageStatus === IMAGE_STATUS.LOADED ? 1 : 0,
|
|
197
198
|
},
|
|
198
199
|
apmBiz: props.apmBiz
|
|
199
200
|
})), imageStatus === IMAGE_STATUS.LOADING && loadStyle !== TLoadStyle.NONE && /* @__PURE__ */React.createElement(View, {
|
|
200
201
|
style: _objectSpread2(_objectSpread2({
|
|
201
|
-
width: width,
|
|
202
|
-
height: height,
|
|
203
|
-
borderRadius: borderRadius
|
|
202
|
+
width: width || (style === null || style === void 0 ? void 0 : style.width),
|
|
203
|
+
height: height || (style === null || style === void 0 ? void 0 : style.height),
|
|
204
|
+
borderRadius: borderRadius || (style === null || style === void 0 ? void 0 : style.borderRadius)
|
|
204
205
|
}, styles.loadingContainer), {}, {
|
|
205
206
|
backgroundColor: loadStyle === TLoadStyle.AVE ? aveColor : styles.loadingContainer.backgroundColor
|
|
206
|
-
}
|
|
207
|
+
})
|
|
207
208
|
}, loadStyle === TLoadStyle.BLUR && /* @__PURE__ */React.createElement(Image$2, {
|
|
208
209
|
source: blurSource,
|
|
209
210
|
style: {
|
|
210
211
|
width: width || (style === null || style === void 0 ? void 0 : style.width),
|
|
211
212
|
height: height || (style === null || style === void 0 ? void 0 : style.height),
|
|
212
|
-
borderRadius: borderRadius
|
|
213
|
+
borderRadius: borderRadius || (style === null || style === void 0 ? void 0 : style.borderRadius)
|
|
213
214
|
},
|
|
214
215
|
apmBiz: props.apmBiz
|
|
215
216
|
}), loadStyle === TLoadStyle.LOADING && /* @__PURE__ */React.createElement(CircularProgress, {
|
|
@@ -221,8 +222,7 @@ var Image = function Image(_ref) {
|
|
|
221
222
|
},
|
|
222
223
|
style: _objectSpread2({
|
|
223
224
|
width: width,
|
|
224
|
-
height: height
|
|
225
|
-
borderRadius: borderRadius
|
|
225
|
+
height: height
|
|
226
226
|
}, styles.loadingContainer)
|
|
227
227
|
}, /* @__PURE__ */React.createElement(Image$2, {
|
|
228
228
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["import React, { useState, memo, useMemo, useRef, useCallback, useEffect } from \"react\";\nimport {\n View,\n Image as RNImage,\n GestureResponderEvent,\n ImageProps,\n TouchableOpacity,\n ImageLoadEventData,\n NativeSyntheticEvent,\n ImageErrorEventData,\n ImageProgressEventDataIOS,\n ImageSourcePropType,\n ImageURISource,\n} from \"react-native\";\nimport {\n RedsImage,\n ImageDefaultProps,\n IMAGE_STATUS,\n TErrorStyle,\n TLoadStyle,\n ImageTrackerProps,\n} from \"./interface/index\";\nimport styles from \"./styles\";\nimport { useAveColor, useBlur } from \"./hook\";\nimport CircularProgress from \"./CircularProgress\";\nimport { useColorMode } from \"../ConfigProvider\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nimport { lightColor } from \"@xhsreds/reds-token-next\";\nimport { formatUri, isDataUri, isLocalFile, convertKeysToSnakeCase } from \"./utils\";\nimport { apmPush } from \"./apm\";\nimport { queryCacheBatched } from \"./queryCacheBatcher\";\n\nconst imageReLoad = {\n light: \"https://picasso-static.xiaohongshu.com/fe-platform/06ae169b310c2926e541903b828486a80fcac404.png\",\n dark: \"https://picasso-static.xiaohongshu.com/fe-platform/4f9bfbf2358aa970f1ec3dbf4ba5ff9355b7a41e.png\",\n platformLight: \"https://picasso-static.xiaohongshu.com/fe-platform/06ae169b310c2926e541903b828486a80fcac404.png\",\n};\n\nconst imageError = {\n light: \"https://picasso-static.xiaohongshu.com/fe-platform/76fee5bba4ce3bbf3e9ff5fe1935b737bb27625a.png\",\n dark: \"https://picasso-static.xiaohongshu.com/fe-platform/7d8debb5e2c3a1f37299a292342b77d479be6f28.png\",\n platformLight: \"https://picasso-static.xiaohongshu.com/fe-platform/76fee5bba4ce3bbf3e9ff5fe1935b737bb27625a.png\",\n};\n\nconst Image = ({\n src,\n source: _source,\n width,\n height,\n borderRadius,\n errorStyle,\n loadStyle,\n style,\n abortApmCollection,\n fadeDuration,\n onFirstDrawFinished,\n ...props\n}: RedsImage & Omit<ImageProps, keyof RedsImage>) => {\n // useMounted(\"Image\");\n const [imageStatus, setImageStatus] = useState(IMAGE_STATUS.LOADING);\n const [progress, setProgress] = useState(0);\n const mountTimeRef = useRef<number>(Date.now());\n\n const formatSource = useMemo(() => {\n // @ts-ignore\n if (_source) return _source as ImageSourcePropType;\n // @ts-ignore\n return { uri: src } as ImageSourcePropType;\n }, [src, _source]);\n\n const aveColor = useAveColor({\n source: formatSource,\n defaultColor: lightColor.Fill1,\n loadingAve: loadStyle === TLoadStyle.AVE,\n });\n\n const blurSource = useBlur({ source: formatSource });\n\n // Visibility tracking removed: no longer needed for APM\n const apmDataRef = useRef<ImageTrackerProps>({\n imageUrl: \"\",\n imageHost: \"\",\n intersectTime: 0,\n imageSize: 0,\n isFirstScreen: \"false\",\n isPrefetch: \"\",\n isSuccess: \"false\",\n errorReason: \"\",\n loadedStartTime: 0,\n loadedTime: 0,\n loadDuration: 0,\n viewDuration: 0,\n });\n const apmDoneRef = useRef(false);\n\n useEffect(() => {\n if (abortApmCollection) return;\n try {\n const apmData = apmDataRef.current;\n if (\n typeof formatSource !== \"number\" &&\n !isLocalFile((formatSource as ImageURISource).uri as string) &&\n !isDataUri((formatSource as ImageURISource).uri as string)\n ) {\n const imageUrl = new URL((formatSource as ImageURISource).uri as string);\n apmData.imageHost = `${imageUrl.protocol}//${imageUrl.host}`;\n apmData.imageUrl = (formatSource as ImageURISource).uri as string;\n }\n } catch (error) {\n //\n }\n }, [formatSource, abortApmCollection]);\n\n useEffect(() => {\n if (abortApmCollection) return;\n const imageUrl = (formatSource as ImageURISource)?.uri || \"\";\n if (!imageUrl) return;\n let alive = true;\n queryCacheBatched(imageUrl)\n .then((isPrefetched) => {\n if (!alive) return;\n apmDataRef.current.isPrefetch = String(isPrefetched);\n })\n .catch(() => {\n if (!alive) return;\n apmDataRef.current.isPrefetch = \"false\";\n });\n return () => {\n alive = false;\n apmDataRef.current.isPrefetch = \"\";\n };\n }, [formatSource, abortApmCollection]);\n\n const pushApmData = useCallback(() => {\n if (abortApmCollection) return;\n const apmData = apmDataRef.current;\n // Simplify: do not track view duration/intersect time\n apmData.intersectTime = 0;\n apmData.viewDuration = 0;\n /**\n * 如果Image.queryCache未完成时,通过imageSize来判断\n * 如果image_size是-1,那么认为图片已有缓存\n */\n const imageSize = apmDataRef.current.imageSize || 0;\n if (!apmDataRef.current.isPrefetch) {\n apmDataRef.current.isPrefetch = String((imageSize || 0) <= 0);\n }\n if (!apmDoneRef.current && apmData.imageUrl && !abortApmCollection) {\n apmDoneRef.current = true;\n apmPush(convertKeysToSnakeCase(apmData));\n }\n }, [abortApmCollection]);\n\n // 判断首屏\n // isFirstScreen stays \"false\" and intersectTime stays 0 by design\n const onLoadEnd = () => {\n props?.onLoadEnd?.();\n if (abortApmCollection) return;\n // Push regardless of visibility/intersect time\n pushApmData();\n };\n\n const onProgress = (e: NativeSyntheticEvent<ImageProgressEventDataIOS>) => {\n const {\n nativeEvent: { total, loaded },\n } = e;\n if (total) {\n setProgress(((loaded / total) * 100) | 0);\n }\n !abortApmCollection && (apmDataRef.current.imageSize = total);\n props.onProgress?.(e);\n };\n const onLoad = (e: NativeSyntheticEvent<ImageLoadEventData>) => {\n if (!abortApmCollection) {\n const now = Date.now();\n let start = apmDataRef.current.loadedStartTime || mountTimeRef.current;\n if (start > now) start = now;\n apmDataRef.current.loadedStartTime = start;\n const loadDuration = now - start;\n apmDataRef.current.loadedTime = now;\n apmDataRef.current.loadDuration = loadDuration < 0 ? 0 : loadDuration;\n apmDataRef.current.isSuccess = \"true\";\n }\n props.onLoad?.(e);\n setImageStatus(IMAGE_STATUS.LOADED);\n };\n\n const onLoadStart = () => {\n !abortApmCollection && (apmDataRef.current.loadedStartTime = Date.now());\n };\n\n const onError = (e: NativeSyntheticEvent<ImageErrorEventData>) => {\n if (!abortApmCollection) {\n apmDataRef.current.isSuccess = \"false\";\n apmDataRef.current.errorReason = `${e.nativeEvent.error}`;\n }\n props.onError?.(e);\n setImageStatus(errorStyle === TErrorStyle.ERROR ? IMAGE_STATUS.LOADERROR : IMAGE_STATUS.RELOAD);\n };\n const onReload = (e: GestureResponderEvent) => {\n setImageStatus(IMAGE_STATUS.HIDE);\n props.onReload?.(e);\n setTimeout(() => {\n setImageStatus(IMAGE_STATUS.LOADING);\n });\n };\n\n const colorMode = useColorMode();\n\n return (\n <View style={{ borderRadius, height, width, ...(style as {}) }}>\n {imageStatus !== IMAGE_STATUS.HIDE && (\n <RNImage\n {...props}\n // @ts-ignore\n source={formatSource}\n onLoadStart={onLoadStart}\n onLoad={onLoad}\n onProgress={onProgress}\n onError={onError}\n onLoadEnd={onLoadEnd}\n fadeDuration={fadeDuration}\n // @ts-ignore\n onFirstDrawFinished={(e) => onFirstDrawFinished(e)}\n style={{\n width: width || style?.width,\n height: height || style?.height,\n borderRadius,\n // opacity: imageStatus === IMAGE_STATUS.LOADED ? 1 : 0,\n }}\n // @ts-ignore\n apmBiz={props.apmBiz}\n ></RNImage>\n )}\n {imageStatus === IMAGE_STATUS.LOADING && loadStyle !== TLoadStyle.NONE && (\n <View\n style={{\n width,\n height,\n borderRadius,\n ...styles.loadingContainer,\n backgroundColor: loadStyle === TLoadStyle.AVE ? aveColor : styles.loadingContainer.backgroundColor,\n ...style,\n }}\n >\n {loadStyle === TLoadStyle.BLUR && (\n <RNImage\n source={blurSource}\n style={{\n width: width || style?.width,\n height: height || style?.height,\n borderRadius,\n }}\n // @ts-ignore\n apmBiz={props.apmBiz}\n ></RNImage>\n )}\n {loadStyle === TLoadStyle.LOADING && <CircularProgress progress={progress}></CircularProgress>}\n </View>\n )}\n {(imageStatus === IMAGE_STATUS.LOADERROR || imageStatus === IMAGE_STATUS.RELOAD) &&\n errorStyle !== TErrorStyle.NONE && (\n <TouchableOpacity\n activeOpacity={1}\n onPress={(e) => {\n onReload(e);\n }}\n style={{ width, height, borderRadius, ...styles.loadingContainer }}\n >\n <RNImage\n style={{ width: 40, height: 40 }}\n source={{\n uri: imageStatus === IMAGE_STATUS.RELOAD ? imageReLoad[colorMode] : imageError[colorMode],\n }}\n // @ts-ignore\n apmBiz={props.apmBiz}\n />\n </TouchableOpacity>\n )}\n </View>\n );\n};\n\nImage.defaultProps = ImageDefaultProps;\n\nexport default memo(Image);\n"],"names":["imageReLoad","light","dark","platformLight","imageError","Image","src","_ref","_source","source","width","height","borderRadius","errorStyle","loadStyle","style","abortApmCollection","fadeDuration","onFirstDrawFinished","props","_objectWithoutProperties","_excluded","_useState","useState","IMAGE_STATUS","LOADING","_useState2","_slicedToArray","imageStatus","setImageStatus","_useState3","_useState4","progress","setProgress","mountTimeRef","useRef","Date","now","formatSource","useMemo","uri","aveColor","useAveColor","defaultColor","lightColor","Fill1","loadingAve","TLoadStyle","AVE","blurSource","useBlur","apmDataRef","imageUrl","imageHost","intersectTime","imageSize","isFirstScreen","isPrefetch","isSuccess","errorReason","loadedStartTime","loadedTime","loadDuration","viewDuration","apmDoneRef","useEffect","apmData","current","isLocalFile","isDataUri","URL","protocol","concat","host","error","alive","queryCacheBatched","then","isPrefetched","String","pushApmData","useCallback","apmPush","convertKeysToSnakeCase","onLoadEnd","_props$onLoadEnd","call","onProgress","e","_props$onProgress","_e$nativeEvent","nativeEvent","total","loaded","onLoad","_props$onLoad","start","LOADED","onLoadStart","onError","_props$onError","TErrorStyle","ERROR","LOADERROR","RELOAD","onReload","_props$onReload","HIDE","setTimeout","colorMode","useColorMode","React","createElement","View","_objectSpread","RNImage","apmBiz","NONE","styles","loadingContainer","backgroundColor","BLUR","CircularProgress","TouchableOpacity","activeOpacity","onPress","defaultProps","ImageDefaultProps","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Image.js","sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["import React, { useState, memo, useMemo, useRef, useCallback, useEffect } from \"react\";\nimport {\n View,\n Image as RNImage,\n GestureResponderEvent,\n ImageProps,\n TouchableOpacity,\n ImageLoadEventData,\n NativeSyntheticEvent,\n ImageErrorEventData,\n ImageProgressEventDataIOS,\n ImageSourcePropType,\n ImageURISource,\n} from \"react-native\";\nimport {\n RedsImage,\n ImageDefaultProps,\n IMAGE_STATUS,\n TErrorStyle,\n TLoadStyle,\n ImageTrackerProps,\n} from \"./interface/index\";\nimport styles from \"./styles\";\nimport { useAveColor, useBlur } from \"./hook\";\nimport CircularProgress from \"./CircularProgress\";\nimport { useColorMode } from \"../ConfigProvider\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nimport { lightColor } from \"@xhsreds/reds-token-next\";\nimport { formatUri, isDataUri, isLocalFile, convertKeysToSnakeCase } from \"./utils\";\nimport { apmPush } from \"./apm\";\nimport { queryCacheBatched } from \"./queryCacheBatcher\";\n\nconst imageReLoad = {\n light: \"https://picasso-static.xiaohongshu.com/fe-platform/06ae169b310c2926e541903b828486a80fcac404.png\",\n dark: \"https://picasso-static.xiaohongshu.com/fe-platform/4f9bfbf2358aa970f1ec3dbf4ba5ff9355b7a41e.png\",\n platformLight: \"https://picasso-static.xiaohongshu.com/fe-platform/06ae169b310c2926e541903b828486a80fcac404.png\",\n};\n\nconst imageError = {\n light: \"https://picasso-static.xiaohongshu.com/fe-platform/76fee5bba4ce3bbf3e9ff5fe1935b737bb27625a.png\",\n dark: \"https://picasso-static.xiaohongshu.com/fe-platform/7d8debb5e2c3a1f37299a292342b77d479be6f28.png\",\n platformLight: \"https://picasso-static.xiaohongshu.com/fe-platform/76fee5bba4ce3bbf3e9ff5fe1935b737bb27625a.png\",\n};\n\nconst Image = ({\n src,\n source: _source,\n width,\n height,\n borderRadius,\n errorStyle,\n loadStyle,\n style,\n abortApmCollection,\n fadeDuration,\n onFirstDrawFinished,\n ...props\n}: RedsImage & Omit<ImageProps, keyof RedsImage>) => {\n // useMounted(\"Image\");\n const [imageStatus, setImageStatus] = useState(IMAGE_STATUS.LOADING);\n const [progress, setProgress] = useState(0);\n const mountTimeRef = useRef<number>(Date.now());\n\n const formatSource = useMemo(() => {\n // @ts-ignore\n if (_source) return _source as ImageSourcePropType;\n // @ts-ignore\n return { uri: src } as ImageSourcePropType;\n }, [src, _source]);\n\n const aveColor = useAveColor({\n source: formatSource,\n defaultColor: lightColor.Fill1,\n loadingAve: loadStyle === TLoadStyle.AVE,\n });\n\n const blurSource = useBlur({ source: formatSource });\n\n // Visibility tracking removed: no longer needed for APM\n const apmDataRef = useRef<ImageTrackerProps>({\n imageUrl: \"\",\n imageHost: \"\",\n intersectTime: 0,\n imageSize: 0,\n isFirstScreen: \"false\",\n isPrefetch: \"\",\n isSuccess: \"false\",\n errorReason: \"\",\n loadedStartTime: 0,\n loadedTime: 0,\n loadDuration: 0,\n viewDuration: 0,\n });\n const apmDoneRef = useRef(false);\n\n useEffect(() => {\n if (abortApmCollection) return;\n try {\n const apmData = apmDataRef.current;\n if (\n typeof formatSource !== \"number\" &&\n !isLocalFile((formatSource as ImageURISource).uri as string) &&\n !isDataUri((formatSource as ImageURISource).uri as string)\n ) {\n const imageUrl = new URL((formatSource as ImageURISource).uri as string);\n apmData.imageHost = `${imageUrl.protocol}//${imageUrl.host}`;\n apmData.imageUrl = (formatSource as ImageURISource).uri as string;\n }\n } catch (error) {\n //\n }\n }, [formatSource, abortApmCollection]);\n\n useEffect(() => {\n if (abortApmCollection) return;\n const imageUrl = (formatSource as ImageURISource)?.uri || \"\";\n if (!imageUrl) return;\n let alive = true;\n queryCacheBatched(imageUrl)\n .then((isPrefetched) => {\n if (!alive) return;\n apmDataRef.current.isPrefetch = String(isPrefetched);\n })\n .catch(() => {\n if (!alive) return;\n apmDataRef.current.isPrefetch = \"false\";\n });\n return () => {\n alive = false;\n apmDataRef.current.isPrefetch = \"\";\n };\n }, [formatSource, abortApmCollection]);\n\n const pushApmData = useCallback(() => {\n if (abortApmCollection) return;\n const apmData = apmDataRef.current;\n // Simplify: do not track view duration/intersect time\n apmData.intersectTime = 0;\n apmData.viewDuration = 0;\n /**\n * 如果Image.queryCache未完成时,通过imageSize来判断\n * 如果image_size是-1,那么认为图片已有缓存\n */\n const imageSize = apmDataRef.current.imageSize || 0;\n if (!apmDataRef.current.isPrefetch) {\n apmDataRef.current.isPrefetch = String((imageSize || 0) <= 0);\n }\n if (!apmDoneRef.current && apmData.imageUrl && !abortApmCollection) {\n apmDoneRef.current = true;\n apmPush(convertKeysToSnakeCase(apmData));\n }\n }, [abortApmCollection]);\n\n // 判断首屏\n // isFirstScreen stays \"false\" and intersectTime stays 0 by design\n const onLoadEnd = () => {\n props?.onLoadEnd?.();\n if (abortApmCollection) return;\n // Push regardless of visibility/intersect time\n pushApmData();\n };\n\n const onProgress = (e: NativeSyntheticEvent<ImageProgressEventDataIOS>) => {\n const {\n nativeEvent: { total, loaded },\n } = e;\n if (total) {\n setProgress(((loaded / total) * 100) | 0);\n }\n !abortApmCollection && (apmDataRef.current.imageSize = total);\n props.onProgress?.(e);\n };\n const onLoad = (e: NativeSyntheticEvent<ImageLoadEventData>) => {\n if (!abortApmCollection) {\n const now = Date.now();\n let start = apmDataRef.current.loadedStartTime || mountTimeRef.current;\n if (start > now) start = now;\n apmDataRef.current.loadedStartTime = start;\n const loadDuration = now - start;\n apmDataRef.current.loadedTime = now;\n apmDataRef.current.loadDuration = loadDuration < 0 ? 0 : loadDuration;\n apmDataRef.current.isSuccess = \"true\";\n }\n props.onLoad?.(e);\n setImageStatus(IMAGE_STATUS.LOADED);\n };\n\n const onLoadStart = () => {\n !abortApmCollection && (apmDataRef.current.loadedStartTime = Date.now());\n };\n\n const onError = (e: NativeSyntheticEvent<ImageErrorEventData>) => {\n if (!abortApmCollection) {\n apmDataRef.current.isSuccess = \"false\";\n apmDataRef.current.errorReason = `${e.nativeEvent.error}`;\n }\n props.onError?.(e);\n setImageStatus(errorStyle === TErrorStyle.ERROR ? IMAGE_STATUS.LOADERROR : IMAGE_STATUS.RELOAD);\n };\n const onReload = (e: GestureResponderEvent) => {\n setImageStatus(IMAGE_STATUS.HIDE);\n props.onReload?.(e);\n setTimeout(() => {\n setImageStatus(IMAGE_STATUS.LOADING);\n });\n };\n\n const colorMode = useColorMode();\n return (\n <View\n style={{\n borderRadius: borderRadius || style?.borderRadius,\n ...(style as {}),\n height: ((height || style?.height || 0) as number) + (style?.borderWidth || 0) * 2,\n width: ((width || style?.width || 0) as number) + (style?.borderWidth || 0) * 2,\n }}\n >\n {imageStatus !== IMAGE_STATUS.HIDE && (\n <RNImage\n {...props}\n // @ts-ignore\n source={formatSource}\n onLoadStart={onLoadStart}\n onLoad={onLoad}\n onProgress={onProgress}\n onError={onError}\n onLoadEnd={onLoadEnd}\n fadeDuration={fadeDuration}\n // @ts-ignore\n onFirstDrawFinished={(e) => onFirstDrawFinished(e)}\n style={{\n width: width || style?.width,\n height: height || style?.height,\n borderRadius: borderRadius || style?.borderRadius,\n // opacity: imageStatus === IMAGE_STATUS.LOADED ? 1 : 0,\n }}\n // @ts-ignore\n apmBiz={props.apmBiz}\n ></RNImage>\n )}\n {imageStatus === IMAGE_STATUS.LOADING && loadStyle !== TLoadStyle.NONE && (\n <View\n style={{\n width: width || style?.width,\n height: height || style?.height,\n borderRadius: borderRadius || style?.borderRadius,\n ...styles.loadingContainer,\n backgroundColor: loadStyle === TLoadStyle.AVE ? aveColor : styles.loadingContainer.backgroundColor,\n }}\n >\n {loadStyle === TLoadStyle.BLUR && (\n <RNImage\n source={blurSource}\n style={{\n width: width || style?.width,\n height: height || style?.height,\n borderRadius: borderRadius || style?.borderRadius,\n }}\n // @ts-ignore\n apmBiz={props.apmBiz}\n ></RNImage>\n )}\n {loadStyle === TLoadStyle.LOADING && <CircularProgress progress={progress}></CircularProgress>}\n </View>\n )}\n {(imageStatus === IMAGE_STATUS.LOADERROR || imageStatus === IMAGE_STATUS.RELOAD) &&\n errorStyle !== TErrorStyle.NONE && (\n <TouchableOpacity\n activeOpacity={1}\n onPress={(e) => {\n onReload(e);\n }}\n style={{ width, height, ...styles.loadingContainer }}\n >\n <RNImage\n style={{ width: 40, height: 40 }}\n source={{\n uri: imageStatus === IMAGE_STATUS.RELOAD ? imageReLoad[colorMode] : imageError[colorMode],\n }}\n // @ts-ignore\n apmBiz={props.apmBiz}\n />\n </TouchableOpacity>\n )}\n </View>\n );\n};\n\nImage.defaultProps = ImageDefaultProps;\n\nexport default memo(Image);\n"],"names":["imageReLoad","light","dark","platformLight","imageError","Image","src","_ref","_source","source","width","height","borderRadius","errorStyle","loadStyle","style","abortApmCollection","fadeDuration","onFirstDrawFinished","props","_objectWithoutProperties","_excluded","_useState","useState","IMAGE_STATUS","LOADING","_useState2","_slicedToArray","imageStatus","setImageStatus","_useState3","_useState4","progress","setProgress","mountTimeRef","useRef","Date","now","formatSource","useMemo","uri","aveColor","useAveColor","defaultColor","lightColor","Fill1","loadingAve","TLoadStyle","AVE","blurSource","useBlur","apmDataRef","imageUrl","imageHost","intersectTime","imageSize","isFirstScreen","isPrefetch","isSuccess","errorReason","loadedStartTime","loadedTime","loadDuration","viewDuration","apmDoneRef","useEffect","apmData","current","isLocalFile","isDataUri","URL","protocol","concat","host","error","alive","queryCacheBatched","then","isPrefetched","String","pushApmData","useCallback","apmPush","convertKeysToSnakeCase","onLoadEnd","_props$onLoadEnd","call","onProgress","e","_props$onProgress","_e$nativeEvent","nativeEvent","total","loaded","onLoad","_props$onLoad","start","LOADED","onLoadStart","onError","_props$onError","TErrorStyle","ERROR","LOADERROR","RELOAD","onReload","_props$onReload","HIDE","setTimeout","colorMode","useColorMode","React","createElement","View","_objectSpread","borderWidth","RNImage","apmBiz","NONE","styles","loadingContainer","backgroundColor","BLUR","CircularProgress","TouchableOpacity","activeOpacity","onPress","defaultProps","ImageDefaultProps","memo"],"mappings":"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"}
|
|
@@ -140,7 +140,8 @@ var NoticeBar = function NoticeBar(props) {
|
|
|
140
140
|
numberOfLines: props.type === NoticeBarType.BASIC ? 1 : void 0,
|
|
141
141
|
ellipsizeMode: "tail"
|
|
142
142
|
}, props.content)), props.actionType === NoticeBarActionType.TEXTACTION ? /* @__PURE__ */React.createElement(Text, {
|
|
143
|
-
style: styles.linkText
|
|
143
|
+
style: styles.linkText,
|
|
144
|
+
onPress: handleLink
|
|
144
145
|
}, props.actionText || jumpKey) : /* @__PURE__ */React.createElement(React.Fragment, null), props.actionType === NoticeBarActionType.ICONACTION ? /* @__PURE__ */React.createElement(TouchableWithoutFeedback, {
|
|
145
146
|
onPress: handleLink
|
|
146
147
|
}, /* @__PURE__ */React.createElement(Image, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoticeBar.js","sources":["../../../../src/components/NoticeBar/NoticeBar.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport { View, TouchableWithoutFeedback, Text, Image, Animated, Easing } from \"react-native\";\nimport { RedsNoticeBar, NoticeBarDefaultProps, NoticeBarType, NoticeBarActionType } from \"./interface/index\";\nimport getStyles from \"./styles\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { useLanguage } from \"../LanguageProvider\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nconst NoticeBar = (props: RedsNoticeBar) => {\n useMounted(\"NoticeBar\");\n const [_visible, setVisible] = useState(true);\n\n const themeColor = useThemeColor();\n\n const styles = getStyles(themeColor);\n\n const jumpKey = useLanguage(\"componentKey\", \"jumpKey\");\n\n const icon = useMemo(() => {\n switch (props.theme) {\n case \"info\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/1a246fbb8d573348d3f1e6d6e2c1e73b790e8ddc.png\";\n case \"success\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c62ce17c572dff50aa28209bedf635fc303d18f8.png\";\n case \"warning\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/11b33735cbfddd621d1163dec26a5c240bc407f1.png\";\n case \"danger\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/4df0100d42449186672e3c4d9863ec4bce4bb23a.png\";\n default:\n return \"https://picasso-static.xiaohongshu.com/fe-platform/1a246fbb8d573348d3f1e6d6e2c1e73b790e8ddc.png\";\n }\n }, [props.theme]);\n\n const color = useMemo(() => {\n switch (props.theme) {\n case \"info\":\n return themeColor.Info2;\n case \"success\":\n return themeColor.Success2;\n case \"warning\":\n return themeColor.Warning2;\n case \"danger\":\n return themeColor.Primary2;\n default:\n return themeColor.Info2;\n }\n }, [props.theme, themeColor]);\n\n const [textWidth, setTextWidth] = useState(0);\n const [containerWidth, setContainerWidth] = useState(0);\n const scrollX = useRef(new Animated.Value(0)).current;\n\n const scrollDistance = useMemo(() => Math.max(textWidth - containerWidth, 0), [textWidth, containerWidth]);\n\n useEffect(() => {\n if (props.type === NoticeBarType.SCROLLABLE && textWidth > 0) {\n const startScrolling = () => {\n scrollX.setValue(0);\n Animated.timing(scrollX, {\n toValue: -scrollDistance,\n duration: scrollDistance * 30,\n easing: Easing.linear,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) {\n startScrolling();\n }\n });\n };\n\n startScrolling();\n }\n }, [textWidth, containerWidth, props.type, scrollDistance]);\n\n const handleLink = () => {\n props.onClick?.();\n };\n\n const handleClose = () => {\n setVisible(false);\n props.onClose?.();\n };\n\n useEffect(() => {\n setVisible(!!props.visible);\n }, [props.visible]);\n\n return _visible ? (\n <View\n style={[\n styles.container,\n { backgroundColor: color, alignItems: props.type === NoticeBarType.MUTILINE ? \"flex-start\" : \"center\" },\n props.style,\n ]}\n >\n {props.withIcon ? <Image source={{ uri: icon }} style={styles.icon} testID=\"notice-icon\" /> : <></>}\n {props.children}\n <View\n style={styles.textWrapper}\n testID=\"text-wrapper\"\n onLayout={(e) => setContainerWidth(e.nativeEvent.layout.width)}\n >\n {props.type === NoticeBarType.SCROLLABLE ? (\n <View style={{ minHeight: 18, overflow: \"scroll\", flexDirection: \"row\" }}>\n <Animated.Text\n numberOfLines={1}\n style={[{ transform: [{ translateX: scrollX }] }]}\n onLayout={(e) => setTextWidth(e.nativeEvent.layout.width)}\n >\n <Text style={styles.text}>{props.content}</Text>\n <Text style={styles.text}>{\" \"}</Text>\n <Text style={styles.text}>{props.content}</Text>\n </Animated.Text>\n </View>\n ) : (\n <Text\n style={[styles.text]}\n numberOfLines={props.type === NoticeBarType.BASIC ? 1 : undefined}\n ellipsizeMode=\"tail\"\n >\n {props.content}\n </Text>\n )}\n </View>\n {props.actionType === NoticeBarActionType.TEXTACTION ? (\n <Text style={styles.linkText}>{props.actionText || jumpKey}</Text>\n ) : (\n <></>\n )}\n {/* 跳转icon */}\n {props.actionType === NoticeBarActionType.ICONACTION ? (\n <TouchableWithoutFeedback onPress={handleLink}>\n <Image\n testID=\"action-icon\"\n source={{\n uri: \"https://picasso-static.xiaohongshu.com/fe-platform/2708eed5e1ec88c28d5358d1496e6c8d28eaf819.png\",\n }}\n style={styles.link}\n />\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n {/* 关闭icon */}\n {props.closable ? (\n <TouchableWithoutFeedback onPress={handleClose}>\n <Image\n testID=\"close-icon\"\n source={{\n uri: \"https://picasso-static.xiaohongshu.com/fe-platform/0792412fe36bc5bed739e0a62c504b3b83caeedb.png\",\n }}\n style={styles.close}\n />\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n );\n};\n\nNoticeBar.defaultProps = NoticeBarDefaultProps;\n\nexport default NoticeBar;\n"],"names":["NoticeBar","props","useMounted","_useState","useState","_useState2","_slicedToArray","_visible","setVisible","themeColor","useThemeColor","styles","getStyles","jumpKey","useLanguage","icon","useMemo","theme","color","Info2","Success2","Warning2","Primary2","_useState3","_useState4","textWidth","setTextWidth","_useState5","_useState6","containerWidth","setContainerWidth","scrollX","useRef","Animated","Value","current","scrollDistance","Math","max","useEffect","type","NoticeBarType","SCROLLABLE","startScrolling","setValue","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","_ref","finished","handleLink","_props$onClick","onClick","call","handleClose","_props$onClose","onClose","visible","React","createElement","View","style","container","backgroundColor","alignItems","MUTILINE","withIcon","Image","source","uri","testID","Fragment","children","textWrapper","onLayout","e","nativeEvent","layout","width","minHeight","overflow","flexDirection","Text","numberOfLines","transform","translateX","text","content","BASIC","ellipsizeMode","actionType","NoticeBarActionType","TEXTACTION","linkText","actionText","ICONACTION","TouchableWithoutFeedback","onPress","link","closable","close","defaultProps","NoticeBarDefaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NoticeBar.js","sources":["../../../../src/components/NoticeBar/NoticeBar.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport { View, TouchableWithoutFeedback, Text, Image, Animated, Easing } from \"react-native\";\nimport { RedsNoticeBar, NoticeBarDefaultProps, NoticeBarType, NoticeBarActionType } from \"./interface/index\";\nimport getStyles from \"./styles\";\nimport { useThemeColor } from \"../ConfigProvider\";\nimport { useLanguage } from \"../LanguageProvider\";\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nconst NoticeBar = (props: RedsNoticeBar) => {\n useMounted(\"NoticeBar\");\n const [_visible, setVisible] = useState(true);\n\n const themeColor = useThemeColor();\n\n const styles = getStyles(themeColor);\n\n const jumpKey = useLanguage(\"componentKey\", \"jumpKey\");\n\n const icon = useMemo(() => {\n switch (props.theme) {\n case \"info\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/1a246fbb8d573348d3f1e6d6e2c1e73b790e8ddc.png\";\n case \"success\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c62ce17c572dff50aa28209bedf635fc303d18f8.png\";\n case \"warning\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/11b33735cbfddd621d1163dec26a5c240bc407f1.png\";\n case \"danger\":\n return \"https://picasso-static.xiaohongshu.com/fe-platform/4df0100d42449186672e3c4d9863ec4bce4bb23a.png\";\n default:\n return \"https://picasso-static.xiaohongshu.com/fe-platform/1a246fbb8d573348d3f1e6d6e2c1e73b790e8ddc.png\";\n }\n }, [props.theme]);\n\n const color = useMemo(() => {\n switch (props.theme) {\n case \"info\":\n return themeColor.Info2;\n case \"success\":\n return themeColor.Success2;\n case \"warning\":\n return themeColor.Warning2;\n case \"danger\":\n return themeColor.Primary2;\n default:\n return themeColor.Info2;\n }\n }, [props.theme, themeColor]);\n\n const [textWidth, setTextWidth] = useState(0);\n const [containerWidth, setContainerWidth] = useState(0);\n const scrollX = useRef(new Animated.Value(0)).current;\n\n const scrollDistance = useMemo(() => Math.max(textWidth - containerWidth, 0), [textWidth, containerWidth]);\n\n useEffect(() => {\n if (props.type === NoticeBarType.SCROLLABLE && textWidth > 0) {\n const startScrolling = () => {\n scrollX.setValue(0);\n Animated.timing(scrollX, {\n toValue: -scrollDistance,\n duration: scrollDistance * 30,\n easing: Easing.linear,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) {\n startScrolling();\n }\n });\n };\n\n startScrolling();\n }\n }, [textWidth, containerWidth, props.type, scrollDistance]);\n\n const handleLink = () => {\n props.onClick?.();\n };\n\n const handleClose = () => {\n setVisible(false);\n props.onClose?.();\n };\n\n useEffect(() => {\n setVisible(!!props.visible);\n }, [props.visible]);\n\n return _visible ? (\n <View\n style={[\n styles.container,\n { backgroundColor: color, alignItems: props.type === NoticeBarType.MUTILINE ? \"flex-start\" : \"center\" },\n props.style,\n ]}\n >\n {props.withIcon ? <Image source={{ uri: icon }} style={styles.icon} testID=\"notice-icon\" /> : <></>}\n {props.children}\n <View\n style={styles.textWrapper}\n testID=\"text-wrapper\"\n onLayout={(e) => setContainerWidth(e.nativeEvent.layout.width)}\n >\n {props.type === NoticeBarType.SCROLLABLE ? (\n <View style={{ minHeight: 18, overflow: \"scroll\", flexDirection: \"row\" }}>\n <Animated.Text\n numberOfLines={1}\n style={[{ transform: [{ translateX: scrollX }] }]}\n onLayout={(e) => setTextWidth(e.nativeEvent.layout.width)}\n >\n <Text style={styles.text}>{props.content}</Text>\n <Text style={styles.text}>{\" \"}</Text>\n <Text style={styles.text}>{props.content}</Text>\n </Animated.Text>\n </View>\n ) : (\n <Text\n style={[styles.text]}\n numberOfLines={props.type === NoticeBarType.BASIC ? 1 : undefined}\n ellipsizeMode=\"tail\"\n >\n {props.content}\n </Text>\n )}\n </View>\n {props.actionType === NoticeBarActionType.TEXTACTION ? (\n <Text style={styles.linkText} onPress={handleLink}>\n {props.actionText || jumpKey}\n </Text>\n ) : (\n <></>\n )}\n {/* 跳转icon */}\n {props.actionType === NoticeBarActionType.ICONACTION ? (\n <TouchableWithoutFeedback onPress={handleLink}>\n <Image\n testID=\"action-icon\"\n source={{\n uri: \"https://picasso-static.xiaohongshu.com/fe-platform/2708eed5e1ec88c28d5358d1496e6c8d28eaf819.png\",\n }}\n style={styles.link}\n />\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n {/* 关闭icon */}\n {props.closable ? (\n <TouchableWithoutFeedback onPress={handleClose}>\n <Image\n testID=\"close-icon\"\n source={{\n uri: \"https://picasso-static.xiaohongshu.com/fe-platform/0792412fe36bc5bed739e0a62c504b3b83caeedb.png\",\n }}\n style={styles.close}\n />\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n );\n};\n\nNoticeBar.defaultProps = NoticeBarDefaultProps;\n\nexport default NoticeBar;\n"],"names":["NoticeBar","props","useMounted","_useState","useState","_useState2","_slicedToArray","_visible","setVisible","themeColor","useThemeColor","styles","getStyles","jumpKey","useLanguage","icon","useMemo","theme","color","Info2","Success2","Warning2","Primary2","_useState3","_useState4","textWidth","setTextWidth","_useState5","_useState6","containerWidth","setContainerWidth","scrollX","useRef","Animated","Value","current","scrollDistance","Math","max","useEffect","type","NoticeBarType","SCROLLABLE","startScrolling","setValue","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","_ref","finished","handleLink","_props$onClick","onClick","call","handleClose","_props$onClose","onClose","visible","React","createElement","View","style","container","backgroundColor","alignItems","MUTILINE","withIcon","Image","source","uri","testID","Fragment","children","textWrapper","onLayout","e","nativeEvent","layout","width","minHeight","overflow","flexDirection","Text","numberOfLines","transform","translateX","text","content","BASIC","ellipsizeMode","actionType","NoticeBarActionType","TEXTACTION","linkText","onPress","actionText","ICONACTION","TouchableWithoutFeedback","link","closable","close","defaultProps","NoticeBarDefaultProps"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { memo, useEffect } from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
2
|
import { usePortalState } from './hooks/usePortalState.js';
|
|
4
3
|
import { usePortal } from './hooks/usePortal.js';
|
|
5
4
|
import './PortalContext.js';
|
|
@@ -18,9 +17,9 @@ var PortalHostComponent = function PortalHostComponent(_ref) {
|
|
|
18
17
|
};
|
|
19
18
|
}, []);
|
|
20
19
|
return /* @__PURE__ */React.createElement(React.Fragment, null, state.map(function (item, index) {
|
|
21
|
-
return
|
|
20
|
+
return /*#__PURE__*/React.cloneElement(item.node, {
|
|
22
21
|
key: index
|
|
23
|
-
}
|
|
22
|
+
});
|
|
24
23
|
}));
|
|
25
24
|
};
|
|
26
25
|
var PortalHost = /*#__PURE__*/memo(PortalHostComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalHost.js","sources":["../../../../../src/components/Portal/core/PortalHost.tsx"],"sourcesContent":["import React, { memo, useEffect } from \"react\";\nimport { View } from \"react-native\";\nimport { usePortalState } from \"./hooks/usePortalState\";\nimport { usePortal } from \"./hooks/usePortal\";\nimport { PortalHostProps } from \"../interface\";\n\nconst PortalHostComponent = ({ name }: PortalHostProps) => {\n const state = usePortalState(name);\n const { registerHost, deregisterHost } = usePortal(name);\n useEffect(() => {\n registerHost();\n return () => {\n deregisterHost();\n };\n }, []);\n\n return (\n <>\n {state.map((item, index) => {\n return
|
|
1
|
+
{"version":3,"file":"PortalHost.js","sources":["../../../../../src/components/Portal/core/PortalHost.tsx"],"sourcesContent":["import React, { memo, useEffect } from \"react\";\nimport { View } from \"react-native\";\nimport { usePortalState } from \"./hooks/usePortalState\";\nimport { usePortal } from \"./hooks/usePortal\";\nimport { PortalHostProps } from \"../interface\";\n\nconst PortalHostComponent = ({ name }: PortalHostProps) => {\n const state = usePortalState(name);\n const { registerHost, deregisterHost } = usePortal(name);\n useEffect(() => {\n registerHost();\n return () => {\n deregisterHost();\n };\n }, []);\n\n return (\n <>\n {state.map((item, index) => {\n return React.cloneElement(item.node as any, {\n key: index,\n });\n })}\n </>\n );\n};\n\nexport const PortalHost = memo(PortalHostComponent);\nPortalHost.displayName = \"PortalHost\";\n"],"names":["PortalHostComponent","_ref","name","state","usePortalState","_usePortal","usePortal","registerHost","deregisterHost","useEffect","React","createElement","Fragment","map","item","index","cloneElement","node","key","PortalHost","memo","displayName"],"mappings":";;;;;;AAMA,IAAMA,mBAAsB,GAAA,SAAtBA,mBAAsBA,CAAAC,IAAA,EAA+B;AAAA,EAAA,IAA5BC,IAAA,GAAAD,IAAA,CAAAC,IAAA,CAAA;AACvB,EAAA,IAAAC,KAAA,GAAQC,eAAeF,IAAI,CAAA,CAAA;AACjC,EAAA,IAAAG,UAAA,GAAyCC,UAAUJ,IAAI,CAAA;IAA/CK,YAAA,GAAAF,UAAA,CAAAE,YAAA;IAAcC,cAAe,GAAAH,UAAA,CAAfG,cAAe,CAAA;AACrCC,EAAAA,SAAA,CAAU,YAAM;AACDF,IAAAA,YAAA,EAAA,CAAA;AACb,IAAA,OAAO,YAAM;AACIC,MAAAA,cAAA,EAAA,CAAA;KACjB,CAAA;GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,sBAEKE,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EAAAT,KAAA,CAAMU,GAAI,CAAA,UAACC,MAAMC,KAAU,EAAA;AACnB,IAAA,oBAAAL,KAAA,CAAMM,YAAa,CAAAF,IAAA,CAAKG,IAAa,EAAA;AAC1CC,MAAAA,GAAK,EAAAH,KAAAA;AACP,KAAC,CAAA,CAAA;AACH,GAAC,CACH,CAAA,CAAA;AAEJ,CAAA,CAAA;IAEaI,UAAA,gBAAaC,KAAKpB,mBAAmB,EAAA;AAClDmB,UAAA,CAAWE,WAAc,GAAA,YAAA;;;;"}
|
|
@@ -3,7 +3,6 @@ import React, { memo, useReducer, useEffect } from 'react';
|
|
|
3
3
|
import { PortalHost } from './PortalHost.js';
|
|
4
4
|
import { PortalDispatchContext, PortalStateContext } from './PortalContext.js';
|
|
5
5
|
import { A as ACTIONS } from '../../../_chunks/CDM4vPRi.js';
|
|
6
|
-
import 'react-native';
|
|
7
6
|
import './hooks/usePortalState.js';
|
|
8
7
|
import './hooks/usePortal.js';
|
|
9
8
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalProvider.js","sources":["../../../../../src/components/Portal/core/PortalProvider.tsx"],"sourcesContent":["import React, { memo, useEffect, useReducer } from \"react\";\nimport { PortalHost } from \"./PortalHost\";\nimport { PortalDispatchContext, PortalStateContext } from \"./PortalContext\";\nimport { ACTIONS, ActionTypes, AddUpdatePortalAction, PortalType, RemovePortalAction } from \"../interface\";\nimport { PortalProviderProps } from \"../interface\";\n\nexport let INITIAL_STATE = {};\nexport const stateDispatch: any = {};\nconst registerHost = (state: Record<string, Array<PortalType>>, hostName: string) => {\n if (!(hostName in state)) {\n state[hostName] = [];\n }\n return state;\n};\n\nconst deregisterHost = (state: Record<string, Array<PortalType>>, hostName: string) => {\n delete state[hostName];\n return state;\n};\n\nconst addUpdatePortal = (state: Record<string, Array<PortalType>>, hostName: string, portalName: string, node: any) => {\n if (!(hostName in state)) {\n state = registerHost(state, hostName);\n }\n\n const index = state[hostName].findIndex((item) => item.name === portalName);\n if (index !== -1) {\n state[hostName][index].node = node;\n } else {\n state[hostName].push({\n name: portalName,\n node,\n });\n }\n return state;\n};\n\nconst removePortal = (state: Record<string, Array<PortalType>>, hostName: string, portalName: string) => {\n if (!(hostName in state)) {\n return state;\n }\n\n const index = state[hostName].findIndex((item) => item.name === portalName);\n if (index !== -1) state[hostName].splice(index, 1);\n return state;\n};\n\nconst reducer = (state: Record<string, Array<PortalType>>, action: ActionTypes) => {\n const { type } = action;\n let clonedState = { ...state };\n switch (type) {\n case ACTIONS.REGISTER_HOST:\n return registerHost(clonedState, action.hostName);\n case ACTIONS.DEREGISTER_HOST:\n return deregisterHost(clonedState, action.hostName);\n case ACTIONS.ADD_UPDATE_PORTAL:\n return addUpdatePortal(\n clonedState,\n action.hostName,\n (action as AddUpdatePortalAction).portalName,\n (action as AddUpdatePortalAction).node,\n );\n case ACTIONS.REMOVE_PORTAL:\n return removePortal(clonedState, action.hostName, (action as RemovePortalAction).portalName);\n default:\n return state;\n }\n};\n\nconst PortalProviderComponent = ({\n rootHostName = \"root\",\n shouldAddRootHost = true,\n children,\n}: PortalProviderProps) => {\n const [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n useEffect(() => {\n stateDispatch[rootHostName] = {\n dispatch: dispatch,\n };\n }, []);\n return (\n <PortalDispatchContext.Provider value={dispatch}>\n <PortalStateContext.Provider value={state}>\n {children}\n {shouldAddRootHost && <PortalHost name={rootHostName} />}\n </PortalStateContext.Provider>\n </PortalDispatchContext.Provider>\n );\n};\n\nexport const PortalProvider = memo(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\n\nexport class PortalManager {\n dispatch: React.Dispatch<ActionTypes>;\n hostName?: string;\n constructor(props: { dispatch: React.Dispatch<ActionTypes>; hostName?: string }) {\n this.dispatch = props.dispatch;\n this.hostName = props.hostName || \"root\";\n }\n\n registerHost = (hostName: string) => {\n this.dispatch({\n type: ACTIONS.REGISTER_HOST,\n hostName,\n });\n };\n\n deregisterHost = (hostName: string) => {\n this.dispatch({\n type: ACTIONS.DEREGISTER_HOST,\n hostName,\n });\n };\n\n addPortal = (hostName: string, portalName: string, node: any) => {\n this.dispatch({\n type: ACTIONS.ADD_UPDATE_PORTAL,\n hostName,\n portalName,\n node,\n });\n };\n\n addUpdatePortal = (hostName: string, portalName: string, node: any) => {\n this.addPortal(hostName, portalName, node);\n };\n\n removePortal = (hostName: string, portalName: string) => {\n this.dispatch({\n type: ACTIONS.REMOVE_PORTAL,\n hostName,\n portalName,\n });\n };\n\n componentDidMount() {\n this.registerHost(this.hostName!);\n }\n\n componentWillUnmount() {\n this.deregisterHost(this.hostName!);\n }\n}\n"],"names":["INITIAL_STATE","stateDispatch","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","splice","reducer","action","type","clonedState","_objectSpread","ACTIONS","REGISTER_HOST","DEREGISTER_HOST","ADD_UPDATE_PORTAL","REMOVE_PORTAL","PortalProviderComponent","_ref$rootHostName","_ref","rootHostName","_ref$shouldAddRootHos","shouldAddRootHost","children","_useReducer","useReducer","_useReducer2","_slicedToArray","dispatch","useEffect","PortalDispatchContext","Provider","value","PortalStateContext","React","createElement","PortalHost","PortalProvider","memo","displayName","PortalManager","props","_this","_classCallCheck","__publicField","addPortal","_createClass","key","componentDidMount","componentWillUnmount"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PortalProvider.js","sources":["../../../../../src/components/Portal/core/PortalProvider.tsx"],"sourcesContent":["import React, { memo, useEffect, useReducer } from \"react\";\nimport { PortalHost } from \"./PortalHost\";\nimport { PortalDispatchContext, PortalStateContext } from \"./PortalContext\";\nimport { ACTIONS, ActionTypes, AddUpdatePortalAction, PortalType, RemovePortalAction } from \"../interface\";\nimport { PortalProviderProps } from \"../interface\";\n\nexport let INITIAL_STATE = {};\nexport const stateDispatch: any = {};\nconst registerHost = (state: Record<string, Array<PortalType>>, hostName: string) => {\n if (!(hostName in state)) {\n state[hostName] = [];\n }\n return state;\n};\n\nconst deregisterHost = (state: Record<string, Array<PortalType>>, hostName: string) => {\n delete state[hostName];\n return state;\n};\n\nconst addUpdatePortal = (state: Record<string, Array<PortalType>>, hostName: string, portalName: string, node: any) => {\n if (!(hostName in state)) {\n state = registerHost(state, hostName);\n }\n\n const index = state[hostName].findIndex((item) => item.name === portalName);\n if (index !== -1) {\n state[hostName][index].node = node;\n } else {\n state[hostName].push({\n name: portalName,\n node,\n });\n }\n return state;\n};\n\nconst removePortal = (state: Record<string, Array<PortalType>>, hostName: string, portalName: string) => {\n if (!(hostName in state)) {\n return state;\n }\n\n const index = state[hostName].findIndex((item) => item.name === portalName);\n if (index !== -1) state[hostName].splice(index, 1);\n return state;\n};\n\nconst reducer = (state: Record<string, Array<PortalType>>, action: ActionTypes) => {\n const { type } = action;\n let clonedState = { ...state };\n switch (type) {\n case ACTIONS.REGISTER_HOST:\n return registerHost(clonedState, action.hostName);\n case ACTIONS.DEREGISTER_HOST:\n return deregisterHost(clonedState, action.hostName);\n case ACTIONS.ADD_UPDATE_PORTAL:\n return addUpdatePortal(\n clonedState,\n action.hostName,\n (action as AddUpdatePortalAction).portalName,\n (action as AddUpdatePortalAction).node,\n );\n case ACTIONS.REMOVE_PORTAL:\n return removePortal(clonedState, action.hostName, (action as RemovePortalAction).portalName);\n default:\n return state;\n }\n};\n\nconst PortalProviderComponent = ({\n rootHostName = \"root\",\n shouldAddRootHost = true,\n children,\n}: PortalProviderProps) => {\n const [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n useEffect(() => {\n stateDispatch[rootHostName] = {\n dispatch: dispatch,\n };\n }, []);\n return (\n <PortalDispatchContext.Provider value={dispatch}>\n <PortalStateContext.Provider value={state}>\n {children}\n {shouldAddRootHost && <PortalHost name={rootHostName} />}\n </PortalStateContext.Provider>\n </PortalDispatchContext.Provider>\n );\n};\n\nexport const PortalProvider = memo(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\n\nexport class PortalManager {\n dispatch: React.Dispatch<ActionTypes>;\n hostName?: string;\n constructor(props: { dispatch: React.Dispatch<ActionTypes>; hostName?: string }) {\n this.dispatch = props.dispatch;\n this.hostName = props.hostName || \"root\";\n }\n\n registerHost = (hostName: string) => {\n this.dispatch({\n type: ACTIONS.REGISTER_HOST,\n hostName,\n });\n };\n\n deregisterHost = (hostName: string) => {\n this.dispatch({\n type: ACTIONS.DEREGISTER_HOST,\n hostName,\n });\n };\n\n addPortal = (hostName: string, portalName: string, node: any) => {\n this.dispatch({\n type: ACTIONS.ADD_UPDATE_PORTAL,\n hostName,\n portalName,\n node,\n });\n };\n\n addUpdatePortal = (hostName: string, portalName: string, node: any) => {\n this.addPortal(hostName, portalName, node);\n };\n\n removePortal = (hostName: string, portalName: string) => {\n this.dispatch({\n type: ACTIONS.REMOVE_PORTAL,\n hostName,\n portalName,\n });\n };\n\n componentDidMount() {\n this.registerHost(this.hostName!);\n }\n\n componentWillUnmount() {\n this.deregisterHost(this.hostName!);\n }\n}\n"],"names":["INITIAL_STATE","stateDispatch","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","splice","reducer","action","type","clonedState","_objectSpread","ACTIONS","REGISTER_HOST","DEREGISTER_HOST","ADD_UPDATE_PORTAL","REMOVE_PORTAL","PortalProviderComponent","_ref$rootHostName","_ref","rootHostName","_ref$shouldAddRootHos","shouldAddRootHost","children","_useReducer","useReducer","_useReducer2","_slicedToArray","dispatch","useEffect","PortalDispatchContext","Provider","value","PortalStateContext","React","createElement","PortalHost","PortalProvider","memo","displayName","PortalManager","props","_this","_classCallCheck","__publicField","addPortal","_createClass","key","componentDidMount","componentWillUnmount"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xhsreds/reds-rn-next",
|
|
3
|
-
"version": "0.10.1-
|
|
3
|
+
"version": "0.10.1-beta202512041155",
|
|
4
4
|
"author": "贾斌(呀哈) <jiabin@xiaohongshu.com>",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"dependencies": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"react-native-fs": "2.20.0",
|
|
27
27
|
"react-native-svg": "13.14.0",
|
|
28
28
|
"@xhs/react-native-harmony": "*",
|
|
29
|
-
"@xhsreds/reds-token-next": "0.10.1-
|
|
29
|
+
"@xhsreds/reds-token-next": "0.10.1-beta202512041155"
|
|
30
30
|
},
|
|
31
31
|
"peerDependenciesMeta": {
|
|
32
32
|
"ozone-schema-web": {
|
|
@@ -206,9 +206,15 @@ const Image = ({
|
|
|
206
206
|
};
|
|
207
207
|
|
|
208
208
|
const colorMode = useColorMode();
|
|
209
|
-
|
|
210
209
|
return (
|
|
211
|
-
<View
|
|
210
|
+
<View
|
|
211
|
+
style={{
|
|
212
|
+
borderRadius: borderRadius || style?.borderRadius,
|
|
213
|
+
...(style as {}),
|
|
214
|
+
height: ((height || style?.height || 0) as number) + (style?.borderWidth || 0) * 2,
|
|
215
|
+
width: ((width || style?.width || 0) as number) + (style?.borderWidth || 0) * 2,
|
|
216
|
+
}}
|
|
217
|
+
>
|
|
212
218
|
{imageStatus !== IMAGE_STATUS.HIDE && (
|
|
213
219
|
<RNImage
|
|
214
220
|
{...props}
|
|
@@ -225,7 +231,7 @@ const Image = ({
|
|
|
225
231
|
style={{
|
|
226
232
|
width: width || style?.width,
|
|
227
233
|
height: height || style?.height,
|
|
228
|
-
borderRadius,
|
|
234
|
+
borderRadius: borderRadius || style?.borderRadius,
|
|
229
235
|
// opacity: imageStatus === IMAGE_STATUS.LOADED ? 1 : 0,
|
|
230
236
|
}}
|
|
231
237
|
// @ts-ignore
|
|
@@ -235,12 +241,11 @@ const Image = ({
|
|
|
235
241
|
{imageStatus === IMAGE_STATUS.LOADING && loadStyle !== TLoadStyle.NONE && (
|
|
236
242
|
<View
|
|
237
243
|
style={{
|
|
238
|
-
width,
|
|
239
|
-
height,
|
|
240
|
-
borderRadius,
|
|
244
|
+
width: width || style?.width,
|
|
245
|
+
height: height || style?.height,
|
|
246
|
+
borderRadius: borderRadius || style?.borderRadius,
|
|
241
247
|
...styles.loadingContainer,
|
|
242
248
|
backgroundColor: loadStyle === TLoadStyle.AVE ? aveColor : styles.loadingContainer.backgroundColor,
|
|
243
|
-
...style,
|
|
244
249
|
}}
|
|
245
250
|
>
|
|
246
251
|
{loadStyle === TLoadStyle.BLUR && (
|
|
@@ -249,7 +254,7 @@ const Image = ({
|
|
|
249
254
|
style={{
|
|
250
255
|
width: width || style?.width,
|
|
251
256
|
height: height || style?.height,
|
|
252
|
-
borderRadius,
|
|
257
|
+
borderRadius: borderRadius || style?.borderRadius,
|
|
253
258
|
}}
|
|
254
259
|
// @ts-ignore
|
|
255
260
|
apmBiz={props.apmBiz}
|
|
@@ -265,7 +270,7 @@ const Image = ({
|
|
|
265
270
|
onPress={(e) => {
|
|
266
271
|
onReload(e);
|
|
267
272
|
}}
|
|
268
|
-
style={{ width, height,
|
|
273
|
+
style={{ width, height, ...styles.loadingContainer }}
|
|
269
274
|
>
|
|
270
275
|
<RNImage
|
|
271
276
|
style={{ width: 40, height: 40 }}
|
|
@@ -16,24 +16,23 @@ export default function App() {
|
|
|
16
16
|
return (
|
|
17
17
|
<View style={{ display: "flex", flexDirection: "row" }}>
|
|
18
18
|
<ScrollView style={{ backgroundColor: "#50796633" }}>
|
|
19
|
-
<Desc>基础用法</Desc>
|
|
19
|
+
{/* <Desc>基础用法</Desc>
|
|
20
20
|
|
|
21
21
|
<Image width={150} height={150} borderRadius={30} source={{ uri: imageUrl }} abortApmCollection={true}></Image>
|
|
22
22
|
<Br />
|
|
23
23
|
|
|
24
|
-
<Desc>Image组件加边框</Desc>
|
|
24
|
+
<Desc>Image组件加边框</Desc> */}
|
|
25
25
|
|
|
26
26
|
<Image
|
|
27
27
|
width={150}
|
|
28
28
|
height={150}
|
|
29
|
-
borderRadius={30}
|
|
30
29
|
source={{ uri: imageUrl }}
|
|
31
30
|
abortApmCollection={true}
|
|
32
31
|
style={{ borderWidth: 1, borderStyle: "solid", borderColor: "red", borderRadius: 50 }}
|
|
33
32
|
></Image>
|
|
34
33
|
<Br />
|
|
35
34
|
|
|
36
|
-
<Desc>加载时显示主要色</Desc>
|
|
35
|
+
{/* <Desc>加载时显示主要色</Desc>
|
|
37
36
|
<Image loadStyle={TLoadStyle.AVE} width={150} height={150} borderRadius={30} src={imageUrl}></Image>
|
|
38
37
|
|
|
39
38
|
<Br />
|
|
@@ -94,7 +93,7 @@ export default function App() {
|
|
|
94
93
|
onReload={() => {
|
|
95
94
|
setImageUrl2(imageUrl);
|
|
96
95
|
}}
|
|
97
|
-
></Image>
|
|
96
|
+
></Image> */}
|
|
98
97
|
</ScrollView>
|
|
99
98
|
</View>
|
|
100
99
|
);
|
|
@@ -122,7 +122,9 @@ const NoticeBar = (props: RedsNoticeBar) => {
|
|
|
122
122
|
)}
|
|
123
123
|
</View>
|
|
124
124
|
{props.actionType === NoticeBarActionType.TEXTACTION ? (
|
|
125
|
-
<Text style={styles.linkText}
|
|
125
|
+
<Text style={styles.linkText} onPress={handleLink}>
|
|
126
|
+
{props.actionText || jumpKey}
|
|
127
|
+
</Text>
|
|
126
128
|
) : (
|
|
127
129
|
<></>
|
|
128
130
|
)}
|