@shakenbake/react-native 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -0
- package/dist/ShakeNbakeProvider.d.ts.map +1 -1
- package/dist/ShakeNbakeProvider.js +11 -3
- package/dist/ShakeNbakeProvider.js.map +1 -1
- package/dist/capture/screenshot.d.ts.map +1 -1
- package/dist/capture/screenshot.js +7 -1
- package/dist/capture/screenshot.js.map +1 -1
- package/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# @shakenbake/react-native
|
|
2
|
+
|
|
3
|
+
React Native SDK for ShakeNbake bug reporting. Users shake their device to capture a screenshot, annotate it with Skia-powered drawing tools, optionally record audio, and submit a bug report.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# yarn
|
|
9
|
+
yarn add @shakenbake/react-native
|
|
10
|
+
|
|
11
|
+
# npm
|
|
12
|
+
npm install @shakenbake/react-native
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Peer Dependencies
|
|
16
|
+
|
|
17
|
+
The following peer dependencies must be installed in your project:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx expo install react-native-shake react-native-view-shot @shopify/react-native-skia
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
| Package | Purpose |
|
|
24
|
+
|---------|---------|
|
|
25
|
+
| `react-native-shake` | Device shake detection trigger |
|
|
26
|
+
| `react-native-view-shot` | Screenshot capture |
|
|
27
|
+
| `@shopify/react-native-skia` | GPU-accelerated annotation overlay |
|
|
28
|
+
| `@shakenbake/core` | Shared types and plugin interfaces |
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
Wrap your app with `ShakeNbakeProvider` and supply a destination adapter (e.g. `@shakenbake/linear`):
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { ShakeNbakeProvider } from '@shakenbake/react-native';
|
|
36
|
+
import { LinearAdapter } from '@shakenbake/linear';
|
|
37
|
+
|
|
38
|
+
const linear = new LinearAdapter({
|
|
39
|
+
apiKey: process.env.LINEAR_API_KEY!,
|
|
40
|
+
teamId: 'YOUR_TEAM_ID',
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export default function App() {
|
|
44
|
+
return (
|
|
45
|
+
<ShakeNbakeProvider destination={linear}>
|
|
46
|
+
{/* your app content */}
|
|
47
|
+
</ShakeNbakeProvider>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
When the user shakes the device, the SDK captures a screenshot, opens an annotation overlay, and presents a report form pre-filled with device and app context.
|
|
53
|
+
|
|
54
|
+
## Troubleshooting
|
|
55
|
+
|
|
56
|
+
### react-native-shake autolinking in Expo monorepos
|
|
57
|
+
|
|
58
|
+
In monorepo setups, `react-native-shake` strict package exports may prevent the React Native autolinking discovery from resolving the module. If you see autolinking errors during `npx expo prebuild`, create a `react-native.config.js` in your app root:
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
const path = require('path');
|
|
62
|
+
|
|
63
|
+
module.exports = {
|
|
64
|
+
dependencies: {
|
|
65
|
+
'react-native-shake': {
|
|
66
|
+
root: path.resolve(__dirname, '../../node_modules/react-native-shake'),
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
After adding or updating native dependencies, rebuild with:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npx expo prebuild --clean
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
> **Note:** `react-native-shake` requires native modules and is not supported in Expo Go. You must use an Expo development build (`npx expo run:ios` or `npx expo run:android`).
|
|
79
|
+
|
|
80
|
+
### Android GL/Skia screenshot capture
|
|
81
|
+
|
|
82
|
+
On Android, `react-native-view-shot` may produce blank or incomplete screenshots when GL-rendered surfaces (Skia, MapView, camera previews) are present. The SDK automatically enables `handleGLSurfaceViewOnAndroid` on Android to ensure these surfaces are captured correctly. No manual configuration is needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShakeNbakeProvider.d.ts","sourceRoot":"","sources":["../src/ShakeNbakeProvider.tsx"],"names":[],"mappings":"AAeA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,gBAAgB,EAKjB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAmBpE,eAAO,MAAM,iBAAiB,2CAAkD,CAAC;AAMjF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,KAAK,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"ShakeNbakeProvider.d.ts","sourceRoot":"","sources":["../src/ShakeNbakeProvider.tsx"],"names":[],"mappings":"AAeA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,gBAAgB,EAKjB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAmBpE,eAAO,MAAM,iBAAiB,2CAAkD,CAAC;AAMjF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,KAAK,CAAC,SAAS,CA+UjB"}
|
|
@@ -159,10 +159,18 @@ function ShakeNbakeProvider(props) {
|
|
|
159
159
|
}, [config.enabled]);
|
|
160
160
|
// ---- Activate triggers with the handler ----
|
|
161
161
|
(0, react_1.useEffect)(() => {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
let cancelled = false;
|
|
163
|
+
const activateAll = async () => {
|
|
164
|
+
const registry = registryRef.current;
|
|
165
|
+
if (!registry || cancelled)
|
|
166
|
+
return;
|
|
167
|
+
await registry.activateTriggers(handleTrigger);
|
|
168
|
+
};
|
|
169
|
+
if (config.enabled) {
|
|
170
|
+
activateAll();
|
|
171
|
+
}
|
|
165
172
|
return () => {
|
|
173
|
+
cancelled = true;
|
|
166
174
|
registryRef.current?.deactivateTriggers();
|
|
167
175
|
};
|
|
168
176
|
}, [config.enabled, handleTrigger]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShakeNbakeProvider.js","sourceRoot":"","sources":["../src/ShakeNbakeProvider.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,gDAAgD;AAChD,EAAE;AACF,2EAA2E;AAC3E,kCAAkC;AAClC,gGAAgG;AAChG,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,8CAA8C;AAC9C,EAAE;AACF,0EAA0E;AAC1E,wDAAwD;AACxD,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6E9E,
|
|
1
|
+
{"version":3,"file":"ShakeNbakeProvider.js","sourceRoot":"","sources":["../src/ShakeNbakeProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/capture/screenshot.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/capture/screenshot.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA4BvC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAkB;IAE7C,OAAO,CAAC,OAAO,CAA4B;gBAE/B,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC;IAIxC;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI;IAI/B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;CAyExC"}
|
|
@@ -50,14 +50,19 @@ class ViewShotCapture {
|
|
|
50
50
|
throw new core_1.ShakeNbakeError('[ViewShotCapture] react-native-view-shot is required but not installed. ' +
|
|
51
51
|
'Install it with: npx expo install react-native-view-shot', 'UPLOAD_FAILED', { originalError: err });
|
|
52
52
|
}
|
|
53
|
-
// --- resolve dimensions ---
|
|
53
|
+
// --- resolve dimensions & platform ---
|
|
54
54
|
let dimensions = { width: 0, height: 0 };
|
|
55
|
+
let isAndroid = false;
|
|
55
56
|
try {
|
|
56
57
|
const rn = await import('react-native');
|
|
57
58
|
const Dimensions = rn['Dimensions'];
|
|
58
59
|
if (Dimensions) {
|
|
59
60
|
dimensions = Dimensions.get('window');
|
|
60
61
|
}
|
|
62
|
+
const PlatformMod = rn['Platform'];
|
|
63
|
+
if (PlatformMod) {
|
|
64
|
+
isAndroid = PlatformMod.OS === 'android';
|
|
65
|
+
}
|
|
61
66
|
}
|
|
62
67
|
catch {
|
|
63
68
|
// react-native not available in test; dimensions stay at 0x0
|
|
@@ -71,6 +76,7 @@ class ViewShotCapture {
|
|
|
71
76
|
format: 'png',
|
|
72
77
|
quality: 1,
|
|
73
78
|
result: 'base64',
|
|
79
|
+
...(isAndroid && { handleGLSurfaceViewOnAndroid: true }),
|
|
74
80
|
});
|
|
75
81
|
return {
|
|
76
82
|
imageData: base64,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/capture/screenshot.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,oDAAoD;AACpD,iEAAiE;AACjE,8EAA8E;;;AAG9E,2CAAmD;
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/capture/screenshot.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,oDAAoD;AACpD,iEAAiE;AACjE,8EAA8E;;;AAG9E,2CAAmD;AA6BnD;;;;;;;;;;;;;;GAcG;AACH,MAAa,eAAe;IACjB,IAAI,GAAG,UAAU,CAAC;IAClB,QAAQ,GAAa,cAAc,CAAC;IAErC,OAAO,CAA4B;IAE3C,YAAY,OAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,GAAuB;QAC5B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,sCAAsC;QACtC,IAAI,UAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAA4B,MAAM,MAAM,CAC/C,wBAAwB,CACzB,CAAC;YACF,UAAU,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAiB,CAAC;YACnE,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,sBAAe,CACvB,0EAA0E;gBACxE,0DAA0D,EAC5D,eAAe,EACf,EAAE,aAAa,EAAE,GAAG,EAAE,CACvB,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,UAAU,GAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACzD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YACxC,MAAM,UAAU,GAAI,EAA8B,CAAC,YAAY,CAElD,CAAC;YACd,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,WAAW,GAAI,EAA8B,CAAC,UAAU,CAEjD,CAAC;YACd,IAAI,WAAW,EAAE,CAAC;gBAChB,SAAS,GAAG,WAAW,CAAC,EAAE,KAAK,SAAS,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,sBAAe,CACvB,gGAAgG,EAChG,eAAe,CAChB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC5C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,QAAQ;gBAChB,GAAG,CAAC,SAAS,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC;aACzD,CAAC,CAAC;YAEH,OAAO;gBACL,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B;gBACD,QAAQ,EAAE,WAAW;aACtB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,sBAAe,CACvB,8CAA8C,EAC9C,eAAe,EACf,EAAE,aAAa,EAAE,GAAG,EAAE,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA5FD,0CA4FC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shakenbake/react-native",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"clean": "rm -rf dist *.tsbuildinfo"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@shakenbake/core": "0.0.
|
|
24
|
+
"@shakenbake/core": "0.0.3"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": ">=18.0.0",
|