@xhsreds/reds-rn-next 0.10.1-beta202512021041 → 0.10.1-beta202512022142
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-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-17.json +1 -1
- package/coverage/.tmp/coverage-18.json +1 -1
- package/coverage/.tmp/coverage-19.json +1 -1
- package/coverage/.tmp/coverage-2.json +1 -1
- package/coverage/.tmp/coverage-20.json +1 -1
- package/coverage/.tmp/coverage-21.json +1 -1
- package/coverage/.tmp/coverage-22.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-29.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-41.json +1 -1
- package/coverage/.tmp/coverage-42.json +1 -1
- package/coverage/.tmp/coverage-43.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/Image/Image.js +13 -13
- package/lib/cjs/components/Image/Image.js.map +1 -1
- package/lib/cjs/components/Portal/core/PortalHost.js +3 -1
- package/lib/cjs/components/Portal/core/PortalHost.js.map +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/Portal/core/PortalHost.js +3 -1
- package/lib/esm/components/Portal/core/PortalHost.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/Portal/core/PortalHost.tsx +4 -1
- package/src/i18n/@types/resources.d.ts +27 -27
- package/src/i18n/index.json +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"/builds/fe/infra/reds/packages/reds-rn/src/components/
|
|
1
|
+
{"/builds/fe/infra/reds/packages/reds-rn/src/components/Tab/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/Tab/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":42},"end":{"line":6,"column":22}},"1":{"start":{"line":2,"column":2},"end":{"line":2,"column":41}},"2":{"start":{"line":3,"column":2},"end":{"line":3,"column":43}},"3":{"start":{"line":4,"column":2},"end":{"line":4,"column":35}},"4":{"start":{"line":5,"column":2},"end":{"line":5,"column":23}},"5":{"start":{"line":7,"column":41},"end":{"line":12,"column":21}},"6":{"start":{"line":8,"column":2},"end":{"line":8,"column":34}},"7":{"start":{"line":9,"column":2},"end":{"line":9,"column":36}},"8":{"start":{"line":10,"column":2},"end":{"line":10,"column":34}},"9":{"start":{"line":11,"column":2},"end":{"line":11,"column":22}},"10":{"start":{"line":13,"column":42},"end":{"line":17,"column":22}},"11":{"start":{"line":14,"column":2},"end":{"line":14,"column":43}},"12":{"start":{"line":15,"column":2},"end":{"line":15,"column":33}},"13":{"start":{"line":16,"column":2},"end":{"line":16,"column":23}},"14":{"start":{"line":18,"column":43},"end":{"line":24,"column":23}},"15":{"start":{"line":19,"column":2},"end":{"line":19,"column":34}},"16":{"start":{"line":20,"column":2},"end":{"line":20,"column":38}},"17":{"start":{"line":21,"column":2},"end":{"line":21,"column":36}},"18":{"start":{"line":22,"column":2},"end":{"line":22,"column":36}},"19":{"start":{"line":23,"column":2},"end":{"line":23,"column":24}},"20":{"start":{"line":25,"column":31},"end":{"line":37,"column":1}},"21":{"start":{"line":38,"column":32},"end":{"line":47,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":43},"end":{"line":1,"column":44}},"loc":{"start":{"line":1,"column":62},"end":{"line":6,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":42},"end":{"line":7,"column":43}},"loc":{"start":{"line":7,"column":60},"end":{"line":12,"column":1}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":43},"end":{"line":13,"column":44}},"loc":{"start":{"line":13,"column":62},"end":{"line":17,"column":1}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":44},"end":{"line":18,"column":45}},"loc":{"start":{"line":18,"column":64},"end":{"line":24,"column":1}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":3},"end":{"line":6,"column":21}},"type":"binary-expr","locations":[{"start":{"line":6,"column":3},"end":{"line":6,"column":15}},{"start":{"line":6,"column":19},"end":{"line":6,"column":21}}],"line":6},"1":{"loc":{"start":{"line":12,"column":3},"end":{"line":12,"column":20}},"type":"binary-expr","locations":[{"start":{"line":12,"column":3},"end":{"line":12,"column":14}},{"start":{"line":12,"column":18},"end":{"line":12,"column":20}}],"line":12},"2":{"loc":{"start":{"line":17,"column":3},"end":{"line":17,"column":21}},"type":"binary-expr","locations":[{"start":{"line":17,"column":3},"end":{"line":17,"column":15}},{"start":{"line":17,"column":19},"end":{"line":17,"column":21}}],"line":17},"3":{"loc":{"start":{"line":24,"column":3},"end":{"line":24,"column":22}},"type":"binary-expr","locations":[{"start":{"line":24,"column":3},"end":{"line":24,"column":16}},{"start":{"line":24,"column":20},"end":{"line":24,"column":22}}],"line":24}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1},"f":{"0":1,"1":1,"2":1,"3":1},"b":{"0":[1,1],"1":[1,1],"2":[1,1],"3":[1,1]},"inputSourceMap":{"version":3,"sources":["/builds/fe/infra/reds/packages/reds-rn/src/components/Tab/interface/index.ts"],"sourcesContent":["import { ReactNode } from \"react\";\nimport { ImageStyle, TextStyle } from \"react-native\";\nimport { RedsIcon } from \"../../Icon/interface\";\nimport { RedsBadge } from \"../../Badge/interface\";\nexport interface TabItemType {\n name?: string;\n image?: string;\n activeImage?: string;\n imageStyle?: ImageStyle;\n value: string;\n iconProps?: RedsIcon;\n badgeProps?: any;\n labelNumber?: number;\n}\n\nexport const enum TabLabelType {\n leftIcon = \"leftIcon\",\n rightIcon = \"rightIcon\",\n digit = \"digit\",\n}\nexport const enum TabSizeType {\n small = \"small\",\n normal = \"normal\",\n large = \"large\",\n}\n\nexport const enum TabThemeType {\n underline = \"underline\",\n text = \"text\",\n}\n\nexport const enum TabLayoutType {\n left = \"left\",\n middle = \"middle\",\n space = \"space\",\n right = \"right\",\n}\nexport interface RedsTab {\n theme?: TabThemeType;\n size?: TabSizeType;\n labelType?: TabLabelType;\n layout?: TabLayoutType;\n badge?: boolean;\n containerStyle?: any;\n onChange?: (value: string, index: number) => any;\n spaceWidth?: number;\n tabPadding?: number;\n active?: string;\n children: ReactNode[];\n key?: string | number;\n contentOffset?: number;\n textStyle?: TextStyle;\n activeTextStyle?: TextStyle;\n}\n\nexport interface RedsTabEvent {}\nexport const TabDefaultProps = {\n theme: TabThemeType.underline,\n size: TabSizeType.normal,\n labelType: TabLabelType.leftIcon,\n layout: TabLayoutType.left,\n badge: false,\n spaceWidth: 12,\n tabPadding: 0,\n active: \"\",\n contentOffset: 0,\n textStyle: {},\n activeTextStyle: {},\n};\n\nexport interface TabChild {\n name?: string;\n image?: string;\n imageStyle?: ImageStyle;\n activeImage?: string;\n value: string;\n labelNumber?: number;\n iconProps?: RedsIcon;\n badgeProps?: RedsBadge;\n children: ReactNode;\n}\nexport interface RedsTabs {\n theme?: TabThemeType;\n size?: TabSizeType;\n labelType?: TabLabelType;\n layout?: TabLayoutType;\n badge?: boolean;\n containerStyle?: any;\n onChange?: (value: string, index: number) => any;\n spaceWidth?: number;\n tabPadding?: number;\n active?: string;\n children: ReactNode[];\n}\n\nexport const TabsDefaultProps = {\n theme: TabThemeType.underline,\n size: TabSizeType.normal,\n labelType: TabLabelType.leftIcon,\n layout: TabLayoutType.space,\n badge: false,\n spaceWidth: 12,\n tabPadding: 24,\n active: \"\",\n};\n"],"mappings":"AAeO,WAAW,eAAX,kBAAWA,kBAAX;AACL,EAAAA,cAAA,cAAW;AACX,EAAAA,cAAA,eAAY;AACZ,EAAAA,cAAA,WAAQ;AAHQ,SAAAA;AAAA,GAAA;AAKX,WAAW,cAAX,kBAAWC,iBAAX;AACL,EAAAA,aAAA,WAAQ;AACR,EAAAA,aAAA,YAAS;AACT,EAAAA,aAAA,WAAQ;AAHQ,SAAAA;AAAA,GAAA;AAMX,WAAW,eAAX,kBAAWC,kBAAX;AACL,EAAAA,cAAA,eAAY;AACZ,EAAAA,cAAA,UAAO;AAFS,SAAAA;AAAA,GAAA;AAKX,WAAW,gBAAX,kBAAWC,mBAAX;AACL,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,WAAQ;AACR,EAAAA,eAAA,WAAQ;AAJQ,SAAAA;AAAA,GAAA;AAyBX,aAAM,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,WAAW,CAAC;AAAA,EACZ,iBAAiB,CAAC;AACpB;AA2BO,aAAM,mBAAmB;AAAA,EAC9B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,QAAQ;AACV;","names":["TabLabelType","TabSizeType","TabThemeType","TabLayoutType"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"94c9502f2b3612dd537ea197077b6f626891006b"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"/builds/fe/infra/reds/packages/reds-rn/src/components/
|
|
1
|
+
{"/builds/fe/infra/reds/packages/reds-rn/src/components/TextView/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/TextView/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":36},"end":{"line":13,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["/builds/fe/infra/reds/packages/reds-rn/src/components/TextView/interface/index.ts"],"sourcesContent":["import { ViewStyle } from \"react-native\";\ntype inputTypeRN = \"default\" | \"number-pad\" | \"decimal-pad\" | \"numeric\" | \"email-address\" | \"phone-pad\" | \"url\";\nexport interface RedsTextView {\n modelValue?: string;\n placeholder?: string;\n layout?: \"primary\" | \"normal\" | \"basic\";\n type?: inputTypeRN;\n maxLength?: number;\n showCount?: boolean;\n isFormItem?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n clearable?: boolean;\n autofocus?: boolean;\n rows?: number;\n style?: ViewStyle;\n onChange?: (value: string) => any;\n onClear?: (value: string) => any;\n onFocus?: (event: any) => any;\n onBlur?: (event: any) => any;\n containerStyle?: ViewStyle;\n actionLayout?: \"horizontal\" | \"vertical\";\n placeholderTextColor?: String;\n ref?: any;\n returnKeyType?: string;\n onSubmitEditing?: () => void;\n}\n\nexport const TextViewDefaultProps = {\n layout: \"basic\",\n type: \"default\" as inputTypeRN,\n showCount: false,\n isFormItem: false,\n disabled: false,\n readonly: false,\n clearable: false,\n autofocus: false,\n rows: 3,\n actionLayout: \"vertical\",\n returnKeyType: \"next\",\n};\n"],"mappings":"AA4BO,aAAM,uBAAuB;AAAA,EAClC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,MAAM;AAAA,EACN,cAAc;AAAA,EACd,eAAe;AACjB;","names":[]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c22d4028256df8ef10d5d9ab5d49aa48b4fff907"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"/builds/fe/infra/reds/packages/reds-rn/src/components/
|
|
1
|
+
{"/builds/fe/infra/reds/packages/reds-rn/src/components/DatePicker/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/DatePicker/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":44},"end":{"line":11,"column":24}},"1":{"start":{"line":2,"column":2},"end":{"line":2,"column":51}},"2":{"start":{"line":3,"column":2},"end":{"line":3,"column":45}},"3":{"start":{"line":4,"column":2},"end":{"line":4,"column":35}},"4":{"start":{"line":5,"column":2},"end":{"line":5,"column":35}},"5":{"start":{"line":6,"column":2},"end":{"line":6,"column":47}},"6":{"start":{"line":7,"column":2},"end":{"line":7,"column":59}},"7":{"start":{"line":8,"column":2},"end":{"line":8,"column":71}},"8":{"start":{"line":9,"column":2},"end":{"line":9,"column":59}},"9":{"start":{"line":10,"column":2},"end":{"line":10,"column":25}},"10":{"start":{"line":12,"column":38},"end":{"line":24,"column":1}},"11":{"start":{"line":15,"column":24},"end":{"line":15,"column":29}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":45},"end":{"line":1,"column":46}},"loc":{"start":{"line":1,"column":66},"end":{"line":11,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":13},"end":{"line":15,"column":14}},"loc":{"start":{"line":15,"column":24},"end":{"line":15,"column":29}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":13}},"loc":{"start":{"line":16,"column":23},"end":{"line":17,"column":3}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":12},"end":{"line":18,"column":13}},"loc":{"start":{"line":18,"column":18},"end":{"line":19,"column":3}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":20,"column":13},"end":{"line":20,"column":14}},"loc":{"start":{"line":20,"column":24},"end":{"line":21,"column":3}},"line":20}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":3},"end":{"line":11,"column":23}},"type":"binary-expr","locations":[{"start":{"line":11,"column":3},"end":{"line":11,"column":17}},{"start":{"line":11,"column":21},"end":{"line":11,"column":23}}],"line":11}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0},"f":{"0":1,"1":0,"2":0,"3":0,"4":0},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"sources":["/builds/fe/infra/reds/packages/reds-rn/src/components/DatePicker/interface/index.ts"],"sourcesContent":["export enum DatePickerMode {\n YearMonthDay = \"yearmonthday\",\n YearMonth = \"yearmonth\",\n Year = \"year\",\n Hour = \"hour\",\n HourMinute = \"hourminute\",\n HourMinuteSecond = \"hourminutesecond\",\n YearMonthDayHourMinute = \"yearmonthdayhourminute\",\n YearMonthDayHour = \"yearmonthdayhour\",\n}\nexport interface RedsDatePicker {\n visible: boolean;\n value: string;\n cancelText?: string;\n mode?: DatePickerMode;\n startYear?: number;\n endYear?: number;\n startTime?: string;\n endTime?: string;\n label: string;\n formatter?: (value: string) => any;\n onChange?: (value: string) => void;\n onCancel?: () => void;\n onConfirm?: (value: string) => void;\n isDatePattern?: boolean;\n closeText?: string;\n mask?: boolean;\n hostName?: string;\n}\n\nexport interface RedsDatePickerEvent {}\nexport const DatePickerDefaultProps = {\n visible: false,\n mode: DatePickerMode.YearMonthDay,\n formatter: (value: string) => value,\n onChange: (value: string) => {},\n onCancel: () => {},\n onConfirm: (value: string) => {},\n isDatePattern: false,\n hostName: \"root\",\n};\n"],"mappings":"AAAO,WAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,kBAAe;AACf,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,UAAO;AACP,EAAAA,gBAAA,UAAO;AACP,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,sBAAmB;AACnB,EAAAA,gBAAA,4BAAyB;AACzB,EAAAA,gBAAA,sBAAmB;AART,SAAAA;AAAA,GAAA;AA+BL,aAAM,yBAAyB;AAAA,EACpC,SAAS;AAAA,EACT,MAAM;AAAA,EACN,WAAW,CAAC,UAAkB;AAAA,EAC9B,UAAU,CAAC,UAAkB;AAAA,EAAC;AAAA,EAC9B,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,WAAW,CAAC,UAAkB;AAAA,EAAC;AAAA,EAC/B,eAAe;AAAA,EACf,UAAU;AACZ;","names":["DatePickerMode"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9e76fc27de5c3917033e01222a48d018ce0fa2fd"},"/builds/fe/infra/reds/packages/reds-rn/src/components/Picker/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/Picker/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":34},"end":{"line":12,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":13},"end":{"line":2,"column":14}},"loc":{"start":{"line":2,"column":19},"end":{"line":3,"column":3}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":12},"end":{"line":4,"column":13}},"loc":{"start":{"line":4,"column":18},"end":{"line":5,"column":3}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":6,"column":12},"end":{"line":6,"column":13}},"loc":{"start":{"line":6,"column":18},"end":{"line":7,"column":3}},"line":6}},"branchMap":{},"s":{"0":1},"f":{"0":0,"1":0,"2":0},"b":{},"inputSourceMap":{"version":3,"sources":["/builds/fe/infra/reds/packages/reds-rn/src/components/Picker/interface/index.ts"],"sourcesContent":["import { GestureResponderEvent } from \"react-native\";\nimport { lightColor } from \"@xhs/reds-token-next\";\nimport { SheetsType } from \"../../Sheets\";\n\ntype SheetsSize = SheetsType.SheetsSize;\n\nexport interface Column {\n label: string;\n value: string;\n}\nexport interface RedsPicker {\n onConfirm?: (val: string[]) => void;\n onCancel?: () => void;\n onChange?: (val: string[]) => void;\n columns: Column[][];\n value: string[];\n visible: boolean;\n accessibility?: Object;\n hostName?: string;\n bottom?: any;\n}\n\nexport interface RedsPickerEvent {}\nexport const PickerDefaultProps = {\n onConfirm: () => {},\n onCancel: () => {},\n onChange: () => {},\n columns: [],\n value: [],\n visible: false,\n accessibility: {},\n};\n"],"mappings":"AAuBO,aAAM,qBAAqB;AAAA,EAChC,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,SAAS,CAAC;AAAA,EACV,OAAO,CAAC;AAAA,EACR,SAAS;AAAA,EACT,eAAe,CAAC;AAClB;","names":[]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a054bd43402933bffcf3758b7f508a8aa18b200a"}}
|
|
@@ -177,11 +177,12 @@ var Image = function Image(_ref) {
|
|
|
177
177
|
};
|
|
178
178
|
var colorMode = components_ConfigProvider_hooks_themeToken_useColorMode.useColorMode();
|
|
179
179
|
return /* @__PURE__ */React.createElement(reactNative.View, {
|
|
180
|
-
style: _rollupPluginBabelHelpers._objectSpread2({
|
|
181
|
-
borderRadius: borderRadius
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
180
|
+
style: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({
|
|
181
|
+
borderRadius: borderRadius || (style === null || style === void 0 ? void 0 : style.borderRadius)
|
|
182
|
+
}, style), {}, {
|
|
183
|
+
height: (height || (style === null || style === void 0 ? void 0 : style.height) || 0) + ((style === null || style === void 0 ? void 0 : style.borderWidth) || 0) * 2,
|
|
184
|
+
width: (width || (style === null || style === void 0 ? void 0 : style.width) || 0) + ((style === null || style === void 0 ? void 0 : style.borderWidth) || 0) * 2
|
|
185
|
+
})
|
|
185
186
|
}, imageStatus !== components_Image_interface_index.IMAGE_STATUS.HIDE && /* @__PURE__ */React.createElement(reactNative.Image, _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, props), {}, {
|
|
186
187
|
source: formatSource,
|
|
187
188
|
onLoadStart: onLoadStart,
|
|
@@ -196,24 +197,24 @@ var Image = function Image(_ref) {
|
|
|
196
197
|
style: {
|
|
197
198
|
width: width || (style === null || style === void 0 ? void 0 : style.width),
|
|
198
199
|
height: height || (style === null || style === void 0 ? void 0 : style.height),
|
|
199
|
-
borderRadius: borderRadius
|
|
200
|
+
borderRadius: borderRadius || (style === null || style === void 0 ? void 0 : style.borderRadius)
|
|
200
201
|
// opacity: imageStatus === IMAGE_STATUS.LOADED ? 1 : 0,
|
|
201
202
|
},
|
|
202
203
|
apmBiz: props.apmBiz
|
|
203
204
|
})), imageStatus === components_Image_interface_index.IMAGE_STATUS.LOADING && loadStyle !== components_Image_interface_index.TLoadStyle.NONE && /* @__PURE__ */React.createElement(reactNative.View, {
|
|
204
205
|
style: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({
|
|
205
|
-
width: width,
|
|
206
|
-
height: height,
|
|
207
|
-
borderRadius: borderRadius
|
|
206
|
+
width: width || (style === null || style === void 0 ? void 0 : style.width),
|
|
207
|
+
height: height || (style === null || style === void 0 ? void 0 : style.height),
|
|
208
|
+
borderRadius: borderRadius || (style === null || style === void 0 ? void 0 : style.borderRadius)
|
|
208
209
|
}, components_Image_styles.default.loadingContainer), {}, {
|
|
209
210
|
backgroundColor: loadStyle === components_Image_interface_index.TLoadStyle.AVE ? aveColor : components_Image_styles.default.loadingContainer.backgroundColor
|
|
210
|
-
}
|
|
211
|
+
})
|
|
211
212
|
}, loadStyle === components_Image_interface_index.TLoadStyle.BLUR && /* @__PURE__ */React.createElement(reactNative.Image, {
|
|
212
213
|
source: blurSource,
|
|
213
214
|
style: {
|
|
214
215
|
width: width || (style === null || style === void 0 ? void 0 : style.width),
|
|
215
216
|
height: height || (style === null || style === void 0 ? void 0 : style.height),
|
|
216
|
-
borderRadius: borderRadius
|
|
217
|
+
borderRadius: borderRadius || (style === null || style === void 0 ? void 0 : style.borderRadius)
|
|
217
218
|
},
|
|
218
219
|
apmBiz: props.apmBiz
|
|
219
220
|
}), loadStyle === components_Image_interface_index.TLoadStyle.LOADING && /* @__PURE__ */React.createElement(components_Image_CircularProgress.default, {
|
|
@@ -225,8 +226,7 @@ var Image = function Image(_ref) {
|
|
|
225
226
|
},
|
|
226
227
|
style: _rollupPluginBabelHelpers._objectSpread2({
|
|
227
228
|
width: width,
|
|
228
|
-
height: height
|
|
229
|
-
borderRadius: borderRadius
|
|
229
|
+
height: height
|
|
230
230
|
}, components_Image_styles.default.loadingContainer)
|
|
231
231
|
}, /* @__PURE__ */React.createElement(reactNative.Image, {
|
|
232
232
|
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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"}
|
|
@@ -19,7 +19,9 @@ var PortalHostComponent = function PortalHostComponent(_ref) {
|
|
|
19
19
|
};
|
|
20
20
|
}, []);
|
|
21
21
|
return /* @__PURE__ */React.createElement(React.Fragment, null, state.map(function (item, index) {
|
|
22
|
-
return item.node
|
|
22
|
+
return /*#__PURE__*/React.cloneElement(item.node, {
|
|
23
|
+
key: index
|
|
24
|
+
});
|
|
23
25
|
}));
|
|
24
26
|
};
|
|
25
27
|
var PortalHost = /*#__PURE__*/React.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 { 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 item.node;\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","node","PortalHost","memo","displayName"],"mappings":";;;;;;;;
|
|
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;;;;"}
|
|
@@ -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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"}
|
|
@@ -17,7 +17,9 @@ var PortalHostComponent = function PortalHostComponent(_ref) {
|
|
|
17
17
|
};
|
|
18
18
|
}, []);
|
|
19
19
|
return /* @__PURE__ */React.createElement(React.Fragment, null, state.map(function (item, index) {
|
|
20
|
-
return item.node
|
|
20
|
+
return /*#__PURE__*/React.cloneElement(item.node, {
|
|
21
|
+
key: index
|
|
22
|
+
});
|
|
21
23
|
}));
|
|
22
24
|
};
|
|
23
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 { 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 item.node;\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","node","PortalHost","memo","displayName"],"mappings":";;;;;;
|
|
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;;;;"}
|
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-beta202512022142",
|
|
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-beta202512022142"
|
|
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 }}
|