Summary: The location bar doesn't update if there are multiple connected client, if the client we are interested wasn't the first one. The cause of that is that the location bar picked the state of the *first* navigation plugin found, rather than the navigation plugin connected to the selected device and client
Reviewed By: jknoxville
Differential Revision: D19554293
fbshipit-source-id: 46f2a66aa6ba07b510f1f615943eeb6ef8d52622
Summary:
The 'starring' concept of plugins no longer covers the meaning of 'starring', as unstarred plugins will no longer receive data from background plugins, not be available in support request forms due to a lack of data etc. So this diff renames the feature to 'enabled'.
Also fixed an issue where selecting a non-enabled plugin wouldn't show it in the sidebar if the additional plugins are collapsed.
To make disabled plugins more clear, they are . now always rendered in gray.
The toggle button now delays its effect for better visual feedback
- [x] update side bar styling
- [x] remove bottom bar warning
- [x] details screen
- [ ] only open connection for active plugins (will be done in a next diff)
- [x] check archived / imported devices
- [x] make sure device plugins work correctly
- [x] check without GK's
Reviewed By: jknoxville
Differential Revision: D19470326
fbshipit-source-id: 9160a3434287561f56b1b741d5ba282ab6063ea8
Summary:
Currently Android development can be disabled in Settings, but iOS development not. Because of this Doctor always shows warnings to Android-only developers who has no iOS SDK installed. This change makes it possible to disable "iOS development" option in the same way as we already had for Android.
Additionally I changed Doctor warning to show more specific message if only iOS or only Android checks are failed with suggestion to disable the failing platform if it is not required.
Reviewed By: jknoxville
Differential Revision: D19538070
fbshipit-source-id: 234d2c6cf21083f9d6aebd63418aed7f9a78e922
Summary:
There are complaints about Android SDK being reported as "not installed" when it is actually installed. To address them, I changed the way how we detect SDK and also added some minimal actionable feedback for each check.
The problem with the previous implementation of Android SDK check via "envinfo" is that the library uses "sdkmanager" tool under the hood, and this tool doesn't work on Java 9+. To fix this I'm changing the way how we assume SDK is installed to simple check for "adb" tool existence.
Actionable feedback is shown on Doctor report when you click to an item.
Reviewed By: jknoxville
Differential Revision: D19517769
fbshipit-source-id: 1c21f1bdcd05c7c0ae3f97b9c3454efa2c861d26
Summary: Shows tooltip when no plugins are selected. Before it used to select all the plugins
Reviewed By: jknoxville
Differential Revision: D19537054
fbshipit-source-id: 567b90f981a2a2ddcf68a1dce902db0a9d6214d2
Summary:
There was a bug in ListView where the selected items where not getting updated.
Bug
In the following video I have selected Inspector and logs plugin from export drop down. When I click on litho support form it should select the default plugins which is Inspector, Mobile Config and Logs. But it only shows Inspector and Logs selected
{F226900949}
To fix it:
I call the callback `onChange` when the listview's row get updated, which will updates the props of the ListView component and hence rerendering it with updated selected rows.
Reviewed By: mweststrate
Differential Revision: D19518762
fbshipit-source-id: 39367590cbdc1d6f88afb467b17b71e13703bde3
Summary:
Fixes broken export through URL.
Also fixes an issue where we suppress an exception
Reviewed By: mweststrate
Differential Revision: D19517066
fbshipit-source-id: c68b6a1bcbc8b0588e0db9032268033a42b43c61
Summary: Added button to reset Android SDK path to default + fixed default SDK path on Windows which I introduced in a previous diff and which before might be wrongly resolved to roaming data instead of local data folder
Reviewed By: jknoxville
Differential Revision: D19498899
fbshipit-source-id: e10865b528f55ea6b56873bdf9369c4b60dca89f
Summary: A small enhancement for the Doctor usage report
Reviewed By: passy
Differential Revision: D19496887
fbshipit-source-id: 1f0efb0eb29e2efce60ba4fca3bd6fdc062406ea
Summary: Sidebar collapsing finally feels right! Also made the sidebar a little bit less cramped by widening it.
Reviewed By: passy
Differential Revision: D19496743
fbshipit-source-id: 8dd93afc8ef542781b1c1598623d1c9cef9b6b66
Summary:
Fixed a bunch of issue in the new sidebar navigation
1) Stop filtering out the host device (collapse it by default instead)
2) Show offline status in title for more clarity
3) Stop sorting devices by name, so that they are sorted in connection order, which feels more consistent
4) Group uninitialised clients together, rather than showing them under every device
5) Rename "device" section to "device plugins", and hide it if there are none
6) some minor margin fixes
Reviewed By: jknoxville
Differential Revision: D19495950
fbshipit-source-id: 513d0a1171016bd3077641f614a6554a132f8180
Summary: I find this much more intuitive that it's unexpanded, than a down arrow.
Reviewed By: mweststrate
Differential Revision: D19429007
fbshipit-source-id: 7b414aeee846a864641941b6837770252cb298de
Summary:
This diff is part of the bigger task T60496135
This diff changes the RN support from crude to decent citizen, making sure we don't recycle callbacks over the bridge, use subscriptions were possible, and making sure connecting, disconnecting, etc works correctly
For example, connect and disconnect hooks should work.
Finally, throw in hot reloading into the mix, which causes the registerPlugin to be triggered another time, without the old one every been unloaded.
This should trigger a new 'onConnect' on the client, to make sure it can restore any state / subscriptions necessary, even though the never disappeared in the Java world.
These cases should all be handled well.
Reviewed By: jknoxville
Differential Revision: D19347330
fbshipit-source-id: de64a08f4043f01528c794430ccc3c717abf0180
Summary:
Currently there are several issues caused by internal users not being logged in. E.g. the rating button doesn't work, flipper traces can't be uploaded etc.
However, the fact that the user is not logged in, is not reflected in the UI if the user has an API key, which is outdated.
See also the scuba query in the linked tasks; this happens for quite some users.
This diff fixes two things:
1. If auth tokens are invalid, this is properly reflected in the UI
2. If at startup the profile can't be loaded, a popup will be shown to log in.
Differential Revision: D19392735
fbshipit-source-id: 2be7c577ead671df16c626c0636e89245cebab14
Summary: New plugins are not detected because the available plugins are stored in the mutable Client class, so we have to subscribe to the event emitter
Reviewed By: passy
Differential Revision: D19347654
fbshipit-source-id: 68af63bf9bbe6319b2994dc8d07ca5eb27bb33b4
Summary:
Pritesh marked correctly that it was not entirely clear whether sections are collapsed or not. It seemed the arrows were off, checked the Android style guide, the arrows are correct, but difference is that the bottom border of sections is missing. Adding those clarifies the collapsed state properly I think.
https://pxl.cl/Wpnq
Reviewed By: passy
Differential Revision: D19372987
fbshipit-source-id: 2fb898301f63bd8edb2c3c9851f89edc801a524f
Summary:
Send per-healthcheck success/failure event to be able to analyze most common problems.
Send event when doctor warning bar shown.
Send event when doctor report is opened by user.
Send event when user set flag "Do not show warning again" in the doctor report.
Reviewed By: passy
Differential Revision: D19312127
fbshipit-source-id: 01b648d1154a3aeadc85980190cb9e5e221b572e
Summary: Added unique keys for each healthcheck and used them to save already seen failures. Later I will also use them for gathering doctor analytics.
Reviewed By: jknoxville
Differential Revision: D19301583
fbshipit-source-id: 0c0aa977ea73ce555e0d9fb8e8ead844624fb9cd
Summary:
~~Two~~ Four small improvements in the sidebar, that give a cleaner look:
1. expanding the plugin section is now a small button instead of text
2. Star / unstar buttons are only shown on hover of a plugin
3. Used all caps for application names, since we are F A C E B O O K now :-P.
4. Fixed styling of loading status of apps, so that it is consistent with a fully loaded app
Reviewed By: nikoant
Differential Revision: D19297880
fbshipit-source-id: 0fee44511965fc22351eff589d253365c1c6f774
Summary: When all the plugins are selected, "Show more/less" menu option in the sidebar should not be shown
Reviewed By: passy
Differential Revision: D19164369
fbshipit-source-id: 50bec130e80c14aea2b4565e7659409d879e585c
Summary:
Original commit changeset: 05d13aca7145
Attempt to upgrade `electron` as it instacrashed; `electron-builder` version 22.1.0 didn't sign package correctly and caused the instacrash,
Reduced the version to 21.2.0 (latest).
Reviewed By: passy, nikoant
Differential Revision: D18954671
fbshipit-source-id: bc2dbd4fec9afb51d9a535974651b13d195407b4
Summary:
This diff changes the sidebar navigation, fixing a bunch of issues:
It will be possible to quickly switch again between the same plugins in multiple apps
No need to expand-and-check the app dropdown until the app is connected
No need for ugly fallback selections if some app connects faster than another one
Reviewed By: nikoant
Differential Revision: D19272701
fbshipit-source-id: 10f5fab42391014ef4a4a4c91c529d93f8bfb125
Summary: Preparation diff to enable two different sidebars in the code base, so that we can fine tune improvements. For further context seen next diff
Reviewed By: nikoant
Differential Revision: D19272608
fbshipit-source-id: 272c691389d998ed8cf97bc75aad101d9dfd7def
Summary: Doctor sometimes can show false-positives and in such case there is no way to suppress showing warning message on each startup. To reduce annoyance I've added an option to save the problems already seen by user and show the Doctor warning only for new problems.
Reviewed By: mweststrate
Differential Revision: D19187095
fbshipit-source-id: 14c1fcc9674f47fbe0b5b0f2d5d1bceb47f7b45d
Summary:
Since background plugins don't receive data anymore when not starred, we should hint the user about this.
For this diff, I reused the existing statusbar. Although this solution is quite ugly, I think it is better than introducing yet another notification / warning mechanism. Probably we should revisit the layout of this status bar in the future.
Reviewed By: jknoxville
Differential Revision: D19251588
fbshipit-source-id: 1dfd07be383d4ba318f344ebff4b08ed36194c58
Summary: This diff makes sure that pending queues for plugins that are selected are processed before making a flipper export.
Reviewed By: jknoxville
Differential Revision: D19194211
fbshipit-source-id: e076375889450407e7f94384051719f3bbc415ee
Summary:
Skip Android health-checks when the "Android Developer" option is disabled in Flipper settings.
Also made some refactoring to use immer for healthcheck reducer.
Reviewed By: mweststrate
Differential Revision: D19088322
fbshipit-source-id: 801d874b6e7e5af80802b4bf4313d98f1cee13f6
Summary: Added a setting "Match local fbsource chekout", which inverserly corresponds to the `ignore_local_pin` setting in `flipper-launcher.toml`.
Reviewed By: passy
Differential Revision: D19030456
fbshipit-source-id: deaaf4e873a00bbc4e8bd3034353cf580df95a36
Summary:
This diff is a refinement of D18780965, which fixed plugin preferences to be stored per device. Instead of storing plugin preferences globally, we now store them per app, so that every app can have their own favorites, which are shared regardless the device
Note that the current favorite selection will be lost.
Reviewed By: nikoant
Differential Revision: D19018169
fbshipit-source-id: acfa05ece8516840bb91aee4059886365b346582
Summary: React 16 is not compatible with react-emotion 9 (it prints warnings, see also https://github.com/emotion-js/emotion/issues/644). So we should upgrade to 10.
Reviewed By: mweststrate
Differential Revision: D18905889
fbshipit-source-id: c00d2dbbadb1c08544632cb9bfcd63f2b1818a25
Summary: It fixes the bug, where currently we show all active persistent plugins for the export functionality irrespective of the fact that the plugin is active for the selected client. With this diff we will only show active persistent plugins for the selected client.
Reviewed By: mweststrate
Differential Revision: D18890247
fbshipit-source-id: e567da0ccf04e051ca0eabb497a6bd72cc8a0d76
Summary:
The `error` was not recognized as a string and React was not happy about it.
Change the `error` to a string explicitly. Also, add space between the error and the form box.
Reviewed By: jknoxville
Differential Revision: D18829862
fbshipit-source-id: 0474d411a95bab4bc4f62a3f3d3839029938a9e6
Summary:
- Point the Noitifications to the static view
- Add function to check activeness of static view
- Add `SupportRequestDetails` to type (needed?)
Reviewed By: mweststrate
Differential Revision: D18810149
fbshipit-source-id: a33f61f521f3db0dd2a73e56d99b12d029b46a57
Summary: Removes old GK of the flipper support form
Reviewed By: passy
Differential Revision: D18783129
fbshipit-source-id: dcb55abf4af863e25273648e0482c00e3d16e322
Summary:
This is a change which I am not fully confident in, but I think it will make things better;
previously favorite plugins where stored per device. This means that when ...
- switching between devices
- switching between apps
- when viewing disconnected devices
- when loading devices from flipper traces
... the starred plugin preference would reset (especially for the last two: they have generated unique device names, so there would never be preferred items)
This Diff changes the plugin preferences to be global, so on every app and every device you have the same preferences (if they support the plugin). This assumes most people work mostly with the same limited set of plugins
Reviewed By: jknoxville
Differential Revision: D18780965
fbshipit-source-id: 3a560393b81e7d65ae01fb737938f8562843af13
Summary:
Some lifecycle methods are deprecated now. Where they can be replaced easily I replaced them. Where they can't be updated easily I marked them as unsafe, as if a bigger refactoring is required for those components, we'd better convert them to function components instead.
Didn't update the plugins as they are ideally updated by their owners.
Didn't update styled components, there is a separate task for that.
Reviewed By: jknoxville
Differential Revision: D18780579
fbshipit-source-id: 132a3789875ab6a3caee582b0e5f7feb7dc4a4c1
Summary:
Was getting a react warning whenever the feedback prompt opens.
This stops it from happening.
Reviewed By: mweststrate
Differential Revision: D18780008
fbshipit-source-id: e4635f7a8322e25a3eea1c201974a100d1f1327a
Summary:
Slightly improves the support form interactions / code flow:
* When uploading, input fields are hidden
* WHen upload succeeded: Show link to final post
* When upload succeeded: be able to start a new bug report
* Styled error messages, and unified error flow
* Don't support report if errors occurred
Reviewed By: priteshrnandgaonkar
Differential Revision: D18779791
fbshipit-source-id: 28e873d0509865c66d861fe9cedb62a31f0e8bae
Summary:
Nobody moves the hackathon!
Fixed some circular deps warnings while waiting for another Diff to land
Reviewed By: priteshrnandgaonkar
Differential Revision: D18749645
fbshipit-source-id: 225fbea428dca02f0f4c920ee47b4ece3c3e370b
Summary:
* Added a button to clear Diff selection
* Added icons and color to the recording button
* Made App input field readonly
Reviewed By: priteshrnandgaonkar
Differential Revision: D18748538
fbshipit-source-id: 00ffb5d5c36f8f5394a353602f182aabd8237ee7
Summary: This diff adds exporting UI in the support form itself. It replaces the "Export as File and Link" buttons with a submit button, which uploads media and then initiates flipper export.
Reviewed By: mweststrate
Differential Revision: D18714630
fbshipit-source-id: ccbb9b2d47687e77a0fdb5449c18e91a5bd5f96e
Summary: This diff refactors the `exportpersistedstate` and few of the functions in exportData.tsx to just expect the Redux State instead the store object.
Reviewed By: mweststrate
Differential Revision: D18733011
fbshipit-source-id: 56739917b49142ba4b6e79e7c16378fe60d6ac3b
Summary: This diff makes Listview agnostic to the logic of the sharing.
Reviewed By: mweststrate
Differential Revision: D18711095
fbshipit-source-id: 75541dee0b5740c9951c46118d96292e28979507
Summary:
Original commit changeset: ff84080d43fa
This re-adds JS client support. The original version had a small bug that inadvertantly wrapped support for Android emulators in the dropdown in a GK that was only meant to cover JS clients. This is addressed here.
Reviewed By: timur-valiev
Differential Revision: D18707485
fbshipit-source-id: ceea8e279a21111f96073f8b784e852f6313e2a4
Summary:
Original commit changeset: eddfbb3571c7
Original commit changeset: f7300f527b65
Pains me to do this, but probably our best chance right now to get a release out.
Reviewed By: cekkaewnumchai
Differential Revision: D18687890
fbshipit-source-id: 05d13aca71457ca6dd19f5b45d58158ae223e66f