-
Notifications
You must be signed in to change notification settings - Fork 558
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implemented autosave on a 5-second timer #3037
base: main
Are you sure you want to change the base?
Conversation
@parlough I fixed the double quotes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sweet! Thanks so much for implementing this again :D
pkgs/dartpad_ui/lib/main.dart
Outdated
fallbackSnippet: web.window.localStorage.getItem('user_input') ?? | ||
Samples.getDefault(type: 'dart')) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think it's worth it to convert this fallback to a callback, so we don't unnecessarily retrieve the old snippet?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think ?? is short circuiting, so it should be fine? EDIT: Just checked, it is
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, if you meant not retrieving the old snippet or user input in case a gist id or otherwise is provided.
I tried making it a callback, and got some very strange errors on the web side. Each time I restarted, it was that JS can't read some property, but it was a different property each time. Once it didn't even let the flutter tool connect because the bootstrapper got stuck. Not sure what's up with that but I'll leave the PR as-is for now
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@parlough I Implemented this in the latest set of commits. I think there was something wrong with my Flutter installation last time I was working on this. Just upgraded to 3.27.0 with no issues.
@parlough Any updates? |
Sorry for the annoying pings, just want to make sure this doesn't slip between the cracks |
@Levi-Lesches Sorry for the delay, I've been away. The change looks good to me, but before landing, we need to wait for others to determine DartPad's storage policies and how we will inform users of them. I'll land this PR when able and ping you if any changes are needed. Thanks again! |
Hi @parlough, any updates? |
We added a cookie banner now (#3097), so we should be OK to use local storage. |
I'm trying to add an integration test that tests:
This will complicate CI a bit, so I'm updating the README with instructions from the Flutter docs. |
I ended up going with unit tests instead as I couldn't get the integration tests to work: The test cases above are still tested, though, so I'm ready for another review. EDIT ...okay, now I'm ready. I didn't add tests for:
|
Fixes #2871 by saving the editor content to local storage under they key
user_input
every 5 seconds, and indispose
Contribution guidelines:
dart format
.Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.