Commit Graph

348 Commits

Author SHA1 Message Date
Michel Weststrate
cedb9617c4 Fixed issue where the location bar wouldn't be updated if there are multiple connected clients
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
2020-01-27 04:04:20 -08:00
Michel Weststrate
23625f7a89 Change star concept to enabled
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
2020-01-27 04:04:19 -08:00
Anton Nikolaev
aab004aa15 Allow disabling iOS development in Settings
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
2020-01-23 13:37:03 -08:00
Anton Nikolaev
b625efee3d Doctor complains Android SDK is not installed
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
2020-01-23 13:37:02 -08:00
Pritesh Nandgaonkar
f61d578b26 Show tooltip when no plugins are selected
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
2020-01-23 10:05:04 -08:00
Pritesh Nandgaonkar
032b594221 Refactor Listview to solve a bug
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
2020-01-23 07:40:20 -08:00
Pritesh Nandgaonkar
d31ea742f5 Fix broken URL export
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
2020-01-22 10:07:59 -08:00
Anton Nikolaev
7c03366136 Setitngs: button to reset Android SDK path to default
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
2020-01-21 10:28:38 -08:00
Timur Valiev
4f63d6435f JS app launcher ui bugfix
Summary: JS App launcher wasn't appearing when no android emulators are installed

Reviewed By: nikoant

Differential Revision: D19499107

fbshipit-source-id: d062d4781747b77b708306b592ea66a1a67b93e4
2020-01-21 09:03:35 -08:00
Anton Nikolaev
35d62e70cb Analytics: log both shown and suppressed warnings
Summary: A small enhancement for the Doctor usage report

Reviewed By: passy

Differential Revision: D19496887

fbshipit-source-id: 1f0efb0eb29e2efce60ba4fca3bd6fdc062406ea
2020-01-21 06:41:47 -08:00
Michel Weststrate
94e2230583 Animated chevrons in sidebar
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
2020-01-21 06:29:41 -08:00
Michel Weststrate
02e02338e8 Fix Mac plugins not showing up
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
2020-01-21 04:54:25 -08:00
John Knox
ce96e5efc2 Use chevron-right for collapsed state
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
2020-01-16 08:15:55 -08:00
Michel Weststrate
08e2d54f62 Make sure callbacks are not reused and reloading works
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
2020-01-16 05:06:22 -08:00
Michel Weststrate
03c1bcad11 Log users out if tokens have expired, force FB users to login on startup
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
2020-01-15 04:34:35 -08:00
Michel Weststrate
7513d36689 Make sure sidebar detects fresh plugins
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
2020-01-14 09:17:24 -08:00
Michel Weststrate
61821fbec7 Improved sidebar section styling
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
2020-01-13 09:47:24 -08:00
Anton Nikolaev
2599dffe48 Healthcheck failures analytics
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
2020-01-10 06:18:32 -08:00
Anton Nikolaev
751c778069 Use unique keys to identify healthchecks
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
2020-01-08 08:12:06 -08:00
Michel Weststrate
7c80720c5d Fix doctor warning and animation
Summary: Two random tiny changes

Reviewed By: nikoant

Differential Revision: D19309447

fbshipit-source-id: 13a1a66d6b91285a00177ca7a3003fd83b4820f5
2020-01-08 04:45:03 -08:00
Michel Weststrate
f8173ea8a4 Minor sidebar improvements
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
2020-01-07 06:33:03 -08:00
Kugan Vivekanandarajah
075b0905d3 Don't show "Show more/less" menu option in the sidebar if no more plugins are available
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
2020-01-07 04:14:05 -08:00
Chaiwat Ekkaewnumchai
bacb1958fc Back out "Back out Electron 7.1.1/7.1.2 upgrades"
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
2020-01-06 09:44:13 -08:00
Michel Weststrate
8cfe06d530 New multi app supporting sidebar navigation
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
2020-01-06 08:51:08 -08:00
Michel Weststrate
8152085111 Duplicate sidebar and put behind GK to prepare for reworked navigation
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
2020-01-06 08:51:07 -08:00
Anton Nikolaev
2bee021966 Do not show Doctor warning on startup for already seen problems
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
2020-01-02 08:55:15 -08:00
Michel Weststrate
9acf23596e Show a message if a background plugin is not starred
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
2020-01-02 07:14:15 -08:00
Michel Weststrate
b8e752412e Process queues before exporting plugins
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
2020-01-02 07:14:13 -08:00
Ankur Sadhoo
9b5ba4decb Add Watch Bug Information Debugger as a connectionless plugin
Differential Revision: D19211198

