convex-feedback-ui 0.1.3 → 0.1.5

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 (104) hide show
  1. package/README.md +53 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/native/expo/FeedbackScreen.d.ts +1 -1
  4. package/dist/native/expo/FeedbackScreen.d.ts.map +1 -1
  5. package/dist/native/expo/FeedbackScreen.js +3 -2
  6. package/dist/native/expo/FeedbackScreen.js.map +1 -1
  7. package/dist/native/expo/index.d.ts +2 -0
  8. package/dist/native/expo/index.d.ts.map +1 -1
  9. package/dist/native/expo/index.js +2 -0
  10. package/dist/native/expo/index.js.map +1 -1
  11. package/dist/native/expo/metadata.d.ts +4 -0
  12. package/dist/native/expo/metadata.d.ts.map +1 -0
  13. package/dist/native/expo/metadata.js +44 -0
  14. package/dist/native/expo/metadata.js.map +1 -0
  15. package/dist/native/native/FeedbackScreen.d.ts +1 -1
  16. package/dist/native/native/FeedbackScreen.d.ts.map +1 -1
  17. package/dist/native/native/FeedbackScreen.js +3 -2
  18. package/dist/native/native/FeedbackScreen.js.map +1 -1
  19. package/dist/native/native/index.d.ts +2 -0
  20. package/dist/native/native/index.d.ts.map +1 -1
  21. package/dist/native/native/index.js +2 -0
  22. package/dist/native/native/index.js.map +1 -1
  23. package/dist/native/shared/metadata.d.ts +5 -0
  24. package/dist/native/shared/metadata.d.ts.map +1 -0
  25. package/dist/native/shared/metadata.js +31 -0
  26. package/dist/native/shared/metadata.js.map +1 -0
  27. package/dist/native/shared/ui/CommentBranch.d.ts +2 -0
  28. package/dist/native/shared/ui/CommentBranch.d.ts.map +1 -1
  29. package/dist/native/shared/ui/CommentBranch.js +12 -2
  30. package/dist/native/shared/ui/CommentBranch.js.map +1 -1
  31. package/dist/native/shared/ui/EntryDetail.d.ts.map +1 -1
  32. package/dist/native/shared/ui/EntryDetail.js +3 -1
  33. package/dist/native/shared/ui/EntryDetail.js.map +1 -1
  34. package/dist/native/shared/ui/FeedbackScreenHeader.d.ts.map +1 -1
  35. package/dist/native/shared/ui/FeedbackScreenHeader.js +10 -8
  36. package/dist/native/shared/ui/FeedbackScreenHeader.js.map +1 -1
  37. package/dist/native/shared/ui/FeedbackScreenList.js +1 -1
  38. package/dist/native/shared/ui/FeedbackScreenList.js.map +1 -1
  39. package/dist/native/shared/ui/MetadataModal.d.ts +6 -0
  40. package/dist/native/shared/ui/MetadataModal.d.ts.map +1 -0
  41. package/dist/native/shared/ui/MetadataModal.js +39 -0
  42. package/dist/native/shared/ui/MetadataModal.js.map +1 -0
  43. package/dist/native/shared/ui/NewEntry.d.ts.map +1 -1
  44. package/dist/native/shared/ui/NewEntry.js +10 -3
  45. package/dist/native/shared/ui/NewEntry.js.map +1 -1
  46. package/dist/react/index.d.ts +2 -0
  47. package/dist/react/index.d.ts.map +1 -1
  48. package/dist/react/index.js +2 -0
  49. package/dist/react/index.js.map +1 -1
  50. package/dist/react/metadata.d.ts +4 -0
  51. package/dist/react/metadata.d.ts.map +1 -0
  52. package/dist/react/metadata.js +40 -0
  53. package/dist/react/metadata.js.map +1 -0
  54. package/dist/react/screen.d.ts +1 -1
  55. package/dist/react/screen.d.ts.map +1 -1
  56. package/dist/react/screen.js +18 -4
  57. package/dist/react/screen.js.map +1 -1
  58. package/dist/react/styles.css +35 -0
  59. package/dist/shared/context/FeedbackBodyProvider.d.ts +1 -1
  60. package/dist/shared/context/FeedbackBodyProvider.d.ts.map +1 -1
  61. package/dist/shared/context/FeedbackBodyProvider.js +5 -1
  62. package/dist/shared/context/FeedbackBodyProvider.js.map +1 -1
  63. package/dist/shared/messages.d.ts.map +1 -1
  64. package/dist/shared/messages.js +9 -0
  65. package/dist/shared/messages.js.map +1 -1
  66. package/dist/shared/metadata.d.ts +6 -0
  67. package/dist/shared/metadata.d.ts.map +1 -0
  68. package/dist/shared/metadata.js +54 -0
  69. package/dist/shared/metadata.js.map +1 -0
  70. package/dist/shared/types/index.d.ts +1 -0
  71. package/dist/shared/types/index.d.ts.map +1 -1
  72. package/dist/shared/types/messages.d.ts +17 -0
  73. package/dist/shared/types/messages.d.ts.map +1 -1
  74. package/dist/shared/types/metadata.d.ts +22 -0
  75. package/dist/shared/types/metadata.d.ts.map +1 -0
  76. package/dist/shared/types/metadata.js +2 -0
  77. package/dist/shared/types/metadata.js.map +1 -0
  78. package/dist/shared/types/screen.d.ts +10 -1
  79. package/dist/shared/types/screen.d.ts.map +1 -1
  80. package/package.json +6 -2
  81. package/src/native/expo/FeedbackScreen.tsx +4 -0
  82. package/src/native/expo/index.ts +2 -0
  83. package/src/native/expo/metadata.ts +62 -0
  84. package/src/native/native/FeedbackScreen.tsx +4 -0
  85. package/src/native/native/index.ts +2 -0
  86. package/src/native/shared/metadata.ts +39 -0
  87. package/src/native/shared/ui/CommentBranch.tsx +36 -2
  88. package/src/native/shared/ui/EntryDetail.tsx +14 -0
  89. package/src/native/shared/ui/FeedbackScreenHeader.tsx +23 -21
  90. package/src/native/shared/ui/FeedbackScreenList.tsx +1 -1
  91. package/src/native/shared/ui/MetadataModal.tsx +112 -0
  92. package/src/native/shared/ui/NewEntry.tsx +17 -3
  93. package/src/react/index.ts +2 -0
  94. package/src/react/metadata.ts +51 -0
  95. package/src/react/screen.tsx +89 -2
  96. package/src/react/styles.css +35 -0
  97. package/src/shared/context/FeedbackBodyProvider.tsx +8 -0
  98. package/src/shared/messages.ts +9 -0
  99. package/src/shared/metadata.ts +84 -0
  100. package/src/shared/types/index.ts +1 -0
  101. package/src/shared/types/messages.ts +24 -0
  102. package/src/shared/types/metadata.ts +55 -0
  103. package/src/shared/types/screen.ts +13 -2
  104. package/src/native/shared/ui/ReplyList.tsx +0 -41
