simple_feedback 1.1.2
simple_feedback: ^1.1.2 copied to clipboard
An in-app feedback dialog for Flutter backed by Firebase - type selection, screenshot attachments, automatic page capture, device/user id, and built-in zh/en/ja strings.
1.1.2 #
- README: added an "Admin console" section introducing the companion simple_feedback_admin web app. Submissions can be read directly in the Firebase console or through it; the advantage of the web app: attached screenshots render in the browser, and feedback can be operated on — searched, filtered, marked resolved, deleted.
1.1.1 #
- Fixed the "Buy me a coffee" QR images in the README not rendering on
pub.flutter-io.cn: relative image paths are pruned there, so the images now use
absolute URLs (pre-resized to 300 px wide, since pub.flutter-io.cn strips the
widthattribute).
1.1.0 #
- Optional developer-supplied
userId: pass it per call (showSimpleFeedback(userId: ...)/SimpleFeedbackButton(userId: ...)) or globally (SimpleFeedbackConfig(userId: ...)); per call wins. Recorded as theuserIdfield on every feedback document so submissions can be correlated with real users. Blank/whitespace values are treated as absent. - New
FeedbackEmailVisibilityenum (always/hideWithUserId/never) viaSimpleFeedbackConfig.emailVisibility. DefaulthideWithUserId: the optional email input hides automatically once auserIdis attached — no extra configuration needed; usealwaysto keep collecting a reply-to address anyway,neverto drop the input entirely. - A per-call
showSimpleFeedback(config: ...)now merges with the global config field-by-field — only the fields you set are overridden, everything else is inherited fromSimpleFeedback.configure. (Previously it replaced the global config entirely, silently dropping the global colors/collection/service/... and falling back to package defaults.) - When the email input is hidden, a stale draft email restored from a previous session is no longer submitted.
- The submit button now uses a solid
primarycolor instead of a gradient;FeedbackColors.primaryContainerno longer affects it (it still tones the success icon).
1.0.1 #
- Fix README install example to use
^1.0.0.
1.0.0 #
- Initial release.
showSimpleFeedback()dialog with type selection (bug / suggestion / other), description with counter, up to 4 screenshot attachments (automatic page capture viaRepaintBoundary+ gallery picker).- Optional contact-email field above the submit button (zh/en/ja built-in
strings); written as the
emaildocument field when filled, omitted when blank. Not validated — submitted as typed. - Session draft: closing the dialog (barrier tap, back, ✕) no longer loses the entered text, email, type and images — they are parked in memory and restored on the next open, and cleared after a successful submit. In-memory only; nothing is written to disk.
- Firebase backend: feedback documents in Firestore. Screenshots are
compressed (resize + JPEG re-encode, ≤200 KB each / ≤900 KB per
submission) and embedded into the document as Blobs by default — no
Storage bucket needed, works on the free Spark plan. Opt into Firebase
Storage uploads via
FeedbackImageStorage.storage. - Submits through the host's default FirebaseApp, or a dedicated one via
SimpleFeedbackConfig.firebaseApp/ injectedFeedbackServiceinstances. - Anonymous device id persisted in
SharedPreferences(no Firebase Auth required). - Built-in zh / en / ja strings, auto-resolved from the ambient locale and
fully overridable; all colors overridable via
FeedbackColors. SimpleFeedbackButtonready-made button widget.- Tapping outside the description/email fields (blank dialog areas, buttons) now unfocuses them so the soft keyboard dismisses on Android/iOS — the framework default intentionally keeps touch focus on those platforms.