fbshipit-source-id: 0a63fe8077141b5221254a668ef4c0e83c7d33ea
2019-12-26 19:25:09 -08:00
Anton Nikolaev
d32774f439 Skip Android health-checks when the "Android Developer" option is disabled in Flipper settings
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
2019-12-16 16:40:08 -08:00
Denis Nedelyaev
be53990613 Add setting for skipping fbsource version check
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
2019-12-16 07:01:01 -08:00
Michel Weststrate
edd894258c Favorite plugins are now stored per app rather than globally
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
2019-12-13 10:07:13 -08:00
Anton Nikolaev
c0f902f81a Upgrade to emotion v10
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
2019-12-11 09:43:24 -08:00
Pritesh Nandgaonkar
c3dfcbe601 Show the plugins from the redux store only belonging to the selected app
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
2019-12-11 06:27:22 -08:00
Chaiwat Ekkaewnumchai
94ce34066b Fix Log-in Outside Lighthouse Crash The App
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
2019-12-05 05:46:17 -08:00
Chaiwat Ekkaewnumchai
07487e8122 Change NotificationsHub to StaticView
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
2019-12-05 03:26:28 -08:00
Michel Weststrate
5c680ff325 Fix alignment of uploading progress and overflow of video preview
Summary: Nuf said

Reviewed By: jknoxville

Differential Revision: D18782822

fbshipit-source-id: b17723694e8528408b77f27467132bf83695a84a
2019-12-04 02:55:38 -08:00
Pritesh Nandgaonkar
d12733f3fd Remove old support form GK
Summary: Removes old GK of the flipper support form

Reviewed By: passy

Differential Revision: D18783129

fbshipit-source-id: dcb55abf4af863e25273648e0482c00e3d16e322
2019-12-03 10:49:15 -08:00
Michel Weststrate
35ddc25937 Make plugin preference global
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
2019-12-03 09:19:20 -08:00
Michel Weststrate
c332f4145a Stop using deprecated lifecycle methods
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
2019-12-03 06:50:43 -08:00
John Knox
01deb97a5d Add keys to FeedbackComponent array elements
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
2019-12-03 06:28:50 -08:00
Michel Weststrate
b1fb67c9c4 Improve error handling / roundtrip behavior
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
2019-12-03 03:59:24 -08:00
Timur Valiev
3e7557260c store js app launcher settings
Summary:
Store JS App Launcher preferences in app settings

{F223696894}

Reviewed By: jknoxville

Differential Revision: D18762166

fbshipit-source-id: 9da8205b6929e54c80b645789feae2715d9b1876
2019-12-02 06:24:59 -08:00
Michel Weststrate
2bee9ec9e7 Fixed circular dependency warnings
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
2019-12-02 02:05:38 -08:00
Michel Weststrate
ac8879c503 Add clear diff button, style recording button
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
2019-11-29 08:28:25 -08:00
Pritesh Nandgaonkar
92bbccb6e0 Export in the support form
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
2019-11-29 05:57:29 -08:00
Pritesh Nandgaonkar
ca53f35875 Refactor export data functions and exportpersistedstate function to just expect state
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
2019-11-28 03:49:26 -08:00
Pritesh Nandgaonkar
0a311def8f Refactor Listview to make it agnostic to the export logic
Summary: This diff makes Listview agnostic to the logic of the sharing.

Reviewed By: mweststrate

Differential Revision: D18711095

fbshipit-source-id: 75541dee0b5740c9951c46118d96292e28979507
2019-11-27 08:46:00 -08:00
Pascal Hartig
0a7c57f5a0 Back out "Back out "[flipper][js] JS apps support 1/n""
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
2019-11-26 09:37:57 -08:00
Pascal Hartig
a75a52a25b Back out Electron 7.1.1/7.1.2 upgrades
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
2019-11-26 05:30:34 -08:00