package/README.md CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  # convex-feedback-ui
6
6
 
7
+ | Expo | React Native |
8
+ | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
9
+ | ![Expo](https://raw.githubusercontent.com/Moumen-io/convex-feedback/main/docs/screenshots/expo.png) | ![React Native](https://raw.githubusercontent.com/Moumen-io/convex-feedback/main/docs/screenshots/native.png) |
10
+
7
11
  Optional React DOM, React Native, and Expo Router UI for `convex-feedback`.
8
12
 
9
13
  The package is intentionally layered:
@@ -131,6 +135,55 @@ When `useStack={false}`, the Expo convenience screen behaves like the regular Re
131
135
 
132
136
  `StackOptions` is only available when stack integration is enabled.
133
137
 
138
+ ## Diagnostic metadata
139
+
140
+ Prebuilt screens can collect creation-time diagnostic metadata for feedback entries. Collection is disabled by default and never applies to comments.
141
+
142
+ Enable the platform defaults for every entry kind:
143
+
144
+ ```tsx
145
+ <FeedbackScreen hooks={feedbackHooks} collectMetadata />
146
+ ```
147
+
148
+ Or combine global defaults with per-kind behavior:
149
+
150
+ ```tsx
151
+ <FeedbackScreen
152
+ hooks={feedbackHooks}
153
+ collectMetadata={{
154
+ standard: true,
155
+ additional: { releaseChannel: "production" },
156
+ kinds: {
157
+ feedback: false,
158
+ feature_request: {
159
+ standard: ["platform", "appVersion"],
160
+ },
161
+ bug_report: {
162
+ standard: true,
163
+ additional: async ({ kind }) => ({
164
+ kind,
165
+ accountTier: await getAccountTier(),
166
+ }),
167
+ },
168
+ },
169
+ }}
170
+ />
171
+ ```
172
+
173
+ - A kind-specific `standard` selection replaces the global selection. Global and kind-specific `additional` values are merged, with kind-specific keys taking precedence.
174
+ - A kind set to `false` disables all metadata collection for that kind.
175
+ - Collection happens only when the user finally submits.
176
+ - Unavailable or failed collection sources are omitted without blocking feedback submission.
177
+
178
+ - Web defaults include `platform`, `user agent`, `language`, `timezone`, `screen` and `viewport` dimensions, and `device pixel ratio`.
179
+ - React Native defaults include `platform`, `OS` version, available device model, screen `dimensions`, `pixel ratio`, and `font scale`.
180
+ - The Expo entry point additionally uses `expo-constants` for app `version`, `build` number, `application ID`, `Expo runtime version`, and execution `environment` when available.
181
+ - Generic React Native apps can provide app `version` and `build` values through `additional`.
182
+
183
+ Metadata is stored in separate `standard` and `additional` sections. It is omitted from list and search results and from non-moderator reads. When the host's server-side actor resolver identifies a moderator, `getEntry` includes the metadata and the entry detail screen shows a metadata viewer.
184
+
185
+ The platform collectors and `formatMetadataKey` helper are exported from their respective package entry points for custom integrations.
186
+
134
187
  ## Choosing an API
135
188
 
136
189
  For a complete implementation with minimal setup: