@xhsreds/reds-rn-next 0.10.1-beta202512112152 → 0.10.1-beta202512171921

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.
Files changed (92) hide show
  1. package/coverage/.tmp/coverage-10.json +1 -1
  2. package/coverage/.tmp/coverage-11.json +1 -1
  3. package/coverage/.tmp/coverage-12.json +1 -1
  4. package/coverage/.tmp/coverage-13.json +1 -1
  5. package/coverage/.tmp/coverage-14.json +1 -1
  6. package/coverage/.tmp/coverage-15.json +1 -1
  7. package/coverage/.tmp/coverage-16.json +1 -1
  8. package/coverage/.tmp/coverage-17.json +1 -1
  9. package/coverage/.tmp/coverage-18.json +1 -1
  10. package/coverage/.tmp/coverage-19.json +1 -1
  11. package/coverage/.tmp/coverage-2.json +1 -1
  12. package/coverage/.tmp/coverage-21.json +1 -1
  13. package/coverage/.tmp/coverage-22.json +1 -1
  14. package/coverage/.tmp/coverage-23.json +1 -1
  15. package/coverage/.tmp/coverage-26.json +1 -1
  16. package/coverage/.tmp/coverage-27.json +1 -1
  17. package/coverage/.tmp/coverage-28.json +1 -1
  18. package/coverage/.tmp/coverage-29.json +1 -1
  19. package/coverage/.tmp/coverage-30.json +1 -1
  20. package/coverage/.tmp/coverage-31.json +1 -1
  21. package/coverage/.tmp/coverage-32.json +1 -1
  22. package/coverage/.tmp/coverage-33.json +1 -1
  23. package/coverage/.tmp/coverage-34.json +1 -1
  24. package/coverage/.tmp/coverage-35.json +1 -1
  25. package/coverage/.tmp/coverage-36.json +1 -1
  26. package/coverage/.tmp/coverage-37.json +1 -1
  27. package/coverage/.tmp/coverage-38.json +1 -1
  28. package/coverage/.tmp/coverage-39.json +1 -1
  29. package/coverage/.tmp/coverage-4.json +1 -1
  30. package/coverage/.tmp/coverage-40.json +1 -1
  31. package/coverage/.tmp/coverage-41.json +1 -1
  32. package/coverage/.tmp/coverage-42.json +1 -1
  33. package/coverage/.tmp/coverage-5.json +1 -1
  34. package/coverage/.tmp/coverage-6.json +1 -1
  35. package/coverage/.tmp/coverage-8.json +1 -1
  36. package/coverage/.tmp/coverage-9.json +1 -1
  37. package/lib/cjs/components/Icon/Icon.72.js +1 -1
  38. package/lib/cjs/components/Icon/Icon.72.js.map +1 -1
  39. package/lib/cjs/components/Image/CircularProgress.js +1 -1
  40. package/lib/cjs/components/Image/CircularProgress.js.map +1 -1
  41. package/lib/cjs/components/Image/Image.js +1 -1
  42. package/lib/cjs/components/Image/index.js +1 -1
  43. package/lib/cjs/components/List/ListItem/ArrowRight.js +1 -1
  44. package/lib/cjs/components/List/ListItem/ArrowRight.js.map +1 -1
  45. package/lib/cjs/components/PullRefresh/PullRefresh.js +77 -17
  46. package/lib/cjs/components/PullRefresh/PullRefresh.js.map +1 -1
  47. package/lib/cjs/components/PullRefresh/Refresh.js +1 -1
  48. package/lib/cjs/components/PullRefresh/Refresh.js.map +1 -1
  49. package/lib/cjs/components/PullRefresh/component.js +1 -1
  50. package/lib/cjs/components/PullRefresh/index.js +1 -1
  51. package/lib/cjs/components/Radio/Radio.js +1 -1
  52. package/lib/cjs/components/Radio/index.js +1 -1
  53. package/lib/cjs/components/Skeleton/Item/SkeletonItem.js +1 -1
  54. package/lib/cjs/components/Skeleton/Item/SkeletonItem.js.map +1 -1
  55. package/lib/cjs/components/Skeleton/Skeleton.js +1 -1
  56. package/lib/cjs/components/Skeleton/index.js +1 -1
  57. package/lib/cjs/index.js +1 -1
  58. package/lib/cjs/pvCount/pvData.js +1 -2
  59. package/lib/cjs/pvCount/pvData.js.map +1 -1
  60. package/lib/esm/components/Icon/Icon.72.js +1 -1
  61. package/lib/esm/components/Icon/Icon.72.js.map +1 -1
  62. package/lib/esm/components/Image/CircularProgress.js +1 -1
  63. package/lib/esm/components/Image/CircularProgress.js.map +1 -1
  64. package/lib/esm/components/Image/Image.js +1 -1
  65. package/lib/esm/components/Image/index.js +1 -1
  66. package/lib/esm/components/List/ListItem/ArrowRight.js +1 -1
  67. package/lib/esm/components/List/ListItem/ArrowRight.js.map +1 -1
  68. package/lib/esm/components/PullRefresh/PullRefresh.js +77 -17
  69. package/lib/esm/components/PullRefresh/PullRefresh.js.map +1 -1
  70. package/lib/esm/components/PullRefresh/Refresh.js +1 -1
  71. package/lib/esm/components/PullRefresh/Refresh.js.map +1 -1
  72. package/lib/esm/components/PullRefresh/component.js +1 -1
  73. package/lib/esm/components/PullRefresh/index.js +1 -1
  74. package/lib/esm/components/Radio/Radio.js +1 -1
  75. package/lib/esm/components/Radio/index.js +1 -1
  76. package/lib/esm/components/Skeleton/Item/SkeletonItem.js +1 -1
  77. package/lib/esm/components/Skeleton/Item/SkeletonItem.js.map +1 -1
  78. package/lib/esm/components/Skeleton/Skeleton.js +1 -1
  79. package/lib/esm/components/Skeleton/index.js +1 -1
  80. package/lib/esm/index.js +1 -1
  81. package/lib/esm/pvCount/pvData.js +1 -2
  82. package/lib/esm/pvCount/pvData.js.map +1 -1
  83. package/package.json +2 -3
  84. package/src/components/Icon/Icon.72.tsx +1 -1
  85. package/src/components/Icon/test/index.test.tsx +2 -2
  86. package/src/components/Image/CircularProgress.tsx +1 -1
  87. package/src/components/List/ListItem/ArrowRight.tsx +1 -1
  88. package/src/components/PullRefresh/PullRefresh.tsx +113 -39
  89. package/src/components/PullRefresh/Refresh.tsx +1 -1
  90. package/src/components/Skeleton/Item/SkeletonItem.tsx +1 -1
  91. package/src/i18n/@types/resources.d.ts +27 -27
  92. package/src/i18n/index.json +31 -31
