@one-am/react-native-simple-image-slider 0.14.0 → 0.16.0

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 (90) hide show
  1. package/README.md +15 -9
  2. package/lib/commonjs/@types/common.js.map +1 -1
  3. package/lib/commonjs/@types/icons.js.map +1 -1
  4. package/lib/commonjs/@types/pinch-to-zoom.js +0 -4
  5. package/lib/commonjs/@types/pinch-to-zoom.js.map +1 -1
  6. package/lib/commonjs/@types/slider.js.map +1 -1
  7. package/lib/commonjs/AbsoluteComponentContainer.js +34 -0
  8. package/lib/commonjs/AbsoluteComponentContainer.js.map +1 -0
  9. package/lib/commonjs/BaseSimpleImageSlider.js +129 -157
  10. package/lib/commonjs/BaseSimpleImageSlider.js.map +1 -1
  11. package/lib/commonjs/FullScreenImageSlider.js +46 -51
  12. package/lib/commonjs/FullScreenImageSlider.js.map +1 -1
  13. package/lib/commonjs/PageCounter.js +30 -23
  14. package/lib/commonjs/PageCounter.js.map +1 -1
  15. package/lib/commonjs/PinchToZoom.js +16 -13
  16. package/lib/commonjs/PinchToZoom.js.map +1 -1
  17. package/lib/commonjs/SimpleImageSlider.js +31 -25
  18. package/lib/commonjs/SimpleImageSlider.js.map +1 -1
  19. package/lib/commonjs/SimpleImageSliderThemeProvider.js +26 -20
  20. package/lib/commonjs/SimpleImageSliderThemeProvider.js.map +1 -1
  21. package/lib/commonjs/icons/IconX.js +16 -14
  22. package/lib/commonjs/icons/IconX.js.map +1 -1
  23. package/lib/commonjs/index.js +10 -2
  24. package/lib/commonjs/index.js.map +1 -1
  25. package/lib/commonjs/package.json +1 -0
  26. package/lib/commonjs/utils/clamp.js.map +1 -1
  27. package/lib/commonjs/utils/renderProp.js +3 -2
  28. package/lib/commonjs/utils/renderProp.js.map +1 -1
  29. package/lib/module/@types/common.js +1 -1
  30. package/lib/module/@types/common.js.map +1 -1
  31. package/lib/module/@types/icons.js +2 -0
  32. package/lib/module/@types/icons.js.map +1 -1
  33. package/lib/module/@types/pinch-to-zoom.js +1 -1
  34. package/lib/module/@types/pinch-to-zoom.js.map +1 -1
  35. package/lib/module/@types/slider.js +2 -0
  36. package/lib/module/@types/slider.js.map +1 -1
  37. package/lib/module/AbsoluteComponentContainer.js +28 -0
  38. package/lib/module/AbsoluteComponentContainer.js.map +1 -0
  39. package/lib/module/BaseSimpleImageSlider.js +130 -156
  40. package/lib/module/BaseSimpleImageSlider.js.map +1 -1
  41. package/lib/module/FullScreenImageSlider.js +47 -50
  42. package/lib/module/FullScreenImageSlider.js.map +1 -1
  43. package/lib/module/PageCounter.js +31 -23
  44. package/lib/module/PageCounter.js.map +1 -1
  45. package/lib/module/PinchToZoom.js +17 -12
  46. package/lib/module/PinchToZoom.js.map +1 -1
  47. package/lib/module/SimpleImageSlider.js +31 -23
  48. package/lib/module/SimpleImageSlider.js.map +1 -1
  49. package/lib/module/SimpleImageSliderThemeProvider.js +27 -20
  50. package/lib/module/SimpleImageSliderThemeProvider.js.map +1 -1
  51. package/lib/module/icons/IconX.js +16 -12
  52. package/lib/module/icons/IconX.js.map +1 -1
  53. package/lib/module/index.js +4 -2
  54. package/lib/module/index.js.map +1 -1
  55. package/lib/module/package.json +1 -0
  56. package/lib/module/utils/clamp.js +2 -0
  57. package/lib/module/utils/clamp.js.map +1 -1
  58. package/lib/module/utils/renderProp.js +4 -1
  59. package/lib/module/utils/renderProp.js.map +1 -1
  60. package/lib/typescript/src/@types/pinch-to-zoom.d.ts +3 -4
  61. package/lib/typescript/src/@types/pinch-to-zoom.d.ts.map +1 -1
  62. package/lib/typescript/src/AbsoluteComponentContainer.d.ts +7 -0
  63. package/lib/typescript/src/AbsoluteComponentContainer.d.ts.map +1 -0
  64. package/lib/typescript/src/BaseSimpleImageSlider.d.ts +1 -1
  65. package/lib/typescript/src/BaseSimpleImageSlider.d.ts.map +1 -1
  66. package/lib/typescript/src/FullScreenImageSlider.d.ts +4 -4
  67. package/lib/typescript/src/FullScreenImageSlider.d.ts.map +1 -1
  68. package/lib/typescript/src/PageCounter.d.ts.map +1 -1
  69. package/lib/typescript/src/PinchToZoom.d.ts.map +1 -1
  70. package/lib/typescript/src/SimpleImageSlider.d.ts +15 -3
  71. package/lib/typescript/src/SimpleImageSlider.d.ts.map +1 -1
  72. package/lib/typescript/src/SimpleImageSliderThemeProvider.d.ts +10 -2
  73. package/lib/typescript/src/SimpleImageSliderThemeProvider.d.ts.map +1 -1
  74. package/lib/typescript/src/index.d.ts +2 -3
  75. package/lib/typescript/src/index.d.ts.map +1 -1
  76. package/package.json +161 -161
  77. package/src/@types/pinch-to-zoom.ts +3 -5
  78. package/src/AbsoluteComponentContainer.tsx +30 -0
  79. package/src/BaseSimpleImageSlider.tsx +119 -150
  80. package/src/FullScreenImageSlider.tsx +40 -38
  81. package/src/PageCounter.tsx +35 -17
  82. package/src/PinchToZoom.tsx +10 -9
  83. package/src/SimpleImageSlider.tsx +10 -0
  84. package/src/SimpleImageSliderThemeProvider.tsx +32 -13
  85. package/src/index.tsx +7 -2
  86. package/lib/commonjs/@types/styled.d.js +0 -4
  87. package/lib/commonjs/@types/styled.d.js.map +0 -1
  88. package/lib/module/@types/styled.d.js +0 -2
  89. package/lib/module/@types/styled.d.js.map +0 -1
  90. package/src/@types/styled.d.ts +0 -17
