ueman / feedback Goto Github PK
View Code? Open in Web Editor NEWA simple widget for getting better feedback.
Home Page: https://pub.dev/packages/feedback
A simple widget for getting better feedback.
Home Page: https://pub.dev/packages/feedback
Hi @ueman - thank you for this package, it is certainly interesting and could be helpful to my project in the near future.
For me to justify using it, I would need some flexibility around the questions presented to the user. Instead of a fixed "What's wrong?", potentially something like a supplied list of question strings that then create a new header/text entry section within a scroller (as of course space will be an issue) for each, and the output then being a list of string answers rather than a single string.
Is this something easily achievable? Would you need PR contributions?
This is a list of potential breaking changes.
Not all of them are already set in stone and i appreciate feedback on them.
BetterFeedback.of(ctx)?.show(...)
to BetterFeedback.of(ctx).show(...)
Split the examples into their own packages.
This way it's easier for users to use the existing code from the example.
The advantage over having them all in this repo is the reduced amount of dependencies.
This repo could then serve as a mono repo for all various kinds of feedback publishing.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
org.jetbrains.kotlin:kotlin-stdlib-jdk7
, org.jetbrains.kotlin:kotlin-gradle-plugin
)org.jetbrains.kotlin:kotlin-stdlib-jdk7
, org.jetbrains.kotlin:kotlin-gradle-plugin
)These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
feedback/example/ios/Podfile
feedback/example/macos/Podfile
.devcontainer/devcontainer.json
.github/workflows/feedback.yml
actions/checkout v4
actions/setup-java v4
subosito/flutter-action v2
codecov/codecov-action v4.5.0
actions/checkout v4
subosito/flutter-action v2
.github/workflows/gitlab.yml
actions/checkout v4
actions/setup-java v4
subosito/flutter-action v2
.github/workflows/sentry.yml
actions/checkout v4
actions/setup-java v4
subosito/flutter-action v2
.github/workflows/web-example.yml
actions/checkout v4
subosito/flutter-action v2
bluefireteam/flutter-gh-pages v8
feedback/example/android/gradle.properties
feedback/example/android/settings.gradle
feedback/example/android/build.gradle
com.android.tools.build:gradle 7.4.2
org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.23
org.jetbrains.kotlin:kotlin-stdlib-jdk7 1.9.23
feedback/example/android/app/build.gradle
junit:junit 4.13.2
androidx.test:runner 1.4.0
androidx.test.espresso:espresso-core 3.4.0
feedback/example/android/gradle/wrapper/gradle-wrapper.properties
gradle 7.6.4
feedback/example/pubspec.yaml
cupertino_icons ^1.0.3
flutter
flutter_email_sender ^6.0.2
flutter_markdown ^0.6.18
http ^1.0.0
path_provider ^2.1.1
share_plus ^7.2.1
url_launcher ^6.1.14
flutter_lints ^3.0.0
dart >=3.0.0 <4.0.0
flutter >=3.10.0
feedback/pubspec.yaml
flutter
flutter_lints ^3.0.0
dart >=3.0.0 <4.0.0
flutter >=3.10.0
feedback_gitlab/pubspec.yaml
flutter
feedback ^3.0.0
http ^1.0.0
http_parser ^4.0.0
flutter_lints ^3.0.0
dart >=3.0.0 <4.0.0
flutter >=3.10.0
feedback_sentry/pubspec.yaml
flutter
feedback ^3.0.0
sentry >=7.0.0 <9.0.0
dart >=3.0.0 <4.0.0
flutter >=3.10.0
Describe the bug
Capture from onError A RenderFlex overflowed by 232 pixels on the bottom. Android phone.
Version of the library
^1.2.1
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No errors should be reported
Screenshots
Nothing is wrong with the screen rendering--I don't see any evidence of overflowing--all okay. Not sure why Flutter is complaining.
**Logs **
I/flutter (28317): show feedback UI
W/IInputConnectionWrapper(28317): beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper(28317): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper(28317): getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper(28317): getSelectedText on inactive InputConnection
W/IInputConnectionWrapper(28317): endBatchEdit on inactive InputConnection
W/IInputConnectionWrapper(28317): beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper(28317): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper(28317): endBatchEdit on inactive InputConnection
I/flutter (28317): [debug] Capture from onError A RenderFlex overflowed by 232 pixels on the bottom.
I/flutter (28317): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (28317): The following assertion was thrown during layout:
I/flutter (28317): A RenderFlex overflowed by 232 pixels on the bottom.
I/flutter (28317):
I/flutter (28317): The relevant error-causing widget was:
I/flutter (28317): Column file:///E:/gitlab/rs/lib/main.dart:357:18
I/flutter (28317):
I/flutter (28317): To inspect this widget in Flutter DevTools, visit:
I/flutter (28317): http://127.0.0.1:9100/#/inspector?uri=http%3A%2F%2F127.0.0.1%3A56539%2FyxRKFSLoEUA%3D%2F&inspectorRef=inspector-0
I/flutter (28317):
I/flutter (28317): The overflowing RenderFlex has an orientation of Axis.vertical.
I/flutter (28317): The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
I/flutter (28317): black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
I/flutter (28317): Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
I/flutter (28317): RenderFlex to fit within the available space instead of being sized to their natural size.
I/flutter (28317): This is considered an error condition because it indicates that there is content that cannot be
I/flutter (28317): seen. If the content is legitimately bigger than the available space, consider clipping it with a
I/flutter (28317): ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
I/flutter (28317): like a ListView.
I/flutter (28317): The specific RenderFlex in question is: RenderFlex#2643d relayoutBoundary=up2 OVERFLOWING:
I/flutter (28317): needs compositing
I/flutter (28317): creator: Column ← Center ← _BodyBuilder ← MediaQuery ← LayoutId-[<_ScaffoldSlot.body>] ←
I/flutter (28317): CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
D/Sentry (28317): Captured Envelope is already cached
I/flutter (28317): _InkFeatures-[GlobalKey#c7c1b ink renderer] ← NotificationListener<LayoutChangedNotification> ←
I/flutter (28317): PhysicalModel ← ⋯
I/flutter (28317): parentData: offset=Offset(0.0, 0.0) (can use size)
I/flutter (28317): constraints: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=554.5)
I/flutter (28317): size: Size(392.7, 554.5)
I/flutter (28317): direction: vertical
I/flutter (28317): mainAxisAlignment: center
I/flutter (28317): mainAxisSize: min
I/flutter (28317): crossAxisAlignment: center
I/flutter (28317): verticalDirection: down
I/flutter (28317): ◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
Run flutter analyze
and attach any output of that command below.
win 530 12:59 /e/gitlab/rs # flutter analyze
Analyzing rs...
No issues found! (ran in 25.2s)
[√] Flutter (Channel stable, 2.0.5, on Microsoft Windows [Version 6.1.7601], locale en-US)
• Flutter version 2.0.5 at E:\src\flutter
• Framework revision adc687823a (6 days ago), 2021-04-16 09:40:20 -0700
• Engine revision b09f014e96
• Dart version 2.12.3
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
• Android SDK at C:\Users\pete\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.1
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] Connected device (3 available)
• Mi 9T (mobile) • 844fb80a • android-arm64 • Android 10 (API 29)
• Chrome (web) • chrome • web-javascript • Google Chrome 90.0.4430.85
• Edge (web) • edge • web-javascript • Microsoft Edge 88.0.705.56
• No issues found!
Additional context
THANK you for such as AMAZING package!!! I didn't even know it was technically possible.
I always try to improve this. For that I'll need to better understand how this library is used. So I would really appreciate it if you could comment a link to your app or website here.
Thanks!
Hi,
Firstly, thank you for this package.
My existing theme changed when I added this package to my project.
How can i disable the theme of package?
Thanks
Describe the bug
After typing some feedback, the delete key cannot be used to delete on MacOS desktop.
Version of the library
This is an issue in latest stable 1.2.2 as well as 2.0.0-beta
Expected behavior
Delete key should delete text.
void main() {
runApp(
BetterFeedback(
mode: FeedbackMode.draw,
theme: FeedbackThemeData(
background: Color(0xFF747474),
feedbackSheetColor: Colors.grey[50]!,
drawColors: [
Colors.red,
Colors.green,
Colors.blue,
Colors.yellow,
],
),
child: const ProviderScope(
child: Shell(),
),
),
);
}
[✓] Flutter (Channel master, 2.3.0-17.0.pre.98, on macOS 11.2.3 20D91 darwin-x64, locale en-US)
• Flutter version 2.3.0-17.0.pre.98 at /Users/tyler/development/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 5c92c5f2c8 (10 days ago), 2021-05-27 16:44:03 -0400
• Engine revision cd4ce935c4
• Dart version 2.14.0 (build 2.14.0-153.0.dev)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.4, Build version 12D4e
• CocoaPods version 1.10.0
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 3.5)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 42.1.1
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
[✓] VS Code (version 1.56.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.23.0
[✓] Connected device (2 available)
• macOS (desktop) • macos • darwin-x64 • macOS 11.2.3 20D91 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 91.0.4472.77
The example should be improved in the following ways:
Hey @ueman! 👋
After submitting new feedback (message+drawing) and opening the form again through BetterFeedback.of(context).show
the message is indeed cleared, but the drawing shows the one from previous feedback.
I would expect it got cleared as well as the message.
Add more detail to the description field of pubspec.yaml. Use 60 to 180 characters to describe the package, what it does, and its target use case.
Is your feature request related to a problem? Please describe.
I have implemented dark theme type of colors in my app. I have also changed the feedback material design but the text was not visible properly so I have to use different colors in that.
Solution
Give the developer option to choose text colors according to the theme or manually.
If the screen is small
Bottom sheetis too high and Block the upper part,Textfield is too high
Version of the library
1.0.1
Once the next Flutter stable version is release, the build workflow must be edited to build on stable.
Currently it only builds on beta, because it is already migrated to Darts null safety.
Currently we wait a little bit to avoid a dirty frame which can't be captured. It probably is cleaner and better to use SchedulerBinding.addPostFrameCallback()
. The time to wait is 20 milliseconds or a little bit more than a frame. I don't think this matters much. However by using the post frame callback we can guarantee to capture the next frame.
It the show
callback accepts future, this lib could also present a "Thank you screen". It's also probably a better ergonomic because most user are doing async work in it anyway.
This change simplifies the way to show and hide the feedback flow from within the users Flutter application and also within this library itself.
This library currently needs the user to implement a darkmode theme himself.
The library should handle it itself and also change it depending on the OS
Hello,
First of all, thank you for this package, it will be very useful to the beta of my app !
However, I found and issue integrating it in my app. The dialog stays visible even after I navigated to an other screen.
To reproduce it, you have to :
This is an example code to reproduce it :
import 'dart:typed_data';
import 'package:feedback/feedback.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BetterFeedback(
child: MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
// home: HomePage(),
routes: {
HomePage.routeName: (context) => HomePage(),
Page1.routeName: (context) => Page1(),
},
builder: (originalContext, child) {
return Scaffold(body: SafeArea(child: child));
},
),
onFeedback: (
BuildContext context,
String feedbackText, // the feedback from the user
Uint8List feedbackScreenshot, // raw png encoded image data
) {
BetterFeedback.of(context).hide();
},
);
}
}
class HomePage extends StatelessWidget {
static const String routeName = "/";
@override
Widget build(BuildContext context) {
return Container(
color: Colors.lime,
child:
Column(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
Text("Home Page"),
RaisedButton(
child: Text("Open Feedback"),
onPressed: () {
BetterFeedback.of(context).show();
},
),
RaisedButton(
child: Text("Dialog to go to Page 1"),
onPressed: () {
_dialog(context, "Go to Page 1 ?", Page1.routeName);
},
),
]));
}
_dialog(BuildContext context, String title, String routeName) {
showDialog(
context: context,
barrierDismissible: true,
builder: (_) => AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(32.0),
),
backgroundColor: Colors.white,
title: Text(
title,
textAlign: TextAlign.center,
),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
RaisedButton(
child: Text("OK"),
onPressed: () {
Navigator.of(context).pushNamed(routeName);
},
)
],
)));
}
}
class Page1 extends StatelessWidget {
static const String routeName = "/pages/page1";
@override
Widget build(BuildContext context) {
return Container(
color: Colors.red,
child:
Column(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
RaisedButton(
child: Text("BACK"),
onPressed: () {
Navigator.of(context).pop();
},
),
Text("Page 1")
]));
}
}
I have tried to pop the dialog before opening in case it was not related to the library itself, and I found out that I may have problems with that too.
The only way to pop() correctly is in this case to set the rootNavigator
argument to true
in the Navigator.of(context)
method.
Here is my _dialog()
method updated :
_dialog(BuildContext context, String title, String routeName) {
showDialog(
context: context,
barrierDismissible: true,
builder: (_) => AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(32.0),
),
backgroundColor: Colors.white,
title: Text(
title,
textAlign: TextAlign.center,
),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
RaisedButton(
child: Text("OK"),
onPressed: () {
// pop() doesn't pop()
// Navigator.of(context).pop();
// pop() is now working
Navigator.of(context, rootNavigator: true).pop();
// push to new route
Navigator.of(context).pushNamed(routeName);
},
)
],
)));
}
I think it's related to the fact that the BetterFeedback
widget uses a MaterialApp
as well, then it introduces an other Navigator
and it gets a bit complicated...
Vermutlich durch den Scaffold in dem das Feedback angezeigt wird.
Describe the bug
Plugin seems like it is not compatible with web. Build and run on web fail with the provided error message even when null-safety disabled.
Version of the library
feedback-1.0.2
To Reproduce
Add feedback plugin to your flutter project and you will get the null error regarding the Locale parameter in the localization file.
Expected behavior
Should not throw error. Currently we can't even build the project.
**Logs **
ERROR MESSAGE:
../../.pub-cache/hosted/pub.dartlang.org/feedback-1.0.2/lib/src/l18n/localization.dart:34:30: Error: The argument type 'Locale?' can't be assigned to the parameter type 'Locale' because 'Locale?' is nullable and 'Locale' isn't.
FLUTTER DOCTOR -V:
[✓] Flutter (Channel stable, 2.0.3, on Mac OS X 10.15.7 19H114 darwin-x64, locale en-US)
• Flutter version 2.0.3 at /Users/user/development/flutter
• Framework revision 4d7946a68d (6 days ago), 2021-03-18 17:24:33 -0700
• Engine revision 3459eb2436
• Dart version 2.12.2
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Users/user/Library/Android/sdk
• Platform android-30, build-tools 30.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.3, Build version 12C33
• CocoaPods version 1.10.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
[✓] VS Code (version 1.54.3)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.20.0
[✓] Connected device (1 available)
• Chrome (web) • chrome • web-javascript • Google Chrome 89.0.4389.90
• No issues found!
Additional context
Sadly, we can't even build the app with null safety enabled. Any response/reply is greatly appreciated!
Thank you very much in advance!
Is your feature request related to a problem? Please describe.
I want to include a feedback form with things like a drop down where users specify what kind of feedback it is (bug report, feature suggestion, etc.).
Describe the solution you'd like
Note that I plan to make this as a PR in my fork of BetterFeedback
, the following is my implementation plan. Let me know if you have any feedback!
OnSubmit
to take in a type parameter T
.Widget Function(OnSubmit<T>)? getFeedback
argument to BetterFeedback
.OnFeedBackCallBack
to take feedback of type T
instead of String
.If getFeedback
is null, Type T
will be String
and BetterFeedback
will behave as it does now. If the user specifies a non-null getFeedback
function, FeedbackBottomSheet
will be built with their widget and type T
will be determined by getFeedback
.
This way, users can prompt for and return arbitrary data types/models using BetterFeedback
.
Getting this error: You need to add a BetterFeedback widget above this context!
I have the BetterFeddback wrapped about my MyApp main call like in the example. But when i push navigate to another page, and try to use it from my drawer, i get this error. Any solution?
The readme and example app should contain different examples or strategies on how the author can enable the user to share feedback.
A couple ideas:
The Readme contains a few old/dead links and flutter plugins should now link to plus plugins.
Also there should be a discussion about use cases which should be linked in the readme.
Tell users to vote for issues by thumbs up.
Love this package and the web tag got me excited, however -
renderObject.toImage(pixelRatio: pixelRatio);
doesn't work on web atm.
There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.
Error type: Cannot find preset's package (github>whitesource/merge-confidence:beta)
Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
parameter to remove the Navigate mode. I have no idea what this means and I bet my users will just be confused by it, also.
Describe alternatives you've considered
Not using the package??
Additional context
I also think that having trash can icon is not needed. Just hit undo a few times. You want simplest possible UI.
Also there is no message that says you can draw to point out what the problem is. Users will be confused.
Describe the bug
When I use BetterFeedback.of(context).show((feedback, feedbackScreenshot) { ... });
, the feedbackScreenshot
does not contain the drawing.
Version of the library
1.0.0
To Reproduce
Steps to reproduce the behavior:
pubspec.yaml
:feedback: ^1.0.0
flutter_email_sender: ^4.0.0
BetterFeedback
:BetterFeedback.of(context).show((feedback, feedbackScreenshot) async {
final Directory output = await getTemporaryDirectory();
final String screenshotFilePath = '${output.path}/feedback.png';
final File screenshotFile = File(screenshotFilePath);
await screenshotFile.writeAsBytes(feedbackScreenshot);
final Email email = Email(
body: 'Feedback: $feedback',
subject: 'Feedback',
recipients: ['[email protected]'],
attachmentPaths: [screenshotFilePath],
isHTML: false,
);
await FlutterEmailSender.send(email);
Expected behavior
Expected to see the drawings painted on top of the screenshot.
Screenshots
If applicable, add screenshots to help explain your problem.
Logs
Run flutter analyze
and attach any output of that command below.
PS C:\Users\me\Projects\project> flutter analyze
Analyzing project...
No issues found! (ran in 3.2s)
If there are any analysis errors, try resolving them before filing this issue.
Paste the output of running flutter doctor -v
here.
PS C:\Users\me\Projects\project> flutter doctor -v
[√] Flutter (Channel stable, 2.0.1, on Microsoft Windows [Version 10.0.19042.804], locale en-US)
• Flutter version 2.0.1 at C:\Users\me\.flutter-sdk
• Framework revision c5a4b4029c (32 hours ago), 2021-03-04 09:47:48 -0800
• Engine revision 40441def69
• Dart version 2.12.0
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Users\me\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[X] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[√] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] Connected device (2 available)
• sdk gphone x86 (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)
• Edge (web) • edge • web-javascript • Microsoft Edge 87.0.664.66
! Doctor found issues in 1 category.
Additional context
Also tried with the alertFeedbackFunction(context, feedback, feedbackScreenshot)
and it produces the same result.
This should simplify the correct way of using this package. If the keyboard is shown, the Scaffold may change its content because it takes the keyboard insets into consideration. If the user draws while the keyboard is shown his drawings may not correspond to the resulting screenshot.
Hello,
How do I clear the feedback, so that the next time .show()
is invoked, it doesn't show the old text and drawing? I saw no method at all to do this. It could perhaps be added as an optional argument to '.hide(mustClear: true)'.
PS. This is great, thank you!
Create a short demo in the example/ directory to show how to use this package.
Common filename patterns include main.dart, example.dart, and feedback.dart. Packages with multiple examples should provide example/README.md.
For more information see the pub package layout conventions.
After a first round of feedback the following issues arised:
Currently the code is not very well documented. There should be a simple example in the readme and at least a proper documentation for the public facing API.
It would be nice if the user could use a color chooser instead of the predefined colors.
Is your feature request related to a problem? Please describe.
The bottom feedback sheet takes up very little space so that it doesn't cover the screenshot UI. This is non-ideal when the user is trying to write their feedback-especially for custom multi-part FeedbackBuilder
's the user can see very little of the feedback form at a time and has to scroll a lot.
Describe the solution you'd like
When the bottom feedback sheet is active (eg if any of it's children currently have focus) it will slide upwards to cover up 90-100% of the screen. The user can slide on a visual nodule at the top to slide it back down, or use their system back button. They can also slide the nodule to expand the feedback sheet if it is currently not active.
See: sliding up panel.
Depending on preference, we could use the above package or #rollOurOwn. I lean lightly towards the latter as this should be pretty simple to implement.
Describe alternatives you've considered
Currently the theme does not support to customize the whole design of the feedback view.
However it would be nice if the theme would add support for more customization.
See https://api.flutter.dev/flutter/dart-ui/Window/locale.html
It should also be possible to set the locale themself via BetterFeedback
I've got some requests to get rid of the MaterialApp widget which gets used inside the BetterFeedback widget.
I've started working on it and you can track its progress in #17
I am not able to change the uint8list to fileImage can you provide a solution
Great library, how difficult would it be to add github integration?
This is the issue to track this packages migration to nullsafety.
Enhancement/Feature Request
Hi there,
first of all: Thank you very much for this amazing package! It's really easy and convenient to implement and looks great. However, I think it would improve the user experience if the keyboard dismisses on pressing 'Enter'. Otherwise the next thing I'd try to dismiss it would be tapping on the screen (which does not dismiss it either) and it took me a moment to realise that only pressing "Paint" would dismiss it. I think changing the pressing on 'Enter' behaviour would be a positive change for the user experience. I already changed it locally -> 'feedback_bottom_sheet.dart' line 75, add the one-liner: textInputAction: TextInputAction.done.
It might be also cool for people not wanting this behaviour, to just pass a value in the initial constructor (like dismissOnEnter property).
Best regards,
Julian
Is your feature request related to a problem? Please describe.
The "Navigate" and "Draw" selectors are confusing. When an option is selected, it is greyed out to indicate that that button is currently not active. This is confusing because many users might think greyed out means "not currently selected".
Describe the solution you'd like
I believe the convention in Material Design is to use Theme.of(context).accentColor
to indicate that one option out of several is currently selected. As such, I suggest we make the selected text use the accent color and the currently selected text use the default dark color.
Describe alternatives you've considered
Expand FeedbackTheme
to allow users to customize their active and inactive selection text styles.
Hi,
This looks like a cool plugin!
I couldn't figure out how the user should actually send the feedback.
Thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.