dart_pr_dashboard's People
Forkers
devoncarewdart_pr_dashboard's Issues
replace table impl. with an alternative one?
I have a flutter table implementation that I've used in a few projects. Any concerns w/ replacing the table implementation here w/ a different one? It has a few more built-ins for sorting, table column sizing and alignment, row + cell validation, ...
update the firebase backend from the command-line
We could consider writing a dart command-line app which can query github (for dart-lang PRs and issues) and update the firebase backend. The cli would need a github access token and the ability to write to the firebase project.
The code couldn't really be shared w/ the web app, as the web app would use the package:firebase_database
apis and the cli would use package:googleapis
. But having updates happen w/ a cli means we could put running it on a cron (either locally, or at some point as a Cloud Run scheduled job).
dashboard runtime exception
After recompiling the front-end w/o minification, I can see the stack trace for the issue:
TypeError: Instance of 'ParentData': type 'ParentData' is not a subtype of type 'FlexParentData'
at Object.wrapException (http://localhost:8000/main.dart.js:8967:43)
at Object._failedAsCheck (http://localhost:8000/main.dart.js:10508:15)
at Rti._generalAsCheckImplementation [as _as] (http://localhost:8000/main.dart.js:10497:9)
at Expanded.applyParentData$1 (http://localhost:8000/main.dart.js:134362:28)
at MultiChildRenderObjectElement.attachRenderObject$1 (http://localhost:8000/main.dart.js:142300:28)
at MultiChildRenderObjectElement.mount$2 (http://localhost:8000/main.dart.js:142251:13)
at MultiChildRenderObjectElement.mount$2 (http://localhost:8000/main.dart.js:142420:13)
at StatefulElement.inflateWidget$2 (http://localhost:8000/main.dart.js:141675:19)
at StatefulElement.updateChild$3 (http://localhost:8000/main.dart.js:141434:26)
at StatefulElement.performRebuild$0 (http://localhost:8000/main.dart.js:142025:41)
investigate using the 'reviews' API instead of pr.requested_reviewers
From https://stackoverflow.com/questions/44965073/how-do-i-get-the-list-of-reviewers-for-a-pull-request-using-github-api, the requested_reviewers
field is the list of users from whom reviews were requested, but that list becomes empty as people accept their review.
I think we'll instead want to use the list of reviews for a PR - from https://api.github.com/repos/{owner}/{repo}/pulls/{pull_number}/reviews
- and from each review get the associated user
. Or perhaps union the two lists of users - pr.requested_reviewers
and reviews.user
?
toggling the theme button throws an exception
When toggling the theme button, we see an exception in the console, and one of the widgets no longer rebuilds:
Bad state: Stream has already been listened to.
main.dart.js:24828 at Object.c (https://dart-pr-dashboard.web.app/main.dart.js:4363:3)
main.dart.js:24828 at mV.Mc (https://dart-pr-dashboard.web.app/main.dart.js:37992:24)
main.dart.js:24828 at eB.ey (https://dart-pr-dashboard.web.app/main.dart.js:38165:27)
...
I haven't looked at the code closely, but I suspect what's happening is that the theme toggle triggers a rebuild; a widget below that then re-subscribes to a stream and we see the exception above.
A very quick fix may be to just convert the stream to a broadcast stream.
But we may consider a slightly larger refactor; something like:
- introduce a 'DartRepos' model class or similar
- have that subscribe to the necessary firebase streams in an async init method
- have it provide all the info to customer objects via ValueNotifiers (these often work a little better with general flutter UIs than stream based things)
- have that model object be constructed at high level in the app's widget hierarchy (you'd probably want to use a StatefulWidget, and have the async init called in the
initState
method)
This would also address the re-subscription issue but would also let us remove some global variables.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.