package/package.json CHANGED
@@ -1,167 +1,167 @@
1
1
  {
2
- "name": "@one-am/react-native-simple-image-slider",
3
- "version": "0.14.0",
4
- "description": "A simple and performant image slider made with FlashList. Includes a full screen gallery component with gesture support.",
5
- "main": "lib/commonjs/index",
6
- "module": "lib/module/index",
7
- "types": "lib/typescript/src/index.d.ts",
8
- "react-native": "src/index",
9
- "source": "src/index",
10
- "files": [
11
- "src",
12
- "lib",
13
- "android",
14
- "ios",
15
- "cpp",
16
- "*.podspec",
17
- "!ios/build",
18
- "!android/build",
19
- "!android/gradle",
20
- "!android/gradlew",
21
- "!android/gradlew.bat",
22
- "!android/local.properties",
23
- "!**/__tests__",
24
- "!**/__fixtures__",
25
- "!**/__mocks__",
26
- "!**/.*"
27
- ],
28
- "scripts": {
29
- "example": "yarn workspace @one-am/react-native-simple-image-slider-example",
30
- "test": "jest",
31
- "typecheck": "tsc --noEmit",
32
- "lint": "eslint \"**/*.{js,ts,tsx}\"",
33
- "clean": "del-cli lib",
34
- "prepare": "bob build",
35
- "release": "release-it"
36
- },
37
- "keywords": [
38
- "react-native",
39
- "ios",
40
- "android"
41
- ],
42
- "repository": {
43
- "type": "git",
44
- "url": "git+https://github.com/one-am-it/react-native-simple-image-slider.git"
45
- },
46
- "author": "one-am <info@oneam.it> (https://github.com/one-am-it)",
47
- "license": "MIT",
48
- "bugs": {
49
- "url": "https://github.com/one-am-it/react-native-simple-image-slider/issues"
50
- },
51
- "homepage": "https://github.com/one-am-it/react-native-simple-image-slider#readme",
52
- "publishConfig": {
53
- "registry": "https://registry.npmjs.org/",
54
- "access": "public"
55
- },
56
- "devDependencies": {
57
- "@babel/runtime": "^7.24.1",
58
- "@commitlint/config-conventional": "^17.0.2",
59
- "@evilmartians/lefthook": "^1.5.0",
60
- "@react-native/babel-preset": "^0.75.0-main",
61
- "@react-native/eslint-config": "^0.73.1",
62
- "@release-it/conventional-changelog": "^5.0.0",
63
- "@shopify/flash-list": "^1.6.3",
64
- "@types/jest": "^29.5.5",
65
- "@types/react": "^18.2.44",
66
- "@typescript-eslint/eslint-plugin": "^5.62.0",
67
- "@typescript-eslint/parser": "^5.62.0",
68
- "babel-plugin-styled-components": "^2.1.4",
69
- "commitlint": "^17.0.2",
70
- "del-cli": "^5.1.0",
71
- "eslint": "^8.56.0",
72
- "eslint-config-prettier": "^9.1.0",
73
- "eslint-config-standard-with-typescript": "^37.0.0",
74
- "eslint-plugin-ft-flow": "^3.0.7",
75
- "eslint-plugin-import": "^2.29.1",
76
- "eslint-plugin-n": "^16.6.2",
77
- "eslint-plugin-prettier": "^5.0.1",
78
- "eslint-plugin-promise": "^6.1.1",
79
- "eslint-plugin-react": "^7.33.2",
80
- "eslint-plugin-react-hooks": "^4.6.0",
81
- "eslint-plugin-react-native": "^4.1.0",
82
- "expo-haptics": "^12.8.1",
83
- "expo-image": "^1.10.6",
84
- "expo-status-bar": "^1.11.1",
85
- "jest": "^29.7.0",
86
- "prettier": "^3.2.5",
87
- "react": "18.2.0",
88
- "react-native": "0.73.6",
89
- "react-native-builder-bob": "^0.20.0",
90
- "react-native-gesture-handler": "^2.15.0",
91
- "react-native-reanimated": "^3.3.0",
92
- "react-native-safe-area-context": "^4.9.0",
93
- "react-native-svg": "^15.1.0",
94
- "release-it": "^15.0.0",
95
- "styled-components": "^6.1.8",
96
- "typescript": "^5.4.2",
97
- "typescript-plugin-styled-components": "^3.0.0"
98
- },
99
- "resolutions": {
100
- "@types/react": "^18.2.44",
101
- "styled-components": "^6"
102
- },
103
- "peerDependencies": {
104
- "@babel/core": "*",
105
- "@babel/runtime": "*",
106
- "expo-haptics": "*",
107
- "expo-image": "*",
108
- "expo-status-bar": "*",
109
- "react": "*",
110
- "react-native": "*",
111
- "react-native-gesture-handler": "*",
112
- "react-native-reanimated": "*",
113
- "react-native-safe-area-context": "*",
114
- "react-native-svg": "*",
115
- "styled-components": "*"
116
- },
117
- "workspaces": [
118
- "example"
119
- ],
120
- "packageManager": "yarn@3.6.1",
121
- "jest": {
122
- "preset": "react-native",
123
- "modulePathIgnorePatterns": [
124
- "<rootDir>/example/node_modules",
125
- "<rootDir>/lib/"
126
- ]
127
- },
128
- "commitlint": {
129
- "extends": [
130
- "@commitlint/config-conventional"
131
- ]
132
- },
133
- "release-it": {
134
- "git": {
135
- "commitMessage": "chore: release ${version}",
136
- "tagName": "v${version}"
2
+ "name": "@one-am/react-native-simple-image-slider",
3
+ "version": "0.16.0",
4
+ "description": "A simple and performant image slider made with FlashList. Includes a full screen gallery component with gesture support.",
5
+ "main": "lib/commonjs/index",
6
+ "module": "lib/module/index",
7
+ "types": "lib/typescript/src/index.d.ts",
8
+ "react-native": "src/index",
9
+ "source": "src/index",
10
+ "files": [
11
+ "src",
12
+ "lib",
13
+ "android",
14
+ "ios",
15
+ "cpp",
16
+ "*.podspec",
17
+ "!ios/build",
18
+ "!android/build",
19
+ "!android/gradle",
20
+ "!android/gradlew",
21
+ "!android/gradlew.bat",
22
+ "!android/local.properties",
23
+ "!**/__tests__",
24
+ "!**/__fixtures__",
25
+ "!**/__mocks__",
26
+ "!**/.*"
27
+ ],
28
+ "scripts": {
29
+ "example": "yarn workspace @one-am/react-native-simple-image-slider-example",
30
+ "test": "jest",
31
+ "typecheck": "tsc --noEmit",
32
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
33
+ "clean": "del-cli lib",
34
+ "prepare": "bob build",
35
+ "release": "release-it",
36
+ "sync:deps": "node bin/sync-peer-to-dev.js"
137
37
  },
138
- "npm": {
139
- "publish": true
38
+ "keywords": [
39
+ "react-native",
40
+ "image-slider",
41
+ "gallery"
42
+ ],
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "git+https://github.com/one-am-it/react-native-simple-image-slider.git"
140
46
  },
141
- "gitlab": {
142
- "release": true
47
+ "author": "one-am <info@oneam.it> (https://github.com/one-am-it)",
48
+ "license": "MIT",
49
+ "bugs": {
50
+ "url": "https://github.com/one-am-it/react-native-simple-image-slider/issues"
143
51
  },
144
- "plugins": {
145
- "@release-it/conventional-changelog": {
146
- "preset": "angular"
147
- }
148
- }
149
- },
150
- "react-native-builder-bob": {
151
- "source": "src",
152
- "output": "lib",
153
- "targets": [
154
- "commonjs",
155
- "module",
156
- [
157
- "typescript",
158
- {
159
- "project": "tsconfig.build.json"
52
+ "homepage": "https://github.com/one-am-it/react-native-simple-image-slider#readme",
53
+ "publishConfig": {
54
+ "registry": "https://registry.npmjs.org/",
55
+ "access": "public"
56
+ },
57
+ "dependencies": {
58
+ "merge-refs": "^1.2.2"
59
+ },
60
+ "peerDependencies": {
61
+ "@shopify/flash-list": "<2.0.0",
62
+ "expo-haptics": "*",
63
+ "expo-image": "*",
64
+ "expo-status-bar": "*",
65
+ "react": "*",
66
+ "react-native": "*",
67
+ "react-native-gesture-handler": "*",
68
+ "react-native-reanimated": "*",
69
+ "react-native-safe-area-context": "*",
70
+ "react-native-svg": "*"
71
+ },
72
+ "devDependencies": {
73
+ "@babel/runtime": "^7.27.6",
74
+ "@commitlint/config-conventional": "^17.0.2",
75
+ "@evilmartians/lefthook": "^1.5.0",
76
+ "@react-native/babel-preset": "^0.75.0-main",
77
+ "@react-native/eslint-config": "^0.73.1",
78
+ "@release-it/conventional-changelog": "^5.0.0",
79
+ "@shopify/flash-list": "1.8.2",
80
+ "@types/jest": "^29.5.5",
81
+ "@types/react": "^18.2.44",
82
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
83
+ "@typescript-eslint/parser": "^5.62.0",
84
+ "babel-plugin-styled-components": "^2.1.4",
85
+ "commitlint": "^17.0.2",
86
+ "del-cli": "^5.1.0",
87
+ "eslint": "^8.56.0",
88
+ "eslint-config-prettier": "^9.1.0",
89
+ "eslint-config-standard-with-typescript": "^37.0.0",
90
+ "eslint-plugin-ft-flow": "^3.0.7",
91
+ "eslint-plugin-import": "^2.29.1",
92
+ "eslint-plugin-n": "^16.6.2",
93
+ "eslint-plugin-prettier": "^5.0.1",
94
+ "eslint-plugin-promise": "^6.1.1",
95
+ "eslint-plugin-react": "^7.33.2",
96
+ "eslint-plugin-react-hooks": "^4.6.0",
97
+ "eslint-plugin-react-native": "^4.1.0",
98
+ "expo-haptics": "~14.1.4",
99
+ "expo-image": "~2.3.0",
100
+ "expo-status-bar": "~2.2.3",
101
+ "expo-system-ui": "~5.0.9",
102
+ "jest": "^29.7.0",
103
+ "prettier": "^3.4.2",
104
+ "react": "19.0.0",
105
+ "react-dom": "19.0.0",
106
+ "react-native": "0.79.4",
107
+ "react-native-builder-bob": "^0.35.2",
108
+ "react-native-gesture-handler": "~2.24.0",
109
+ "react-native-reanimated": "~3.17.4",
110
+ "react-native-safe-area-context": "5.4.0",
111
+ "react-native-svg": "15.11.2",
112
+ "react-native-web": "^0.20.0",
113
+ "release-it": "^15.0.0",
114
+ "typescript": "^5.4.2",
115
+ "typescript-plugin-styled-components": "^3.0.0"
116
+ },
117
+ "resolutions": {
118
+ "styled-components": "^6.1.13"
119
+ },
120
+ "workspaces": [
121
+ "example"
122
+ ],
123
+ "packageManager": "yarn@3.6.1",
124
+ "jest": {
125
+ "preset": "react-native",
126
+ "modulePathIgnorePatterns": [
127
+ "<rootDir>/example/node_modules",
128
+ "<rootDir>/lib/"
129
+ ]
130
+ },
131
+ "commitlint": {
132
+ "extends": [
133
+ "@commitlint/config-conventional"
134
+ ]
135
+ },
136
+ "release-it": {
137
+ "git": {
138
+ "commitMessage": "chore: release ${version}",
139
+ "tagName": "v${version}"
140
+ },
141
+ "npm": {
142
+ "publish": true
143
+ },
144
+ "gitlab": {
145
+ "release": true
146
+ },
147
+ "plugins": {
148
+ "@release-it/conventional-changelog": {
149
+ "preset": "angular"
150
+ }
160
151
  }
161
- ]
162
- ]
163
- },
164
- "dependencies": {
165
- "merge-refs": "^1.2.2"
166
- }
152
+ },
153
+ "react-native-builder-bob": {
154
+ "source": "src",
155
+ "output": "lib",
156
+ "targets": [
157
+ "commonjs",
158
+ "module",
159
+ [
160
+ "typescript",
161
+ {
162
+ "project": "tsconfig.build.json"
163
+ }
164
+ ]
165
+ ]
166
+ }
167
167
  }
@@ -1,9 +1,7 @@
1
- import type { SharedValue } from 'react-native-reanimated';
2
-
3
1
  export type PinchToZoomStatus = {
4
- scale: SharedValue<number>;
2
+ scale: number;
5
3
  translation: {
6
- x: SharedValue<number>;
7
- y: SharedValue<number>;
4
+ x: number;
5
+ y: number;
8
6
  };
9
7
  };
@@ -0,0 +1,30 @@
1
+ import React, { useMemo } from 'react';
2
+
3
+ import type { PropsWithChildren } from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+
6
+ export type AbsoluteComponentContainerProps = PropsWithChildren<{
7
+ position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
8
+ }>;
9
+
10
+ export function AbsoluteComponentContainer({
11
+ position,
12
+ children,
13
+ }: AbsoluteComponentContainerProps) {
14
+ const styles = useMemo(() => makeStyles(position), [position]);
15
+
16
+ return <View style={styles.container}>{children}</View>;
17
+ }
18
+
19
+ const makeStyles = (position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right') => {
20
+ return StyleSheet.create({
21
+ container: {
22
+ zIndex: 1000,
23
+ position: 'absolute',
24
+ bottom: position === 'bottom-left' || position === 'bottom-right' ? 16 : 'auto',
25
+ top: position === 'top-left' || position === 'top-right' ? 16 : 'auto',
26
+ left: position === 'top-left' || position === 'bottom-left' ? 16 : 'auto',
27
+ right: position === 'top-right' || position === 'bottom-right' ? 16 : 'auto',
28
+ },
29
+ });
30
+ };