@@ -1 +1 @@
1
- {"/builds/fe/infra/reds/packages/reds-rn/src/components/CheckBoxGroup/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/CheckBoxGroup/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":49},"end":{"line":5,"column":29}},"1":{"start":{"line":2,"column":2},"end":{"line":2,"column":52}},"2":{"start":{"line":3,"column":2},"end":{"line":3,"column":48}},"3":{"start":{"line":4,"column":2},"end":{"line":4,"column":30}},"4":{"start":{"line":6,"column":47},"end":{"line":10,"column":27}},"5":{"start":{"line":7,"column":2},"end":{"line":7,"column":40}},"6":{"start":{"line":8,"column":2},"end":{"line":8,"column":38}},"7":{"start":{"line":9,"column":2},"end":{"line":9,"column":28}},"8":{"start":{"line":11,"column":47},"end":{"line":16,"column":27}},"9":{"start":{"line":12,"column":2},"end":{"line":12,"column":40}},"10":{"start":{"line":13,"column":2},"end":{"line":13,"column":42}},"11":{"start":{"line":14,"column":2},"end":{"line":14,"column":40}},"12":{"start":{"line":15,"column":2},"end":{"line":15,"column":28}},"13":{"start":{"line":17,"column":43},"end":{"line":22,"column":23}},"14":{"start":{"line":18,"column":2},"end":{"line":18,"column":34}},"15":{"start":{"line":19,"column":2},"end":{"line":19,"column":34}},"16":{"start":{"line":20,"column":2},"end":{"line":20,"column":34}},"17":{"start":{"line":21,"column":2},"end":{"line":21,"column":24}},"18":{"start":{"line":23,"column":41},"end":{"line":30,"column":1}},"19":{"start":{"line":31,"column":40},"end":{"line":37,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":50},"end":{"line":1,"column":51}},"loc":{"start":{"line":1,"column":76},"end":{"line":5,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":48},"end":{"line":6,"column":49}},"loc":{"start":{"line":6,"column":72},"end":{"line":10,"column":1}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":48},"end":{"line":11,"column":49}},"loc":{"start":{"line":11,"column":72},"end":{"line":16,"column":1}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":44},"end":{"line":17,"column":45}},"loc":{"start":{"line":17,"column":64},"end":{"line":22,"column":1}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":3},"end":{"line":5,"column":28}},"type":"binary-expr","locations":[{"start":{"line":5,"column":3},"end":{"line":5,"column":22}},{"start":{"line":5,"column":26},"end":{"line":5,"column":28}}],"line":5},"1":{"loc":{"start":{"line":10,"column":3},"end":{"line":10,"column":26}},"type":"binary-expr","locations":[{"start":{"line":10,"column":3},"end":{"line":10,"column":20}},{"start":{"line":10,"column":24},"end":{"line":10,"column":26}}],"line":10},"2":{"loc":{"start":{"line":16,"column":3},"end":{"line":16,"column":26}},"type":"binary-expr","locations":[{"start":{"line":16,"column":3},"end":{"line":16,"column":20}},{"start":{"line":16,"column":24},"end":{"line":16,"column":26}}],"line":16},"3":{"loc":{"start":{"line":22,"column":3},"end":{"line":22,"column":22}},"type":"binary-expr","locations":[{"start":{"line":22,"column":3},"end":{"line":22,"column":16}},{"start":{"line":22,"column":20},"end":{"line":22,"column":22}}],"line":22}},"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},"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/CheckBoxGroup/interface/index.ts"],"sourcesContent":["import { ViewStyle, TextStyle } from \"react-native\";\nimport { ReactNode } from \"react\";\n\nexport interface CheckBoxGroupOption {\n label: string;\n value: string | number;\n}\n\nexport const enum CheckBoxGroupLayout {\n HORIZONTAL = \"horizontal\",\n VERTICAL = \"vertical\",\n}\n\nexport const enum CheckBoxPlacement {\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\nexport const enum CheckBoxGroupSize {\n SMALL = \"small\",\n MEDIUM = \"medium\",\n LARGE = \"large\",\n}\n\nexport const enum CheckedStatus {\n FULL = \"full\",\n HALF = \"half\",\n NONE = \"none\",\n}\nexport interface RedsCheckBoxGroup {\n value?: string[] | number[];\n options?: CheckBoxGroupOption[];\n disable?: boolean;\n full?: boolean;\n fullText?: string;\n fullContainerStyle?: ViewStyle;\n checkboxStyle?: ViewStyle;\n layout?: CheckBoxGroupLayout;\n size?: CheckBoxGroupSize;\n onChange?: (value: string[] | number[]) => void;\n children?: ReactNode[];\n}\n\nexport interface RedsCheckBoxGroupEvent {}\nexport const CheckBoxGroupDefaultProps = {\n value: [],\n options: [],\n disable: false,\n full: false,\n layout: CheckBoxGroupLayout.HORIZONTAL,\n size: CheckBoxGroupSize.LARGE,\n};\n\nexport interface RedsCheckBox {\n value: string | number;\n label?: string;\n placement?: CheckBoxPlacement;\n disable?: boolean;\n checked?: boolean;\n layout?: CheckBoxGroupLayout;\n style?: ViewStyle;\n size?: CheckBoxGroupSize;\n onChange?: (value: string | number, checked: boolean) => void;\n isControl?: boolean;\n labelStyle?: ViewStyle;\n labelTextStyle?: TextStyle;\n isGroup?: boolean;\n checkboxStyle?: ViewStyle;\n}\n\nexport const RedsCheckBoxDefaultProps = {\n placement: CheckBoxPlacement.RIGHT,\n layout: CheckBoxGroupLayout.HORIZONTAL,\n size: CheckBoxGroupSize.MEDIUM,\n isControl: true,\n isGroup: false,\n};\n\nexport interface ICheckBoxGroupContext {\n checkList: number[] | string[];\n}\n"],"mappings":"AAQO,WAAW,sBAAX,kBAAWA,yBAAX;AACL,EAAAA,qBAAA,gBAAa;AACb,EAAAA,qBAAA,cAAW;AAFK,SAAAA;AAAA,GAAA;AAKX,WAAW,oBAAX,kBAAWC,uBAAX;AACL,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,UAAO;AAFS,SAAAA;AAAA,GAAA;AAKX,WAAW,oBAAX,kBAAWC,uBAAX;AACL,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,WAAQ;AAHQ,SAAAA;AAAA,GAAA;AAMX,WAAW,gBAAX,kBAAWC,mBAAX;AACL,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AAHS,SAAAA;AAAA,GAAA;AAoBX,aAAM,4BAA4B;AAAA,EACvC,OAAO,CAAC;AAAA,EACR,SAAS,CAAC;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AACR;AAmBO,aAAM,2BAA2B;AAAA,EACtC,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX;","names":["CheckBoxGroupLayout","CheckBoxPlacement","CheckBoxGroupSize","CheckedStatus"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fc7c8b5a271c82ad6926938b49b00c3dfd14f542"}}
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/Result/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/Result/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":34},"end":{"line":5,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["/builds/fe/infra/reds/packages/reds-rn/src/components/Result/interface/index.ts"],"sourcesContent":["import { ReactNode } from \"react\";\nexport interface RedsResult {\n type?: \"Success\" | \"Warning\" | \"Info\";\n title?: string;\n description?: string;\n action?: ReactNode;\n image?: ReactNode;\n}\n\nexport const ResultDefaultProps = {\n type: \"Success\",\n title: \"\",\n description: \"\",\n};\n"],"mappings":"AASO,aAAM,qBAAqB;AAAA,EAChC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AACf;","names":[]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c0f65f92a08822d9008c6c1f1b6e41d7eb3260c5"}}
1
+ {"/builds/fe/infra/reds/packages/reds-rn/src/components/CheckBoxGroup/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/CheckBoxGroup/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":49},"end":{"line":5,"column":29}},"1":{"start":{"line":2,"column":2},"end":{"line":2,"column":52}},"2":{"start":{"line":3,"column":2},"end":{"line":3,"column":48}},"3":{"start":{"line":4,"column":2},"end":{"line":4,"column":30}},"4":{"start":{"line":6,"column":47},"end":{"line":10,"column":27}},"5":{"start":{"line":7,"column":2},"end":{"line":7,"column":40}},"6":{"start":{"line":8,"column":2},"end":{"line":8,"column":38}},"7":{"start":{"line":9,"column":2},"end":{"line":9,"column":28}},"8":{"start":{"line":11,"column":47},"end":{"line":16,"column":27}},"9":{"start":{"line":12,"column":2},"end":{"line":12,"column":40}},"10":{"start":{"line":13,"column":2},"end":{"line":13,"column":42}},"11":{"start":{"line":14,"column":2},"end":{"line":14,"column":40}},"12":{"start":{"line":15,"column":2},"end":{"line":15,"column":28}},"13":{"start":{"line":17,"column":43},"end":{"line":22,"column":23}},"14":{"start":{"line":18,"column":2},"end":{"line":18,"column":34}},"15":{"start":{"line":19,"column":2},"end":{"line":19,"column":34}},"16":{"start":{"line":20,"column":2},"end":{"line":20,"column":34}},"17":{"start":{"line":21,"column":2},"end":{"line":21,"column":24}},"18":{"start":{"line":23,"column":41},"end":{"line":30,"column":1}},"19":{"start":{"line":31,"column":40},"end":{"line":37,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":50},"end":{"line":1,"column":51}},"loc":{"start":{"line":1,"column":76},"end":{"line":5,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":48},"end":{"line":6,"column":49}},"loc":{"start":{"line":6,"column":72},"end":{"line":10,"column":1}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":48},"end":{"line":11,"column":49}},"loc":{"start":{"line":11,"column":72},"end":{"line":16,"column":1}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":44},"end":{"line":17,"column":45}},"loc":{"start":{"line":17,"column":64},"end":{"line":22,"column":1}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":3},"end":{"line":5,"column":28}},"type":"binary-expr","locations":[{"start":{"line":5,"column":3},"end":{"line":5,"column":22}},{"start":{"line":5,"column":26},"end":{"line":5,"column":28}}],"line":5},"1":{"loc":{"start":{"line":10,"column":3},"end":{"line":10,"column":26}},"type":"binary-expr","locations":[{"start":{"line":10,"column":3},"end":{"line":10,"column":20}},{"start":{"line":10,"column":24},"end":{"line":10,"column":26}}],"line":10},"2":{"loc":{"start":{"line":16,"column":3},"end":{"line":16,"column":26}},"type":"binary-expr","locations":[{"start":{"line":16,"column":3},"end":{"line":16,"column":20}},{"start":{"line":16,"column":24},"end":{"line":16,"column":26}}],"line":16},"3":{"loc":{"start":{"line":22,"column":3},"end":{"line":22,"column":22}},"type":"binary-expr","locations":[{"start":{"line":22,"column":3},"end":{"line":22,"column":16}},{"start":{"line":22,"column":20},"end":{"line":22,"column":22}}],"line":22}},"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},"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/CheckBoxGroup/interface/index.ts"],"sourcesContent":["import { ViewStyle, TextStyle } from \"react-native\";\nimport { ReactNode } from \"react\";\n\nexport interface CheckBoxGroupOption {\n label: string;\n value: string | number;\n}\n\nexport const enum CheckBoxGroupLayout {\n HORIZONTAL = \"horizontal\",\n VERTICAL = \"vertical\",\n}\n\nexport const enum CheckBoxPlacement {\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\nexport const enum CheckBoxGroupSize {\n SMALL = \"small\",\n MEDIUM = \"medium\",\n LARGE = \"large\",\n}\n\nexport const enum CheckedStatus {\n FULL = \"full\",\n HALF = \"half\",\n NONE = \"none\",\n}\nexport interface RedsCheckBoxGroup {\n value?: string[] | number[];\n options?: CheckBoxGroupOption[];\n disable?: boolean;\n full?: boolean;\n fullText?: string;\n fullContainerStyle?: ViewStyle;\n checkboxStyle?: ViewStyle;\n layout?: CheckBoxGroupLayout;\n size?: CheckBoxGroupSize;\n onChange?: (value: string[] | number[]) => void;\n children?: ReactNode[];\n}\n\nexport interface RedsCheckBoxGroupEvent {}\nexport const CheckBoxGroupDefaultProps = {\n value: [],\n options: [],\n disable: false,\n full: false,\n layout: CheckBoxGroupLayout.HORIZONTAL,\n size: CheckBoxGroupSize.LARGE,\n};\n\nexport interface RedsCheckBox {\n value: string | number;\n label?: string;\n placement?: CheckBoxPlacement;\n disable?: boolean;\n checked?: boolean;\n layout?: CheckBoxGroupLayout;\n style?: ViewStyle;\n size?: CheckBoxGroupSize;\n onChange?: (value: string | number, checked: boolean) => void;\n isControl?: boolean;\n labelStyle?: ViewStyle;\n labelTextStyle?: TextStyle;\n isGroup?: boolean;\n checkboxStyle?: ViewStyle;\n}\n\nexport const RedsCheckBoxDefaultProps = {\n placement: CheckBoxPlacement.RIGHT,\n layout: CheckBoxGroupLayout.HORIZONTAL,\n size: CheckBoxGroupSize.MEDIUM,\n isControl: true,\n isGroup: false,\n};\n\nexport interface ICheckBoxGroupContext {\n checkList: number[] | string[];\n}\n"],"mappings":"AAQO,WAAW,sBAAX,kBAAWA,yBAAX;AACL,EAAAA,qBAAA,gBAAa;AACb,EAAAA,qBAAA,cAAW;AAFK,SAAAA;AAAA,GAAA;AAKX,WAAW,oBAAX,kBAAWC,uBAAX;AACL,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,UAAO;AAFS,SAAAA;AAAA,GAAA;AAKX,WAAW,oBAAX,kBAAWC,uBAAX;AACL,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,WAAQ;AAHQ,SAAAA;AAAA,GAAA;AAMX,WAAW,gBAAX,kBAAWC,mBAAX;AACL,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AAHS,SAAAA;AAAA,GAAA;AAoBX,aAAM,4BAA4B;AAAA,EACvC,OAAO,CAAC;AAAA,EACR,SAAS,CAAC;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AACR;AAmBO,aAAM,2BAA2B;AAAA,EACtC,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX;","names":["CheckBoxGroupLayout","CheckBoxPlacement","CheckBoxGroupSize","CheckedStatus"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fc7c8b5a271c82ad6926938b49b00c3dfd14f542"}}
@@ -1 +1 @@
1
- {"/builds/fe/infra/reds/packages/reds-rn/src/components/Switch/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/Switch/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":34},"end":{"line":9,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["/builds/fe/infra/reds/packages/reds-rn/src/components/Switch/interface/index.ts"],"sourcesContent":["import { GestureResponderEvent } from \"react-native\";\ninterface hitSlop {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\nexport interface RedsSwitch {\n value?: boolean;\n modelValue?: boolean;\n defaultValue?: boolean;\n disabled?: boolean;\n trackOnColor?: string;\n trackOffColor?: string;\n onChange?: (value: boolean) => any;\n onClick?: (value: GestureResponderEvent) => any;\n isControl?: boolean;\n hitSlop?: hitSlop;\n isAnimated?: boolean;\n width?: number;\n height?: number;\n thumbWidth?: number;\n}\n\nexport interface RedsSwitchEvent {}\nexport const SwitchDefaultProps = {\n value: undefined,\n modelValue: undefined,\n defaultValue: false,\n disabled: false,\n isControl: true,\n hitSlop: {},\n isAnimated: true,\n};\n"],"mappings":"AAyBO,aAAM,qBAAqB;AAAA,EAChC,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS,CAAC;AAAA,EACV,YAAY;AACd;","names":[]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7c4b66a63b0157cd33666cf30f02b9f700305fbd"}}
1
+ {"/builds/fe/infra/reds/packages/reds-rn/src/components/Badge/interface/index.ts":{"path":"/builds/fe/infra/reds/packages/reds-rn/src/components/Badge/interface/index.ts","statementMap":{"0":{"start":{"line":1,"column":33},"end":{"line":10,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":{"version":3,"sources":["/builds/fe/infra/reds/packages/reds-rn/src/components/Badge/interface/index.ts"],"sourcesContent":["import { GestureResponderEvent } from \"react-native\";\nimport { lightColor } from \"@xhs/reds-token-next\";\nexport interface RedsBadge {\n content?: number | string;\n color?: string;\n dot?: boolean;\n max?: number | string;\n offset?: [number | string, number | string];\n showZero?: boolean;\n position?: \"topLeft\" | \"centerLeft\" | \"centerRight\" | \"topCenter\" | \"centerCenter\";\n children?: any;\n}\n\nexport interface RedsBadgeEvent {}\nexport const BadgeDefaultProps = {\n content: undefined,\n color: undefined,\n dot: false,\n max: undefined,\n offset: undefined,\n showZero: true,\n position: \"topLeft\",\n children: undefined,\n};\n"],"mappings":"AAcO,aAAM,oBAAoB;AAAA,EAC/B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,KAAK;AAAA,EACL,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AACZ;","names":[]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4a7de1e70bcb88874b26f4354b9147824dc8d870"}}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactNative = require('react-native');
7
- var Svg = require('@xhs/reds-components/libs/svg');
7
+ var Svg = require('react-native-svg');
8
8
  var components_Icon_interface_index = require('../../_chunks/NjAxlnfB.js');
9
9
 
10
10
  var Icon = function Icon(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.72.js","sources":["../../../../src/components/Icon/Icon.72.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { GestureResponderEvent, Image, TouchableOpacity } from \"react-native\";\nimport { SvgXml } from \"@xhs/reds-components/libs/svg\";\nimport { RedsIcon, IconDefaultProps, iconType } from \"./interface/index\";\nconst Icon: React.FC<RedsIcon> = (props) => {\n const { size, fill, onClick, icon } = props || {};\n\n /** icon点击事件 */\n const toggleIcon = useCallback(\n (e: GestureResponderEvent) => {\n onClick?.(e);\n },\n [onClick],\n );\n\n /** icon svg 数据 */\n const iconSvg = useMemo(() => {\n if (props?.type === iconType.svg) {\n if (typeof icon === \"function\") {\n return size ? (fill ? icon({ size: size, fill: fill }) : icon({ size: size })) : icon({ size: 24 });\n } else {\n return icon ?? \"\";\n }\n } else {\n return \"\";\n }\n }, [icon, size, fill]);\n\n const isImage = useMemo(() => {\n return (\n props.type === iconType.image ||\n (typeof icon === \"string\" && icon.includes(\"http\") && icon.indexOf(\"<svg\") === -1)\n );\n }, [props.type, icon]);\n\n const Wrapper = (props: any) => {\n return onClick ? (\n <TouchableOpacity\n testID=\"touchable-element\"\n onPress={toggleIcon}\n activeOpacity={1}\n hitSlop={{ top: 20, bottom: 20, left: 20, right: 20 }}\n >\n {props.children}\n </TouchableOpacity>\n ) : (\n props.children\n );\n };\n\n return (\n <Wrapper>\n {isImage && icon ? (\n <Image\n source={{ uri: icon as string }}\n style={[props.size ? { height: props.size, width: props.size } : {}, props.styles ? props.styles : {}]}\n />\n ) : (\n iconSvg && <SvgXml testID=\"svg-element\" xml={iconSvg || \"\"} />\n )}\n </Wrapper>\n );\n};\n\nexport default Icon;\n\nIcon.defaultProps = IconDefaultProps;\n"],"names":["Icon","props","_ref","size","fill","onClick","icon","toggleIcon","useCallback","e","iconSvg","useMemo","type","iconType","svg","isImage","image","includes","indexOf","Wrapper","React","createElement","TouchableOpacity","testID","onPress","activeOpacity","hitSlop","top","bottom","left","right","children","Image","source","uri","style","height","width","styles","SvgXml","xml","defaultProps","IconDefaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Icon.72.js","sources":["../../../../src/components/Icon/Icon.72.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { GestureResponderEvent, Image, TouchableOpacity } from \"react-native\";\nimport { SvgXml } from \"react-native-svg\";\nimport { RedsIcon, IconDefaultProps, iconType } from \"./interface/index\";\nconst Icon: React.FC<RedsIcon> = (props) => {\n const { size, fill, onClick, icon } = props || {};\n\n /** icon点击事件 */\n const toggleIcon = useCallback(\n (e: GestureResponderEvent) => {\n onClick?.(e);\n },\n [onClick],\n );\n\n /** icon svg 数据 */\n const iconSvg = useMemo(() => {\n if (props?.type === iconType.svg) {\n if (typeof icon === \"function\") {\n return size ? (fill ? icon({ size: size, fill: fill }) : icon({ size: size })) : icon({ size: 24 });\n } else {\n return icon ?? \"\";\n }\n } else {\n return \"\";\n }\n }, [icon, size, fill]);\n\n const isImage = useMemo(() => {\n return (\n props.type === iconType.image ||\n (typeof icon === \"string\" && icon.includes(\"http\") && icon.indexOf(\"<svg\") === -1)\n );\n }, [props.type, icon]);\n\n const Wrapper = (props: any) => {\n return onClick ? (\n <TouchableOpacity\n testID=\"touchable-element\"\n onPress={toggleIcon}\n activeOpacity={1}\n hitSlop={{ top: 20, bottom: 20, left: 20, right: 20 }}\n >\n {props.children}\n </TouchableOpacity>\n ) : (\n props.children\n );\n };\n\n return (\n <Wrapper>\n {isImage && icon ? (\n <Image\n source={{ uri: icon as string }}\n style={[props.size ? { height: props.size, width: props.size } : {}, props.styles ? props.styles : {}]}\n />\n ) : (\n iconSvg && <SvgXml testID=\"svg-element\" xml={iconSvg || \"\"} />\n )}\n </Wrapper>\n );\n};\n\nexport default Icon;\n\nIcon.defaultProps = IconDefaultProps;\n"],"names":["Icon","props","_ref","size","fill","onClick","icon","toggleIcon","useCallback","e","iconSvg","useMemo","type","iconType","svg","isImage","image","includes","indexOf","Wrapper","React","createElement","TouchableOpacity","testID","onPress","activeOpacity","hitSlop","top","bottom","left","right","children","Image","source","uri","style","height","width","styles","SvgXml","xml","defaultProps","IconDefaultProps"],"mappings":"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"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var redsTokenNext = require('@xhsreds/reds-token-next');
6
6
  var React = require('react');
7
7
  var reactNative = require('react-native');
8
- var Svg = require('@xhs/reds-components/libs/svg');
8
+ var Svg = require('react-native-svg');
9
9
 
10
10
  var AnimatedCircle = reactNative.Animated.createAnimatedComponent(Svg.Circle);
11
11
  var CircularProgress = function CircularProgress(_ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"CircularProgress.js","sources":["../../../../src/components/Image/CircularProgress.tsx"],"sourcesContent":["import { lightColor } from \"@xhsreds/reds-token-next\";\nimport React, { useEffect, useRef } from \"react\";\nimport { View, Animated, StyleSheet } from \"react-native\";\nimport Svg, { Circle, G } from \"@xhs/reds-components/libs/svg\";\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n\nconst CircularProgress = ({ size = 40, strokeWidth = 3, progress = 75 }) => {\n const animatedValue = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n Animated.timing(animatedValue, {\n toValue: progress,\n duration: 0,\n useNativeDriver: true,\n }).start();\n }, [progress]);\n\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const strokeDashoffset = animatedValue.interpolate({\n inputRange: [0, 100],\n outputRange: [circumference, 0],\n });\n\n return (\n <View style={styles.container}>\n <Svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <G rotation=\"-90\" origin={`${size / 2}, ${size / 2}`}>\n <Circle cx=\"50%\" cy=\"50%\" r={radius} stroke={lightColor.Fill2} strokeWidth={strokeWidth} fill=\"none\" />\n <AnimatedCircle\n cx=\"50%\"\n cy=\"50%\"\n r={radius}\n stroke={lightColor.Fill4}\n strokeWidth={strokeWidth}\n fill=\"none\"\n strokeDasharray={`${circumference}, ${circumference}`}\n strokeDashoffset={strokeDashoffset}\n strokeLinecap=\"round\"\n />\n </G>\n </Svg>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n justifyContent: \"center\",\n alignItems: \"center\",\n flex: 1,\n },\n});\n\nexport default CircularProgress;\n"],"names":["AnimatedCircle","Animated","createAnimatedComponent","Circle","CircularProgress","_ref","_ref$size","size","strokeWidth","_ref$strokeWidth","_ref$progress","progress","animatedValue","useRef","Value","current","useEffect","timing","toValue","duration","useNativeDriver","start","radius","circumference","Math","PI","strokeDashoffset","interpolate","inputRange","outputRange","View","style","styles","container","React","createElement","Svg","width","height","viewBox","concat","G","rotation","origin","cx","cy","r","stroke","lightColor","Fill2","fill","Fill4","strokeDasharray","strokeLinecap","StyleSheet","create","justifyContent","alignItems","flex"],"mappings":"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"}
1
+ {"version":3,"file":"CircularProgress.js","sources":["../../../../src/components/Image/CircularProgress.tsx"],"sourcesContent":["import { lightColor } from \"@xhsreds/reds-token-next\";\nimport React, { useEffect, useRef } from \"react\";\nimport { View, Animated, StyleSheet } from \"react-native\";\nimport Svg, { Circle, G } from \"react-native-svg\";\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n\nconst CircularProgress = ({ size = 40, strokeWidth = 3, progress = 75 }) => {\n const animatedValue = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n Animated.timing(animatedValue, {\n toValue: progress,\n duration: 0,\n useNativeDriver: true,\n }).start();\n }, [progress]);\n\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const strokeDashoffset = animatedValue.interpolate({\n inputRange: [0, 100],\n outputRange: [circumference, 0],\n });\n\n return (\n <View style={styles.container}>\n <Svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <G rotation=\"-90\" origin={`${size / 2}, ${size / 2}`}>\n <Circle cx=\"50%\" cy=\"50%\" r={radius} stroke={lightColor.Fill2} strokeWidth={strokeWidth} fill=\"none\" />\n <AnimatedCircle\n cx=\"50%\"\n cy=\"50%\"\n r={radius}\n stroke={lightColor.Fill4}\n strokeWidth={strokeWidth}\n fill=\"none\"\n strokeDasharray={`${circumference}, ${circumference}`}\n strokeDashoffset={strokeDashoffset}\n strokeLinecap=\"round\"\n />\n </G>\n </Svg>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n justifyContent: \"center\",\n alignItems: \"center\",\n flex: 1,\n },\n});\n\nexport default CircularProgress;\n"],"names":["AnimatedCircle","Animated","createAnimatedComponent","Circle","CircularProgress","_ref","_ref$size","size","strokeWidth","_ref$strokeWidth","_ref$progress","progress","animatedValue","useRef","Value","current","useEffect","timing","toValue","duration","useNativeDriver","start","radius","circumference","Math","PI","strokeDashoffset","interpolate","inputRange","outputRange","View","style","styles","container","React","createElement","Svg","width","height","viewBox","concat","G","rotation","origin","cx","cy","r","stroke","lightColor","Fill2","fill","Fill4","strokeDasharray","strokeLinecap","StyleSheet","create","justifyContent","alignItems","flex"],"mappings":";;;;;;;;;AAKA,IAAMA,cAAA,GAAiBC,oBAAS,CAAAC,uBAAA,CAAwBC,UAAM,CAAA,CAAA;AAE9D,IAAMC,gBAAA,GAAmB,SAAnBA,gBAAAA,CAAAC,IAAA,EAAsE;AAAA,EAAA,IAAAC,SAAA,GAAAD,IAAA,CAAhDE,IAAA;AAAAA,IAAAA,IAAA,GAAAD,SAAA,KAAO,KAAA,CAAA,GAAA;4BAAIE,WAAc;AAAdA,IAAAA,WAAc,GAAAC,gBAAA,KAAA,KAAA,CAAA,GAAA,CAAA,GAAAA,gBAAA;IAAAC,aAAA,GAAAL,IAAA,CAAGM,QAAW;AAAXA,IAAAA,QAAW,GAAAD,aAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAAA,aAAA,CAAA;AACjE,EAAA,IAAME,gBAAgBC,YAAO,CAAA,IAAIZ,qBAASa,KAAM,CAAA,CAAC,CAAC,CAAE,CAAAC,OAAA,CAAA;AAEpDC,EAAAA,eAAA,CAAU,YAAM;AACdf,IAAAA,oBAAA,CAASgB,OAAOL,aAAe,EAAA;AAC7BM,MAAAA,OAAS,EAAAP,QAAA;AACTQ,MAAAA,QAAU,EAAA,CAAA;AACVC,MAAAA,eAAiB,EAAA,IAAA;AACnB,KAAC,EAAEC,KAAM,EAAA,CAAA;AACX,GAAA,EAAG,CAACV,QAAQ,CAAC,CAAA,CAAA;AAEP,EAAA,IAAAW,MAAA,GAAA,CAAUf,OAAOC,WAAe,IAAA,CAAA,CAAA;EAChC,IAAAe,aAAA,GAAgB,CAAI,GAAAC,IAAA,CAAKC,EAAK,GAAAH,MAAA,CAAA;AAC9B,EAAA,IAAAI,gBAAA,GAAmBd,cAAce,WAAY,CAAA;AACjDC,IAAAA,UAAA,EAAY,CAAC,CAAA,EAAG,GAAG,CAAA;AACnBC,IAAAA,WAAA,EAAa,CAACN,aAAA,EAAe,CAAC,CAAA;AAChC,GAAC,CAAA,CAAA;AAED,EAAA,0CACGO,gBAAK,EAAA;IAAAC,KAAA,EAAOC,OAAOC,SAAAA;AAClB,GAAA,iBAAAC,KAAA,CAAAC,aAAA,CAACC;AAAIC,IAAAA,KAAO,EAAA9B,IAAA;AAAM+B,IAAAA,QAAQ/B,IAAM;AAAAgC,IAAAA,OAAA,SAAAC,MAAA,CAAgBjC,IAAI,EAAAiC,GAAAA,CAAAA,CAAAA,MAAA,CAAIjC,IAAI,CAAA;AAC1D,GAAA,iBAAA2B,KAAA,CAAAC,aAAA,CAACM;AAAEC,IAAAA,QAAS,EAAA,KAAA;IAAMC,kBAAWpC,IAAA,GAAO,CAAC,EAAA,IAAA,CAAA,CAAAiC,MAAA,CAAKjC,IAAA,GAAO,CAAC,CAAA;AAChD,GAAA,iBAAA2B,KAAA,CAAAC,aAAA,CAAChC;AAAOyC,IAAAA,EAAG,EAAA,KAAA;AAAMC,IAAAA,IAAG,KAAM;AAAAC,IAAAA,CAAA,EAAGxB;IAAQyB,MAAQ,EAAAC,wBAAA,CAAWC;AAAOzC,IAAAA,WAA0B,EAA1BA,WAA0B;AAAA0C,IAAAA,IAAA,EAAK,MAAA;GAAO,CACrG,iBAAAhB,KAAA,CAAAC,aAAA,CAACnC,cAAA,EAAA;AACC4C,IAAAA,EAAG,EAAA,KAAA;AACHC,IAAAA,EAAG,EAAA,KAAA;AACHC,IAAAA,CAAG,EAAAxB,MAAA;IACHyB,QAAQC,wBAAW,CAAAG,KAAA;AACnB3C,IAAAA,WAAA,EAAAA,WAAA;AACA0C,IAAAA,IAAK,EAAA,MAAA;IACLE,eAAiB,EAAA,EAAA,CAAAZ,MAAA,CAAGjB,aAAa,QAAAiB,MAAA,CAAKjB,aAAa,CAAA;AACnDG,IAAAA,gBAAA,EAAAA,gBAAA;AACA2B,IAAAA,aAAc,EAAA,OAAA;GAChB,CACF,CACF,CACF,CAAA,CAAA;AAEJ,EAAA;AAEA,IAAMrB,MAAA,GAASsB,uBAAWC,MAAO,CAAA;AAC/BtB,EAAAA,SAAW,EAAA;AACTuB,IAAAA,cAAgB,EAAA,QAAA;AAChBC,IAAAA,UAAY,EAAA,QAAA;AACZC,IAAAA,IAAM,EAAA,CAAA;AACR,GAAA;AACF,CAAC,CAAA;;;;"}
@@ -16,7 +16,7 @@ var components_ConfigProvider_hooks_themeToken_useColorMode = require('../Config
16
16
  var components_Image_utils = require('./utils.js');
17
17
  var components_Image_apm = require('./apm.js');
18
18
  var components_Image_queryCacheBatcher = require('./queryCacheBatcher.js');
19
- require('@xhs/reds-components/libs/svg');
19
+ require('react-native-svg');
20
20
  require('../ConfigProvider/hooks/ConfigContext/ConfigContext.js');
21
21
 
22
22
  var _excluded = ["src", "source", "width", "height", "borderRadius", "errorStyle", "loadStyle", "style", "abortApmCollection", "fadeDuration", "onFirstDrawFinished"];
@@ -12,7 +12,7 @@ require('./styles.js');
12
12
  require('@xhsreds/reds-token-next');
13
13
  require('./hook/index.js');
14
14
  require('./CircularProgress.js');
15
- require('@xhs/reds-components/libs/svg');
15
+ require('react-native-svg');
16
16
  require('../ConfigProvider/hooks/ConfigCache/ConfigCache.js');
17
17
  require('@xhs/reds-apm/src/index.native');
18
18
  require('../ConfigProvider/hooks/themeToken/useColorMode.js');
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var Svg = require('@xhs/reds-components/libs/svg');
6
+ var Svg = require('react-native-svg');
7
7
 
8
8
  var ArrowRight = function ArrowRight() {
9
9
  return /* @__PURE__ */React.createElement(Svg, {
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowRight.js","sources":["../../../../../src/components/List/ListItem/ArrowRight.tsx"],"sourcesContent":["import React from \"react\";\nimport Svg, { Path } from \"@xhs/reds-components/libs/svg\";\n\nconst ArrowRight: React.FC = () => {\n return (\n <Svg width=\"7\" height=\"12\" viewBox=\"0 0 7 12\" fill=\"none\">\n <Path\n d=\"M5.00001 5.82306L0.880508 1.81204C0.616137 1.55578 0.609566 1.13372 0.865831 0.869345C1.1221 0.604974 1.54415 0.598403 1.80853 0.854668L6.35571 5.28111C6.76108 5.67405 6.77116 6.32121 6.37822 6.72658C6.36708 6.73795 6.36708 6.73795 6.35571 6.74908L1.79718 11.1439C1.53281 11.4002 1.11075 11.3936 0.854485 11.1292C0.59822 10.8649 0.604791 10.4428 0.869162 10.1865L4.99904 6.20613C5.10508 6.10393 5.10819 5.93511 5.00599 5.82907C5.00403 5.82704 5.00204 5.82503 5.00001 5.82306Z\"\n fill=\"#333333\"\n fillOpacity=\"0.3\"\n />\n </Svg>\n );\n};\n\nexport default ArrowRight;\n"],"names":["ArrowRight","React","createElement","Svg","width","height","viewBox","fill","Path","d","fillOpacity"],"mappings":";;;;;;;AAGA,IAAMA,aAAuB,SAAvBA,aAA6B;AAE/B,EAAA,sBAAAC,KAAA,CAAAC,aAAA,CAACC;AAAIC,IAAAA,KAAM,EAAA,GAAA;AAAIC,IAAAA,QAAO,IAAK;AAAAC,IAAAA,OAAA,EAAQ,UAAW;AAAAC,IAAAA,IAAA,EAAK,MAAA;AACjD,GAAA,iBAAAN,KAAA,CAAAC,aAAA,CAACM,QAAA,EAAA;AACCC,IAAAA,CAAE,EAAA,6dAAA;AACFF,IAAAA,IAAK,EAAA,SAAA;AACLG,IAAAA,WAAY,EAAA,KAAA;AAAA,GACd,CACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ArrowRight.js","sources":["../../../../../src/components/List/ListItem/ArrowRight.tsx"],"sourcesContent":["import React from \"react\";\nimport Svg, { Path } from \"react-native-svg\";\n\nconst ArrowRight: React.FC = () => {\n return (\n <Svg width=\"7\" height=\"12\" viewBox=\"0 0 7 12\" fill=\"none\">\n <Path\n d=\"M5.00001 5.82306L0.880508 1.81204C0.616137 1.55578 0.609566 1.13372 0.865831 0.869345C1.1221 0.604974 1.54415 0.598403 1.80853 0.854668L6.35571 5.28111C6.76108 5.67405 6.77116 6.32121 6.37822 6.72658C6.36708 6.73795 6.36708 6.73795 6.35571 6.74908L1.79718 11.1439C1.53281 11.4002 1.11075 11.3936 0.854485 11.1292C0.59822 10.8649 0.604791 10.4428 0.869162 10.1865L4.99904 6.20613C5.10508 6.10393 5.10819 5.93511 5.00599 5.82907C5.00403 5.82704 5.00204 5.82503 5.00001 5.82306Z\"\n fill=\"#333333\"\n fillOpacity=\"0.3\"\n />\n </Svg>\n );\n};\n\nexport default ArrowRight;\n"],"names":["ArrowRight","React","createElement","Svg","width","height","viewBox","fill","Path","d","fillOpacity"],"mappings":";;;;;;;AAGA,IAAMA,aAAuB,SAAvBA,aAA6B;AAE/B,EAAA,sBAAAC,KAAA,CAAAC,aAAA,CAACC;AAAIC,IAAAA,KAAM,EAAA,GAAA;AAAIC,IAAAA,QAAO,IAAK;AAAAC,IAAAA,OAAA,EAAQ,UAAW;AAAAC,IAAAA,IAAA,EAAK,MAAA;AACjD,GAAA,iBAAAN,KAAA,CAAAC,aAAA,CAACM,QAAA,EAAA;AACCC,IAAAA,CAAE,EAAA,6dAAA;AACFF,IAAAA,IAAK,EAAA,SAAA;AACLG,IAAAA,WAAY,EAAA,KAAA;AAAA,GACd,CACF,CAAA,CAAA;AAEJ;;;;"}
@@ -38,7 +38,7 @@ require('../LanguageProvider/hooks/LanguageContext.js');
38
38
  require('../LanguageProvider/hooks/useLanguage.js');
39
39
  require('../../i18n/index.js');
40
40
  require('./Refresh.js');
41
- require('@xhs/reds-components/libs/svg');
41
+ require('react-native-svg');
42
42
 
43
43
  var CustomRefreshControl = components_PullRefresh_component.default;
44
44
  function PullRefresh(props) {
@@ -143,13 +143,21 @@ function PullRefresh(props) {
143
143
  });
144
144
  } else if (panValue > 0) {
145
145
  updatePullState(components_PullRefresh_interface_index.PullState.FINISH);
146
+ setMoveHeight(0);
147
+ setMovePercent(0);
146
148
  animatedTo(0, function () {
147
149
  setIsPulling(false);
148
150
  updatePullState(components_PullRefresh_interface_index.PullState.INIT);
151
+ pan.setValue(0);
152
+ pan.flattenOffset();
149
153
  });
150
154
  } else {
151
155
  updatePullState(components_PullRefresh_interface_index.PullState.INIT);
152
156
  setIsPulling(false);
157
+ setMoveHeight(0);
158
+ setMovePercent(0);
159
+ pan.setValue(0);
160
+ pan.flattenOffset();
153
161
  }
154
162
  };
155
163
  var updatePullState = function updatePullState(state) {
@@ -207,7 +215,16 @@ function PullRefresh(props) {
207
215
  if (props.initRefresh && !hasInitRefreshed) {
208
216
  return false;
209
217
  }
210
- return isPulling ? false : scrollY <= 0 && gestureState.vy > 0 && gestureState.vy > Math.abs(gestureState.vx);
218
+ if (isRefreshing || pullState === components_PullRefresh_interface_index.PullState.LOADING || pullState === components_PullRefresh_interface_index.PullState.HOLDING) {
219
+ return false;
220
+ }
221
+ if (isPulling) {
222
+ return false;
223
+ }
224
+ if (gestureState.vy < 0) {
225
+ return false;
226
+ }
227
+ return scrollY <= 0 && gestureState.vy > 0 && gestureState.vy > Math.abs(gestureState.vx);
211
228
  };
212
229
  var panResponder = React.useMemo(function () {
213
230
  if (reactNative.Platform.OS !== "ios" && props.nativeAndroidPullRefresh) {
@@ -224,12 +241,17 @@ function PullRefresh(props) {
224
241
  });
225
242
  }
226
243
  return reactNative.PanResponder.create({
227
- onStartShouldSetPanResponder: canMove,
228
- onStartShouldSetPanResponderCapture: canMove,
244
+ onStartShouldSetPanResponder: function onStartShouldSetPanResponder() {
245
+ return false;
246
+ },
247
+ onStartShouldSetPanResponderCapture: function onStartShouldSetPanResponderCapture() {
248
+ return false;
249
+ },
229
250
  onMoveShouldSetPanResponder: canMove,
230
251
  onMoveShouldSetPanResponderCapture: canMove,
231
252
  onPanResponderGrant: function onPanResponderGrant() {
232
253
  animation && animation.stop();
254
+ pan.flattenOffset();
233
255
  pan.setOffset(pan._value);
234
256
  updatePullState(components_PullRefresh_interface_index.PullState.PULLING);
235
257
  pullTimeout && clearTimeout(pullTimeout);
@@ -249,14 +271,17 @@ function PullRefresh(props) {
249
271
  },
250
272
  onPanResponderRelease: onRelease,
251
273
  onPanResponderTerminationRequest: function onPanResponderTerminationRequest() {
252
- return false;
274
+ if (isPulling || pullState === components_PullRefresh_interface_index.PullState.PULLING) {
275
+ return false;
276
+ }
277
+ return true;
253
278
  },
254
279
  onPanResponderTerminate: onRelease,
255
280
  onShouldBlockNativeResponder: function onShouldBlockNativeResponder() {
256
- return true;
281
+ return isPulling || pullState === components_PullRefresh_interface_index.PullState.PULLING;
257
282
  }
258
283
  });
259
- }, [isPulling, scrollY, props.initRefresh, hasInitRefreshed, pullAnimHeight, props.nativeAndroidPullRefresh]);
284
+ }, [isPulling, scrollY, props.initRefresh, hasInitRefreshed, pullAnimHeight, props.nativeAndroidPullRefresh, isRefreshing, pullState]);
260
285
  React.useEffect(function () {
261
286
  if (reactNative.Platform.OS !== "ios" && props.nativeAndroidPullRefresh) return;
262
287
  if (pullState === components_PullRefresh_interface_index.PullState.PULLING && !props.initRefresh) {
@@ -275,9 +300,14 @@ function PullRefresh(props) {
275
300
  setPullTimeout(
276
301
  //@ts-ignore
277
302
  setTimeout(function () {
303
+ pan.flattenOffset();
304
+ setMoveHeight(0);
305
+ setMovePercent(0);
278
306
  animatedTo(0, function () {
279
307
  setIsPulling(false);
280
308
  updatePullState(components_PullRefresh_interface_index.PullState.INIT);
309
+ pan.setValue(0);
310
+ pan.flattenOffset();
281
311
  });
282
312
  updatePullState(components_PullRefresh_interface_index.PullState.FINISH);
283
313
  }, (_props$msHoldingTime2 = props === null || props === void 0 ? void 0 : props.msHoldingTime) !== null && _props$msHoldingTime2 !== void 0 ? _props$msHoldingTime2 : 1e3));
@@ -292,11 +322,10 @@ function PullRefresh(props) {
292
322
  };
293
323
  var scrollContent = React.useMemo(function () {
294
324
  return React.Children.map(props.children, function (child) {
295
- var _props$androidRefresh, _props$androidRefresh2;
296
- return /*#__PURE__*/React.cloneElement(child, _rollupPluginBabelHelpers._objectSpread2({
297
- // 设置滚动响应频率
298
- scrollEventThrottle: 1
299
- }, reactNative.Platform.OS === "android" && props.nativeAndroidPullRefresh ? {
325
+ var _originalOnScroll$_an, _props$androidRefresh, _props$androidRefresh2;
326
+ var originalOnScroll = child.props.onScroll;
327
+ var hasNativeDriver = originalOnScroll && (originalOnScroll["__isNative"] === true || (originalOnScroll === null || originalOnScroll === void 0 || (_originalOnScroll$_an = originalOnScroll._animation) === null || _originalOnScroll$_an === void 0 ? void 0 : _originalOnScroll$_an.useNativeDriver) === true);
328
+ var injectedProps = reactNative.Platform.OS === "android" && props.nativeAndroidPullRefresh ? {
300
329
  refreshControl: /* @__PURE__ */React.createElement(reactNative.RefreshControl, _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, props.androidRefreshProps || {}), {}, {
301
330
  colors: (_props$androidRefresh = (_props$androidRefresh2 = props.androidRefreshProps) === null || _props$androidRefresh2 === void 0 ? void 0 : _props$androidRefresh2.colors) !== null && _props$androidRefresh !== void 0 ? _props$androidRefresh : props.androidColors,
302
331
  refreshing: !!props.isRefreshing || internalRefreshing,
@@ -317,9 +346,37 @@ function PullRefresh(props) {
317
346
  }
318
347
  })),
319
348
  onScroll: function onScroll(evt) {
320
- if (child.props.onScroll && typeof child.props.onScroll === "function") {
321
- child.props.onScroll(evt);
349
+ if (originalOnScroll && typeof originalOnScroll === "function") {
350
+ originalOnScroll(evt);
351
+ }
352
+ }
353
+ } : hasNativeDriver ? {
354
+ // When the child uses native-driver Animated.event, keep it intact to avoid crashes
355
+ onScroll: originalOnScroll,
356
+ onMomentumScrollEnd: function onMomentumScrollEnd(evt) {
357
+ setScrollY(evt.nativeEvent.contentOffset.y);
358
+ child.props.onMomentumScrollEnd && child.props.onMomentumScrollEnd(evt);
359
+ },
360
+ onScrollEndDrag: function onScrollEndDrag(evt) {
361
+ setScrollY(evt.nativeEvent.contentOffset.y);
362
+ if (pullState === components_PullRefresh_interface_index.PullState.LOADING && evt.nativeEvent.contentOffset.y > 0) {
363
+ var y = Math.max(0, pullAnimHeight - evt.nativeEvent.contentOffset.y);
364
+ viewRef.current && viewRef.current.setNativeProps({
365
+ style: {
366
+ transform: [{
367
+ translateY: y
368
+ }]
369
+ }
370
+ });
371
+ animatedViewRef.current && animatedViewRef.current.setNativeProps({
372
+ style: {
373
+ transform: [{
374
+ translateY: y
375
+ }]
376
+ }
377
+ });
322
378
  }
379
+ child.props.onScrollEndDrag && child.props.onScrollEndDrag(evt);
323
380
  }
324
381
  } : {
325
382
  onScroll: function onScroll(evt) {
@@ -341,11 +398,14 @@ function PullRefresh(props) {
341
398
  }
342
399
  });
343
400
  }
344
- if (child.props.onScroll && typeof child.props.onScroll === "function") {
345
- child.props.onScroll(evt);
401
+ if (originalOnScroll && typeof originalOnScroll === "function") {
402
+ originalOnScroll(evt);
346
403
  }
347
404
  }
348
- }));
405
+ };
406
+ return /*#__PURE__*/React.cloneElement(child, _rollupPluginBabelHelpers._objectSpread2({
407
+ scrollEventThrottle: 1
408
+ }, injectedProps));
349
409
  });
350
410
  }, [pullState, props.children, pullAnimHeight, internalRefreshing, props.isRefreshing, props.nativeAndroidPullRefresh]);
351
411
  var content = React.useMemo(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"PullRefresh.js","sources":["../../../../src/components/PullRefresh/PullRefresh.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect } from \"react\";\nimport {\n View,\n StyleSheet,\n Animated,\n PanResponder,\n Easing,\n LayoutChangeEvent,\n Platform,\n RefreshControl as RNRefreshControl,\n} from \"react-native\";\nimport { RedsPullRefresh, PullRefreshDefaultProps, PullState } from \"./interface/index\";\nimport RefreshControl from \"./component\";\n// alias to avoid confusion when reading diff\nconst CustomRefreshControl = RefreshControl;\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nexport default function PullRefresh(props: RedsPullRefresh) {\n useMounted(\"PullRefresh\");\n // RefreshControl组件高度\n const [pullAnimHeight, setPullAnimHeight] = useState(0);\n\n // 触发刷新的最小下拉距离\n const [minPullDistance, setMinPullDistance] = useState(0);\n\n // 手势\n const [pan] = useState(new Animated.Value(0));\n\n // 滚动距离\n const [scrollY, setScrollY] = useState<number>(0);\n\n // 是否在下拉中\n const [isPulling, setIsPulling] = useState<boolean>(false);\n\n // 是否在刷新中\n const [isRefreshing, setIsRefreshing] = useState<boolean>(false);\n\n // 内部刷新状态(用于默认启用,特别是 Android 或未提供回调时)\n const [internalRefreshing, setInternalRefreshing] = useState<boolean>(false);\n // Android 自动结束计时器\n const androidAutoEndRef = useRef<any>();\n\n // 组合动画\n const [animation, setAnimation] = useState<Animated.CompositeAnimation>();\n\n // 拉取状态\n const [pullState, setPullState] = useState<PullState>(PullState.INIT);\n\n // 移动高度\n const [moveHeight, setMoveHeight] = useState<number>(0);\n\n // 移动百分比\n const [movePercent, setMovePercent] = useState<number>(0);\n\n // 下拉时间间隔\n const [pullTimeout, setPullTimeout] = useState();\n\n // 下拉图标\n const refreshControlRef = useRef();\n\n // view ref\n const viewRef = useRef<View>();\n\n // 动画ref\n const animatedViewRef = useRef<View>();\n\n // 下拉组件的初始top值\n const [top, setTop] = useState<number>(-1000);\n\n // 标记是否已经执行过初始刷新\n const [hasInitRefreshed, setHasInitRefreshed] = useState<boolean>(false);\n\n // 执行初始刷新的方法\n const performInitRefresh = () => {\n if ((pullAnimHeight > 0 && !hasInitRefreshed && props.initRefresh) || props.refresh) {\n // 设置初始状态为拉取状态\n updatePullState(PullState.LOADING);\n\n // 执行下拉动画\n animatedTo(pullAnimHeight, () => {\n setHasInitRefreshed(true);\n setIsRefreshing(true);\n setIsPulling(true);\n // 触发刷新回调\n props.onRequest && props.onRequest();\n });\n }\n };\n\n // 监听 initRefresh 属性和相关依赖变化\n useEffect(() => {\n if ((props.initRefresh && pullAnimHeight > 0 && !hasInitRefreshed && !isRefreshing) || props.refresh) {\n performInitRefresh();\n }\n }, [props.initRefresh, pullAnimHeight, hasInitRefreshed, isRefreshing, props.refresh]);\n // 卸载清理:超时计时器\n useEffect(() => {\n return () => {\n // @ts-ignore\n if (pullTimeout) clearTimeout(pullTimeout);\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n };\n }, [pullTimeout]);\n\n // 释放手指\n const onRelease = () => {\n // 重置偏移位置\n pan.flattenOffset();\n // @ts-ignore\n const panValue = pan._value;\n // 拉动距离大于设定下拉高度\n if (panValue >= pullAnimHeight) {\n animatedTo(pullAnimHeight, () => {\n updatePullState(PullState.LOADING);\n // 如果有回调则调用,否则走默认内部流程(iOS 默认也支持)\n if (props.onRequest) {\n props.onRequest();\n } else {\n setInternalRefreshing(true);\n // 启动一个自动结束计时器,避免没有外部状态时卡住\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n androidAutoEndRef.current = setTimeout(() => {\n setInternalRefreshing(false);\n }, props?.msHoldingTime ?? 1000);\n }\n });\n // 有拉动距离但是不够设定的下拉高度\n } else if (panValue > 0) {\n updatePullState(PullState.FINISH);\n animatedTo(0, () => {\n setIsPulling(false);\n updatePullState(PullState.INIT);\n });\n // 否则就是初始状态\n } else {\n updatePullState(PullState.INIT);\n setIsPulling(false);\n }\n };\n\n // 更新refreshControl状态\n const updatePullState = (state: PullState) => {\n if (pullState === state) {\n return;\n }\n setPullState(state);\n renderRefreshControl(state);\n };\n\n // 下拉动画\n const animatedTo = (toValue: number, cb?: () => void) => {\n let animation: any;\n if (toValue === 0) {\n // 使用弹簧动画实现回弹效果\n animation = Animated.spring(pan, {\n toValue: toValue,\n // 回弹参数配置\n friction: 8, // 控制回弹幅度(值越小幅度越大)\n tension: 60, // 控制回弹速度(值越大速度越快)\n velocity: 1, // 初始速度,增强回弹效果\n useNativeDriver: false,\n });\n } else {\n // 针对初始加载优化动画参数\n const duration =\n !hasInitRefreshed && props.initRefresh\n ? 1000 // 初始加载时使用固定时长\n : Math.abs(((pan as any)._value - toValue) * 1.4);\n animation = Animated.timing(pan, {\n toValue: toValue,\n easing: Easing.bezier(0.1, 0.57, 0.1, 1),\n duration: duration,\n useNativeDriver: false,\n });\n }\n setAnimation(animation);\n animation.start(({ finished }: { finished: boolean }) => {\n if (finished) {\n cb && cb();\n setAnimation(undefined);\n }\n });\n };\n\n // 传递给RefreshControl组件参数用来判断状态\n const renderRefreshControl = (state?: PullState) => {\n const refreshControlProps = {\n pullAnimHeight,\n minPullDistance,\n pullState: state || pullState,\n moveHeight,\n movePercent,\n };\n if (refreshControlRef.current) {\n // @ts-ignore\n refreshControlRef.current.setRefreshControlParams(refreshControlProps);\n }\n };\n\n // 是否能移动手指 - 初始加载时禁用手势\n const canMove = (evt: any, gestureState: any) => {\n // 如果正在初始刷新,禁用手势\n if (props.initRefresh && !hasInitRefreshed) {\n return false;\n }\n return isPulling ? false : scrollY <= 0 && gestureState.vy > 0 && gestureState.vy > Math.abs(gestureState.vx);\n };\n\n // 手势对象\n const panResponder = useMemo(() => {\n if (Platform.OS !== \"ios\" && props.nativeAndroidPullRefresh) {\n // Android 原生下拉时不启用自定义手势\n return PanResponder.create({\n onStartShouldSetPanResponder: () => false,\n onMoveShouldSetPanResponder: () => false,\n onPanResponderTerminationRequest: () => true,\n });\n }\n return PanResponder.create({\n onStartShouldSetPanResponder: canMove,\n onStartShouldSetPanResponderCapture: canMove,\n onMoveShouldSetPanResponder: canMove,\n onMoveShouldSetPanResponderCapture: canMove,\n onPanResponderGrant: () => {\n animation && animation.stop();\n // @ts-ignore\n pan.setOffset(pan._value);\n updatePullState(PullState.PULLING);\n pullTimeout && clearTimeout(pullTimeout);\n },\n onPanResponderMove: (evt, gestureState) => {\n setIsPulling(true);\n // @ts-ignore\n const offset = pan._offset;\n let value = Math.max(offset + gestureState.dy, 0);\n if (value > 0) {\n // 弹簧劲度系数\n pan.setValue(gestureState.dy / 2.2);\n } else {\n pan.setValue(-offset);\n }\n setMoveHeight(value);\n setMovePercent((value / pullAnimHeight) * 100);\n renderRefreshControl();\n },\n onPanResponderRelease: onRelease,\n onPanResponderTerminationRequest() {\n return false;\n },\n onPanResponderTerminate: onRelease,\n onShouldBlockNativeResponder() {\n return true;\n },\n });\n }, [isPulling, scrollY, props.initRefresh, hasInitRefreshed, pullAnimHeight, props.nativeAndroidPullRefresh]);\n\n // 根据外层传递参数变化进行更新执行(自定义实现启用时)\n useEffect(() => {\n if (Platform.OS !== \"ios\" && props.nativeAndroidPullRefresh) return;\n if (pullState === PullState.PULLING && !props.initRefresh) {\n return;\n }\n // 加载中\n const effectiveRefreshing = !!props.isRefreshing || internalRefreshing;\n if (effectiveRefreshing === true && !isRefreshing) {\n animatedTo(pullAnimHeight);\n setIsRefreshing(true);\n updatePullState(PullState.LOADING);\n }\n\n // 外层加载结束 需要重置位置\n if (effectiveRefreshing === false && isRefreshing) {\n setIsPulling(false);\n updatePullState(PullState.HOLDING);\n setPullTimeout(\n //@ts-ignore\n setTimeout(() => {\n animatedTo(0, () => {\n setIsPulling(false);\n updatePullState(PullState.INIT);\n });\n updatePullState(PullState.FINISH);\n }, props?.msHoldingTime ?? 1000),\n );\n\n setIsRefreshing(false);\n }\n }, [isRefreshing, props.msHoldingTime, props.isRefreshing, pullState, internalRefreshing]);\n\n // RefreshControl组件初始化计算\n const onLayout = (evt: LayoutChangeEvent) => {\n const height = props.pullAnimHeight || evt.nativeEvent.layout.height;\n setPullAnimHeight(height);\n setMinPullDistance(props.minPullDistance || height);\n setTop(-height);\n };\n\n // 重写ScrollView的onScroll事件(自定义:用于手势门控/头部位置; Android 原生:注入 RefreshControl)\n const scrollContent = useMemo(() => {\n return React.Children.map(props.children, (child: any) =>\n React.cloneElement(child, {\n // 设置滚动响应频率\n scrollEventThrottle: 1,\n ...(Platform.OS === \"android\" && props.nativeAndroidPullRefresh\n ? {\n refreshControl: (\n <RNRefreshControl\n {...(props.androidRefreshProps || {})}\n colors={((props.androidRefreshProps as any)?.colors ?? props.androidColors) as any}\n refreshing={!!props.isRefreshing || internalRefreshing}\n onRefresh={() => {\n if (!!props.isRefreshing || internalRefreshing) return;\n try {\n props.onRequest && props.onRequest();\n } finally {\n // 默认启用:无回调或未受控时自动结束\n if (!props.onRequest) {\n setInternalRefreshing(true);\n }\n // 无论是否有回调,都启动一个兜底自动结束(避免卡住)\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n androidAutoEndRef.current = setTimeout(() => {\n setInternalRefreshing(false);\n }, props?.msHoldingTime ?? 1000);\n }\n }}\n />\n ),\n onScroll: (evt: any) => {\n if (child.props.onScroll && typeof child.props.onScroll === \"function\") {\n child.props.onScroll(evt);\n }\n },\n }\n : {\n onScroll: (evt: any) => {\n setScrollY(evt.nativeEvent.contentOffset.y);\n // iOS下拉刷新Loading时,ScrollView向上滑动的时候,refreshControl部分同样上滑\n if (pullState === PullState.LOADING && evt.nativeEvent.contentOffset.y > 0) {\n const y = Math.max(0, pullAnimHeight - evt.nativeEvent.contentOffset.y);\n viewRef.current &&\n viewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n animatedViewRef.current &&\n animatedViewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n }\n if (child.props.onScroll && typeof child.props.onScroll === \"function\") {\n child.props.onScroll(evt);\n }\n },\n }),\n }),\n );\n }, [\n pullState,\n props.children,\n pullAnimHeight,\n internalRefreshing,\n props.isRefreshing,\n props.nativeAndroidPullRefresh,\n ]);\n\n // 增加Animated.View控制ScrollView展示位置(自定义)\n const content = useMemo(() => {\n if (Platform.OS === \"android\" && props.nativeAndroidPullRefresh) {\n // Android 直接返回内容(由 RN RefreshControl 控制)\n return <>{scrollContent}</>;\n }\n return (\n <Animated.View\n // @ts-ignore\n ref={viewRef}\n style={{\n transform: [{ translateY: pan }],\n flex: 1,\n }}\n >\n {scrollContent}\n </Animated.View>\n );\n }, [pan, scrollContent, props.nativeAndroidPullRefresh]);\n\n return (\n <View\n style={[styles.container, props.style]}\n {...(Platform.OS === \"ios\" || !props.nativeAndroidPullRefresh ? panResponder.panHandlers : {})}\n testID=\"refresh-container\"\n >\n {Platform.OS === \"ios\" || !props.nativeAndroidPullRefresh ? (\n <Animated.View\n // @ts-ignore\n ref={animatedViewRef}\n onLayout={onLayout}\n style={[\n styles.freshItem,\n {\n top: top,\n height: props.pullAnimHeight,\n transform: [{ translateY: pan }],\n },\n props.controlStyle,\n ]}\n >\n {/* @ts-ignore */}\n <CustomRefreshControl ref={refreshControlRef} {...props} movePercent={movePercent} />\n </Animated.View>\n ) : null}\n {content}\n </View>\n );\n}\nPullRefresh.defaultProps = PullRefreshDefaultProps;\n\nconst styles = StyleSheet.create({\n container: {\n overflow: \"hidden\",\n position: \"relative\",\n flex: 1,\n },\n freshItem: {\n position: \"absolute\",\n width: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 1,\n },\n});\n"],"names":["CustomRefreshControl","RefreshControl","PullRefresh","props","useMounted","_useState","useState","_useState2","_slicedToArray","pullAnimHeight","setPullAnimHeight","_useState3","_useState4","minPullDistance","setMinPullDistance","_useState5","Animated","Value","_useState6","pan","_useState7","_useState8","scrollY","setScrollY","_useState9","_useState0","isPulling","setIsPulling","_useState1","_useState10","isRefreshing","setIsRefreshing","_useState11","_useState12","internalRefreshing","setInternalRefreshing","androidAutoEndRef","useRef","_useState13","_useState14","animation","setAnimation","_useState15","PullState","INIT","_useState16","pullState","setPullState","_useState17","_useState18","moveHeight","setMoveHeight","_useState19","_useState20","movePercent","setMovePercent","_useState21","_useState22","pullTimeout","setPullTimeout","refreshControlRef","viewRef","animatedViewRef","_useState23","_useState24","top","setTop","_useState25","_useState26","hasInitRefreshed","setHasInitRefreshed","performInitRefresh","initRefresh","refresh","updatePullState","LOADING","animatedTo","onRequest","useEffect","current","clearTimeout","onRelease","flattenOffset","panValue","_value","_props$msHoldingTime","setTimeout","msHoldingTime","FINISH","state","renderRefreshControl","toValue","cb","spring","friction","tension","velocity","useNativeDriver","duration","Math","abs","timing","easing","Easing","bezier","start","_ref","finished","refreshControlProps","setRefreshControlParams","canMove","evt","gestureState","vy","vx","panResponder","useMemo","Platform","OS","nativeAndroidPullRefresh","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderTerminationRequest","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","onPanResponderGrant","stop","setOffset","PULLING","onPanResponderMove","offset","_offset","value","max","dy","setValue","onPanResponderRelease","onPanResponderTerminate","onShouldBlockNativeResponder","effectiveRefreshing","_props$msHoldingTime2","HOLDING","onLayout","height","nativeEvent","layout","scrollContent","React","Children","map","children","child","_props$androidRefresh","_props$androidRefresh2","cloneElement","_objectSpread","scrollEventThrottle","refreshControl","createElement","RNRefreshControl","androidRefreshProps","colors","androidColors","refreshing","onRefresh","_props$msHoldingTime3","onScroll","contentOffset","y","setNativeProps","style","transform","translateY","content","View","ref","flex","styles","container","panHandlers","testID","freshItem","controlStyle","defaultProps","PullRefreshDefaultProps","StyleSheet","overflow","position","width","justifyContent","alignItems","zIndex"],"mappings":"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"}
1
+ {"version":3,"file":"PullRefresh.js","sources":["../../../../src/components/PullRefresh/PullRefresh.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect } from \"react\";\nimport {\n View,\n StyleSheet,\n Animated,\n PanResponder,\n Easing,\n LayoutChangeEvent,\n Platform,\n RefreshControl as RNRefreshControl,\n} from \"react-native\";\nimport { RedsPullRefresh, PullRefreshDefaultProps, PullState } from \"./interface/index\";\nimport RefreshControl from \"./component\";\n// alias to avoid confusion when reading diff\nconst CustomRefreshControl = RefreshControl;\nimport useMounted from \"../../pvCount/useUnmountedProcess\";\nexport default function PullRefresh(props: RedsPullRefresh) {\n useMounted(\"PullRefresh\");\n // RefreshControl组件高度\n const [pullAnimHeight, setPullAnimHeight] = useState(0);\n\n // 触发刷新的最小下拉距离\n const [minPullDistance, setMinPullDistance] = useState(0);\n\n // 手势\n const [pan] = useState(new Animated.Value(0));\n\n // 滚动距离\n const [scrollY, setScrollY] = useState<number>(0);\n\n // 是否在下拉中\n const [isPulling, setIsPulling] = useState<boolean>(false);\n\n // 是否在刷新中\n const [isRefreshing, setIsRefreshing] = useState<boolean>(false);\n\n // 内部刷新状态(用于默认启用,特别是 Android 或未提供回调时)\n const [internalRefreshing, setInternalRefreshing] = useState<boolean>(false);\n // Android 自动结束计时器\n const androidAutoEndRef = useRef<any>();\n\n // 组合动画\n const [animation, setAnimation] = useState<Animated.CompositeAnimation>();\n\n // 拉取状态\n const [pullState, setPullState] = useState<PullState>(PullState.INIT);\n\n // 移动高度\n const [moveHeight, setMoveHeight] = useState<number>(0);\n\n // 移动百分比\n const [movePercent, setMovePercent] = useState<number>(0);\n\n // 下拉时间间隔\n const [pullTimeout, setPullTimeout] = useState();\n\n // 下拉图标\n const refreshControlRef = useRef();\n\n // view ref\n const viewRef = useRef<View>();\n\n // 动画ref\n const animatedViewRef = useRef<View>();\n\n // 下拉组件的初始top值\n const [top, setTop] = useState<number>(-1000);\n\n // 标记是否已经执行过初始刷新\n const [hasInitRefreshed, setHasInitRefreshed] = useState<boolean>(false);\n\n // 执行初始刷新的方法\n const performInitRefresh = () => {\n if ((pullAnimHeight > 0 && !hasInitRefreshed && props.initRefresh) || props.refresh) {\n // 设置初始状态为拉取状态\n updatePullState(PullState.LOADING);\n\n // 执行下拉动画\n animatedTo(pullAnimHeight, () => {\n setHasInitRefreshed(true);\n setIsRefreshing(true);\n setIsPulling(true);\n // 触发刷新回调\n props.onRequest && props.onRequest();\n });\n }\n };\n\n // 监听 initRefresh 属性和相关依赖变化\n useEffect(() => {\n if ((props.initRefresh && pullAnimHeight > 0 && !hasInitRefreshed && !isRefreshing) || props.refresh) {\n performInitRefresh();\n }\n }, [props.initRefresh, pullAnimHeight, hasInitRefreshed, isRefreshing, props.refresh]);\n // 卸载清理:超时计时器\n useEffect(() => {\n return () => {\n // @ts-ignore\n if (pullTimeout) clearTimeout(pullTimeout);\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n };\n }, [pullTimeout]);\n\n // 释放手指\n const onRelease = () => {\n // 重置偏移位置\n pan.flattenOffset();\n // @ts-ignore\n const panValue = pan._value;\n // 拉动距离大于设定下拉高度\n if (panValue >= pullAnimHeight) {\n animatedTo(pullAnimHeight, () => {\n updatePullState(PullState.LOADING);\n // 如果有回调则调用,否则走默认内部流程(iOS 默认也支持)\n if (props.onRequest) {\n props.onRequest();\n } else {\n setInternalRefreshing(true);\n // 启动一个自动结束计时器,避免没有外部状态时卡住\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n androidAutoEndRef.current = setTimeout(() => {\n setInternalRefreshing(false);\n }, props?.msHoldingTime ?? 1000);\n }\n });\n // 有拉动距离但是不够设定的下拉高度\n } else if (panValue > 0) {\n updatePullState(PullState.FINISH);\n setMoveHeight(0);\n setMovePercent(0);\n animatedTo(0, () => {\n setIsPulling(false);\n updatePullState(PullState.INIT);\n pan.setValue(0);\n pan.flattenOffset();\n });\n // 否则就是初始状态\n } else {\n updatePullState(PullState.INIT);\n setIsPulling(false);\n setMoveHeight(0);\n setMovePercent(0);\n pan.setValue(0);\n pan.flattenOffset();\n }\n };\n\n // 更新refreshControl状态\n const updatePullState = (state: PullState) => {\n if (pullState === state) {\n return;\n }\n setPullState(state);\n renderRefreshControl(state);\n };\n\n // 下拉动画\n const animatedTo = (toValue: number, cb?: () => void) => {\n let animation: any;\n if (toValue === 0) {\n // 使用弹簧动画实现回弹效果\n animation = Animated.spring(pan, {\n toValue: toValue,\n // 回弹参数配置\n friction: 8, // 控制回弹幅度(值越小幅度越大)\n tension: 60, // 控制回弹速度(值越大速度越快)\n velocity: 1, // 初始速度,增强回弹效果\n useNativeDriver: false,\n });\n } else {\n // 针对初始加载优化动画参数\n const duration =\n !hasInitRefreshed && props.initRefresh\n ? 1000 // 初始加载时使用固定时长\n : Math.abs(((pan as any)._value - toValue) * 1.4);\n animation = Animated.timing(pan, {\n toValue: toValue,\n easing: Easing.bezier(0.1, 0.57, 0.1, 1),\n duration: duration,\n useNativeDriver: false,\n });\n }\n setAnimation(animation);\n animation.start(({ finished }: { finished: boolean }) => {\n if (finished) {\n cb && cb();\n setAnimation(undefined);\n }\n });\n };\n\n // 传递给RefreshControl组件参数用来判断状态\n const renderRefreshControl = (state?: PullState) => {\n const refreshControlProps = {\n pullAnimHeight,\n minPullDistance,\n pullState: state || pullState,\n moveHeight,\n movePercent,\n };\n if (refreshControlRef.current) {\n // @ts-ignore\n refreshControlRef.current.setRefreshControlParams(refreshControlProps);\n }\n };\n\n // 是否能移动手指 - 初始加载时禁用手势\n const canMove = (evt: any, gestureState: any) => {\n // 如果正在初始刷新,禁用手势\n if (props.initRefresh && !hasInitRefreshed) {\n return false;\n }\n // Block during refresh states\n if (isRefreshing || pullState === PullState.LOADING || pullState === PullState.HOLDING) {\n return false;\n }\n // Block if already pulling\n if (isPulling) {\n return false;\n }\n // Explicitly reject upward swipes\n if (gestureState.vy < 0) {\n return false;\n }\n return scrollY <= 0 && gestureState.vy > 0 && gestureState.vy > Math.abs(gestureState.vx);\n };\n\n // 手势对象\n const panResponder = useMemo(() => {\n if (Platform.OS !== \"ios\" && props.nativeAndroidPullRefresh) {\n // Android 原生下拉时不启用自定义手势\n return PanResponder.create({\n onStartShouldSetPanResponder: () => false,\n onMoveShouldSetPanResponder: () => false,\n onPanResponderTerminationRequest: () => true,\n });\n }\n return PanResponder.create({\n onStartShouldSetPanResponder: () => false,\n onStartShouldSetPanResponderCapture: () => false,\n onMoveShouldSetPanResponder: canMove,\n onMoveShouldSetPanResponderCapture: canMove,\n onPanResponderGrant: () => {\n animation && animation.stop();\n pan.flattenOffset();\n // @ts-ignore\n pan.setOffset(pan._value);\n updatePullState(PullState.PULLING);\n pullTimeout && clearTimeout(pullTimeout);\n },\n onPanResponderMove: (evt, gestureState) => {\n setIsPulling(true);\n // @ts-ignore\n const offset = pan._offset;\n let value = Math.max(offset + gestureState.dy, 0);\n if (value > 0) {\n // 弹簧劲度系数\n pan.setValue(gestureState.dy / 2.2);\n } else {\n pan.setValue(-offset);\n }\n setMoveHeight(value);\n setMovePercent((value / pullAnimHeight) * 100);\n renderRefreshControl();\n },\n onPanResponderRelease: onRelease,\n onPanResponderTerminationRequest() {\n if (isPulling || pullState === PullState.PULLING) {\n return false;\n }\n return true;\n },\n onPanResponderTerminate: onRelease,\n onShouldBlockNativeResponder() {\n return isPulling || pullState === PullState.PULLING;\n },\n });\n }, [\n isPulling,\n scrollY,\n props.initRefresh,\n hasInitRefreshed,\n pullAnimHeight,\n props.nativeAndroidPullRefresh,\n isRefreshing,\n pullState,\n ]);\n\n // 根据外层传递参数变化进行更新执行(自定义实现启用时)\n useEffect(() => {\n if (Platform.OS !== \"ios\" && props.nativeAndroidPullRefresh) return;\n if (pullState === PullState.PULLING && !props.initRefresh) {\n return;\n }\n // 加载中\n const effectiveRefreshing = !!props.isRefreshing || internalRefreshing;\n if (effectiveRefreshing === true && !isRefreshing) {\n animatedTo(pullAnimHeight);\n setIsRefreshing(true);\n updatePullState(PullState.LOADING);\n }\n\n // 外层加载结束 需要重置位置\n if (effectiveRefreshing === false && isRefreshing) {\n setIsPulling(false);\n updatePullState(PullState.HOLDING);\n setPullTimeout(\n //@ts-ignore\n setTimeout(() => {\n pan.flattenOffset();\n setMoveHeight(0);\n setMovePercent(0);\n animatedTo(0, () => {\n setIsPulling(false);\n updatePullState(PullState.INIT);\n pan.setValue(0);\n pan.flattenOffset();\n });\n updatePullState(PullState.FINISH);\n }, props?.msHoldingTime ?? 1000),\n );\n\n setIsRefreshing(false);\n }\n }, [isRefreshing, props.msHoldingTime, props.isRefreshing, pullState, internalRefreshing]);\n\n // RefreshControl组件初始化计算\n const onLayout = (evt: LayoutChangeEvent) => {\n const height = props.pullAnimHeight || evt.nativeEvent.layout.height;\n setPullAnimHeight(height);\n setMinPullDistance(props.minPullDistance || height);\n setTop(-height);\n };\n\n // 重写ScrollView的onScroll事件(自定义:用于手势门控/头部位置; Android 原生:注入 RefreshControl)\n const scrollContent = useMemo(() => {\n return React.Children.map(props.children, (child: any) => {\n const originalOnScroll = child.props.onScroll;\n const hasNativeDriver =\n originalOnScroll &&\n (originalOnScroll[\"__isNative\"] === true || (originalOnScroll as any)?._animation?.useNativeDriver === true);\n\n const injectedProps =\n Platform.OS === \"android\" && props.nativeAndroidPullRefresh\n ? {\n refreshControl: (\n <RNRefreshControl\n {...(props.androidRefreshProps || {})}\n colors={((props.androidRefreshProps as any)?.colors ?? props.androidColors) as any}\n refreshing={!!props.isRefreshing || internalRefreshing}\n onRefresh={() => {\n if (!!props.isRefreshing || internalRefreshing) return;\n try {\n props.onRequest && props.onRequest();\n } finally {\n // 默认启用:无回调或未受控时自动结束\n if (!props.onRequest) {\n setInternalRefreshing(true);\n }\n // 无论是否有回调,都启动一个兜底自动结束(避免卡住)\n if (androidAutoEndRef.current) clearTimeout(androidAutoEndRef.current);\n androidAutoEndRef.current = setTimeout(() => {\n setInternalRefreshing(false);\n }, props?.msHoldingTime ?? 1000);\n }\n }}\n />\n ),\n onScroll: (evt: any) => {\n if (originalOnScroll && typeof originalOnScroll === \"function\") {\n originalOnScroll(evt);\n }\n },\n }\n : hasNativeDriver\n ? {\n // When the child uses native-driver Animated.event, keep it intact to avoid crashes\n onScroll: originalOnScroll,\n onMomentumScrollEnd: (evt: any) => {\n setScrollY(evt.nativeEvent.contentOffset.y);\n child.props.onMomentumScrollEnd && child.props.onMomentumScrollEnd(evt);\n },\n onScrollEndDrag: (evt: any) => {\n setScrollY(evt.nativeEvent.contentOffset.y);\n // Keep header position in loading state\n if (pullState === PullState.LOADING && evt.nativeEvent.contentOffset.y > 0) {\n const y = Math.max(0, pullAnimHeight - evt.nativeEvent.contentOffset.y);\n viewRef.current &&\n viewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n animatedViewRef.current &&\n animatedViewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n }\n child.props.onScrollEndDrag && child.props.onScrollEndDrag(evt);\n },\n }\n : {\n onScroll: (evt: any) => {\n setScrollY(evt.nativeEvent.contentOffset.y);\n // iOS下拉刷新Loading时,ScrollView向上滑动的时候,refreshControl部分同样上滑\n if (pullState === PullState.LOADING && evt.nativeEvent.contentOffset.y > 0) {\n const y = Math.max(0, pullAnimHeight - evt.nativeEvent.contentOffset.y);\n viewRef.current &&\n viewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n animatedViewRef.current &&\n animatedViewRef.current.setNativeProps({\n style: {\n transform: [{ translateY: y }],\n },\n });\n }\n if (originalOnScroll && typeof originalOnScroll === \"function\") {\n originalOnScroll(evt);\n }\n },\n };\n\n return React.cloneElement(child, {\n scrollEventThrottle: 1,\n ...injectedProps,\n });\n });\n }, [\n pullState,\n props.children,\n pullAnimHeight,\n internalRefreshing,\n props.isRefreshing,\n props.nativeAndroidPullRefresh,\n ]);\n\n // 增加Animated.View控制ScrollView展示位置(自定义)\n const content = useMemo(() => {\n if (Platform.OS === \"android\" && props.nativeAndroidPullRefresh) {\n // Android 直接返回内容(由 RN RefreshControl 控制)\n return <>{scrollContent}</>;\n }\n return (\n <Animated.View\n // @ts-ignore\n ref={viewRef}\n style={{\n transform: [{ translateY: pan }],\n flex: 1,\n }}\n >\n {scrollContent}\n </Animated.View>\n );\n }, [pan, scrollContent, props.nativeAndroidPullRefresh]);\n\n return (\n <View\n style={[styles.container, props.style]}\n {...(Platform.OS === \"ios\" || !props.nativeAndroidPullRefresh ? panResponder.panHandlers : {})}\n testID=\"refresh-container\"\n >\n {Platform.OS === \"ios\" || !props.nativeAndroidPullRefresh ? (\n <Animated.View\n // @ts-ignore\n ref={animatedViewRef}\n onLayout={onLayout}\n style={[\n styles.freshItem,\n {\n top: top,\n height: props.pullAnimHeight,\n transform: [{ translateY: pan }],\n },\n props.controlStyle,\n ]}\n >\n {/* @ts-ignore */}\n <CustomRefreshControl ref={refreshControlRef} {...props} movePercent={movePercent} />\n </Animated.View>\n ) : null}\n {content}\n </View>\n );\n}\nPullRefresh.defaultProps = PullRefreshDefaultProps;\n\nconst styles = StyleSheet.create({\n container: {\n overflow: \"hidden\",\n position: \"relative\",\n flex: 1,\n },\n freshItem: {\n position: \"absolute\",\n width: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 1,\n },\n});\n"],"names":["CustomRefreshControl","RefreshControl","PullRefresh","props","useMounted","_useState","useState","_useState2","_slicedToArray","pullAnimHeight","setPullAnimHeight","_useState3","_useState4","minPullDistance","setMinPullDistance","_useState5","Animated","Value","_useState6","pan","_useState7","_useState8","scrollY","setScrollY","_useState9","_useState0","isPulling","setIsPulling","_useState1","_useState10","isRefreshing","setIsRefreshing","_useState11","_useState12","internalRefreshing","setInternalRefreshing","androidAutoEndRef","useRef","_useState13","_useState14","animation","setAnimation","_useState15","PullState","INIT","_useState16","pullState","setPullState","_useState17","_useState18","moveHeight","setMoveHeight","_useState19","_useState20","movePercent","setMovePercent","_useState21","_useState22","pullTimeout","setPullTimeout","refreshControlRef","viewRef","animatedViewRef","_useState23","_useState24","top","setTop","_useState25","_useState26","hasInitRefreshed","setHasInitRefreshed","performInitRefresh","initRefresh","refresh","updatePullState","LOADING","animatedTo","onRequest","useEffect","current","clearTimeout","onRelease","flattenOffset","panValue","_value","_props$msHoldingTime","setTimeout","msHoldingTime","FINISH","setValue","state","renderRefreshControl","toValue","cb","spring","friction","tension","velocity","useNativeDriver","duration","Math","abs","timing","easing","Easing","bezier","start","_ref","finished","refreshControlProps","setRefreshControlParams","canMove","evt","gestureState","HOLDING","vy","vx","panResponder","useMemo","Platform","OS","nativeAndroidPullRefresh","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderTerminationRequest","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","onPanResponderGrant","stop","setOffset","PULLING","onPanResponderMove","offset","_offset","value","max","dy","onPanResponderRelease","onPanResponderTerminate","onShouldBlockNativeResponder","effectiveRefreshing","_props$msHoldingTime2","onLayout","height","nativeEvent","layout","scrollContent","React","Children","map","children","child","_originalOnScroll$_an","_props$androidRefresh","_props$androidRefresh2","originalOnScroll","onScroll","hasNativeDriver","_animation","injectedProps","refreshControl","createElement","RNRefreshControl","_objectSpread","androidRefreshProps","colors","androidColors","refreshing","onRefresh","_props$msHoldingTime3","onMomentumScrollEnd","contentOffset","y","onScrollEndDrag","setNativeProps","style","transform","translateY","cloneElement","scrollEventThrottle","content","View","ref","flex","styles","container","panHandlers","testID","freshItem","controlStyle","defaultProps","PullRefreshDefaultProps","StyleSheet","overflow","position","width","justifyContent","alignItems","zIndex"],"mappings":"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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactNative = require('react-native');
7
- var Svg = require('@xhs/reds-components/libs/svg');
7
+ var Svg = require('react-native-svg');
8
8
 
9
9
  var AnimatedPath = reactNative.Animated.createAnimatedComponent(Svg.Path);
10
10
  var CircleAnimation = function CircleAnimation(_ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"Refresh.js","sources":["../../../../src/components/PullRefresh/Refresh.tsx"],"sourcesContent":["import React, { useEffect, useRef, useMemo } from \"react\";\nimport { View, StyleSheet, Animated, Easing } from \"react-native\";\nimport Svg, { Path } from \"@xhs/reds-components/libs/svg\";\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nconst CircleAnimation = ({ movePercent }: { movePercent: number }) => {\n const radius = 9;\n const circumference = Math.PI * radius; // 半圆周长\n const percent = useMemo(() => {\n return Math.min((movePercent / 100) * 0.5, 0.9);\n }, [movePercent]);\n\n const blueProgress = useRef(new Animated.Value(0)).current;\n const redProgress = useRef(new Animated.Value(0)).current;\n useEffect(() => {\n // 蓝色半圆动画:从9点钟开始逆时针到3点钟\n Animated.timing(blueProgress, {\n toValue: percent,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true,\n }).start();\n\n // 红色半圆动画:从3点钟开始逆时针到9点钟\n Animated.timing(redProgress, {\n toValue: percent,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true,\n }).start();\n }, [percent]);\n\n // 蓝色半圆路径\n const bluePath = `\n M -${radius}, 0\n A ${radius} ${radius} 0 0 1 ${radius}, 0\n `;\n\n // 红色半圆路径(反向)\n const redPath = `\n M ${radius}, 0\n A ${radius} ${radius} 0 0 1 -${radius}, 0\n `;\n\n return (\n <Svg\n width={radius * 2 + 10}\n height={radius * 2 + 10}\n viewBox={`${-radius - 5} ${-radius - 5} ${radius * 2 + 10} ${radius * 2 + 10}`}\n >\n {/* 蓝色半圆 */}\n <AnimatedPath\n d={bluePath}\n stroke=\"#ccc\"\n strokeWidth=\"2\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={blueProgress.interpolate({\n inputRange: [0, 1],\n outputRange: [circumference, 0],\n })}\n />\n\n {/* 红色半圆 */}\n <AnimatedPath\n d={redPath}\n stroke=\"#ccc\"\n strokeWidth=\"2\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={redProgress.interpolate({\n inputRange: [0, 1],\n outputRange: [circumference, 0],\n })}\n />\n </Svg>\n );\n};\n\nexport default CircleAnimation;\n"],"names":["AnimatedPath","Animated","createAnimatedComponent","Path","CircleAnimation","_ref","movePercent","radius","circumference","Math","PI","percent","useMemo","min","blueProgress","useRef","Value","current","redProgress","useEffect","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","bluePath","concat","redPath","React","createElement","Svg","width","height","viewBox","d","stroke","strokeWidth","fill","strokeDasharray","strokeDashoffset","interpolate","inputRange","outputRange"],"mappings":"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"}
1
+ {"version":3,"file":"Refresh.js","sources":["../../../../src/components/PullRefresh/Refresh.tsx"],"sourcesContent":["import React, { useEffect, useRef, useMemo } from \"react\";\nimport { View, StyleSheet, Animated, Easing } from \"react-native\";\nimport Svg, { Path } from \"react-native-svg\";\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nconst CircleAnimation = ({ movePercent }: { movePercent: number }) => {\n const radius = 9;\n const circumference = Math.PI * radius; // 半圆周长\n const percent = useMemo(() => {\n return Math.min((movePercent / 100) * 0.5, 0.9);\n }, [movePercent]);\n\n const blueProgress = useRef(new Animated.Value(0)).current;\n const redProgress = useRef(new Animated.Value(0)).current;\n useEffect(() => {\n // 蓝色半圆动画:从9点钟开始逆时针到3点钟\n Animated.timing(blueProgress, {\n toValue: percent,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true,\n }).start();\n\n // 红色半圆动画:从3点钟开始逆时针到9点钟\n Animated.timing(redProgress, {\n toValue: percent,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true,\n }).start();\n }, [percent]);\n\n // 蓝色半圆路径\n const bluePath = `\n M -${radius}, 0\n A ${radius} ${radius} 0 0 1 ${radius}, 0\n `;\n\n // 红色半圆路径(反向)\n const redPath = `\n M ${radius}, 0\n A ${radius} ${radius} 0 0 1 -${radius}, 0\n `;\n\n return (\n <Svg\n width={radius * 2 + 10}\n height={radius * 2 + 10}\n viewBox={`${-radius - 5} ${-radius - 5} ${radius * 2 + 10} ${radius * 2 + 10}`}\n >\n {/* 蓝色半圆 */}\n <AnimatedPath\n d={bluePath}\n stroke=\"#ccc\"\n strokeWidth=\"2\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={blueProgress.interpolate({\n inputRange: [0, 1],\n outputRange: [circumference, 0],\n })}\n />\n\n {/* 红色半圆 */}\n <AnimatedPath\n d={redPath}\n stroke=\"#ccc\"\n strokeWidth=\"2\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={redProgress.interpolate({\n inputRange: [0, 1],\n outputRange: [circumference, 0],\n })}\n />\n </Svg>\n );\n};\n\nexport default CircleAnimation;\n"],"names":["AnimatedPath","Animated","createAnimatedComponent","Path","CircleAnimation","_ref","movePercent","radius","circumference","Math","PI","percent","useMemo","min","blueProgress","useRef","Value","current","redProgress","useEffect","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","bluePath","concat","redPath","React","createElement","Svg","width","height","viewBox","d","stroke","strokeWidth","fill","strokeDasharray","strokeDashoffset","interpolate","inputRange","outputRange"],"mappings":"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"}