simple_feedback 1.1.0
simple_feedback: ^1.1.0 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.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.