Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/ed
It does not make too much sense to have 2 different entry points to export Flipper debug data and to create a support request. It only creates ambiguity for our users. We could open the support request form automatically for them every time. In those rare cases when they try to attach new data to an existing support request, they can always not submit the form.
Reviewed By: passy
Differential Revision: D40632145
fbshipit-source-id: 6ca454d6e885493b32ac3aad008482045dccf51d
Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit#
Attach what we can to the universal export file if any of the steps time out
CHANGELOG: Add a universal debug export button
Reviewed By: passy
Differential Revision: D40552235
fbshipit-source-id: 775afccacf053fbcf764d1f39e93a89ad20dee0a
Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit#
Exporting all files form a device and export Flipper's own state could take a long time. We need to keep our users updated on the status.
Reviewed By: passy
Differential Revision: D40551661
fbshipit-source-id: d5c94fb99d4bc8b4495ce463915b77c475548f01
Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit#
Add a button to export all possible debug data at once. IN subsequent diffs, I'll add more extensive data collection.
Reviewed By: antonk52
Differential Revision: D40467606
fbshipit-source-id: 6a4225945b1feb6c1a8073b5209a62ba0beb6148
Summary: We have a list of modules that we do not bundle with the plugins, but provide externally to them from Flipper. For the mechanism to work correctly, we have to stop importing from nested paths of these modules.
Reviewed By: mweststrate
Differential Revision: D39776237
fbshipit-source-id: 06eae9bf9d5b11b48d2720bf592bfea749773847
Summary:
Currently, the `app inspect` tooltip at the left rail has a link to the getting started page that doesn't exist.
New path is `/docs/getting-started/`.
Also fix troubleshooting guide and no devices are found to `/docs/getting-started/troubleshooting/`
Pull Request resolved: https://github.com/facebook/flipper/pull/4042
Reviewed By: lawrencelomax
Differential Revision: D39314971
Pulled By: lblasa
fbshipit-source-id: 000b354b60bd05211b99134b63d790bf6949060f
Summary:
Some old welcome links are 'Page Not Found'.
## Changelog
Some old links are 'Page Not Found', so update them as follows:
1. Update "Using Flipper" link to 'https://fbflipper.com/docs/features'
2. Update "Add Flipper Support to Your App" link to 'https://fbflipper.com/docs/getting-started'
Pull Request resolved: https://github.com/facebook/flipper/pull/3902
Test Plan: Pass the test on a Mac.
Reviewed By: lblasa
Differential Revision: D37927376
Pulled By: passy
fbshipit-source-id: 0aac129932395e3f2ce3afa8c47cc637f3e814a8
Summary:
CHANGELOG: Add Flipper logs export to file
Allows users to export their Flipper logs with a single click. The export always includes all log levels but debug.
Reviewed By: antonk52
Differential Revision: D37485571
fbshipit-source-id: 82b02132794da30b255e6178db4a17c1ba8091ee
Summary: Use BasDevice definition from flipper-frontend-core in flipper-ui-core and remove the redundant definition from flipper-ui-core
Reviewed By: lblasa
Differential Revision: D37234785
fbshipit-source-id: 6e768090a197c1d2c49cb1cd573acea12fb65d24
Summary: This stack attempts to start using flipper-frontend-core from flipper-ui-core. Currently, flipper-frontend-core contains lots of copy-pasted code from flipper-ui-core.
Reviewed By: lblasa
Differential Revision: D37139198
fbshipit-source-id: 042db7492c550e10ea72c32fd15001c141bf53f9
Summary: This is now replaced by the support entry point and we need to delete the calling sites before we can clean up the everstore type.
Reviewed By: lawrencelomax
Differential Revision: D37090901
fbshipit-source-id: 597684bb149783d75e46ba61113e73878bf271a8
Summary: The styleguide was no longer accessible in Flipper, this diff restores that, and also cleans up the extras menu a bit to by creating a plugin devs only section.
Reviewed By: antonk52
Differential Revision: D36697071
fbshipit-source-id: a2abce40157fffd4952172f379c8063492e2dcc0
Summary: For some reason, the most important container property grow (and shrink) wasn't in the docs. Added that
Reviewed By: antonk52
Differential Revision: D36697072
fbshipit-source-id: 45dd0351e2a94d31972d57a9f006cd06a0d37c4e
Summary:
It's not obvious for non-mobile developers how to fix it when there are no emulators available. Adding a quick section in the troubleshooting guide and linking to it.
Changelog: Add link to troubleshooting page when no emulators are available.
Reviewed By: nikoant
Differential Revision: D36599925
fbshipit-source-id: f3a1e79e07209e34b66176102c85e7797292978c
Summary:
Our current loading state holder for the emulator launch dialogue is a "No emulators available" error message which may stay there for up to 5 seconds (in the case of only iOS enabled) before we see devices.
This adds a proper spinner that will show for as long there are pending device queries.
Changelog: Loading state for emulator launch dialogue
Reviewed By: nikoant
Differential Revision: D36598855
fbshipit-source-id: 64099596b48708b48a43f0208696a7dddc15007c
Summary:
Our launch emulator button isn't very helpful when you don't have any SDKs set up as it shows you exactly the same message as if it was loading for a bit longer. We've seen a low, but constant flow of support requests and it's often not easy to debug remotely unless you dig into the state export.
This sets up a new actionable message when you have neither Android nor iOS support enabled and sends you straight to the settings.
Changelog: Show alert in Launch Emulator dialogue if no SDKs are enabled
Reviewed By: mweststrate
Differential Revision: D36596972
fbshipit-source-id: ba72e9aaeb136c1a7e2f360ef9fbbeec6bc76f4d
Summary:
A paper cut that hurt me so many times. The launch emulator window gets populated by external commands that finish at interminate points in time and change the size, jiggling the buttons around. That means, you may hover over an android emulator just when the iOS command returns and when you click, you don't hit the Android emu, but some iOS thing.
This just makes the height fixed, so this cannot happen.
Still having some more improvements in mind as this is such a high-trafficked surface.
Chanlog: Fix wiggling of the Launch Emulator dialogue as data comes in
Reviewed By: mweststrate
Differential Revision: D36595001
fbshipit-source-id: e61de55f348ab4d2f6f977552539d2a44d3fd11d
Summary: Restyle of Trobleshooting, which involved changes to sidebar.js and splitting up the previous troubleshooting page into five separate pages.
Reviewed By: lblasa
Differential Revision: D36282539
fbshipit-source-id: e60834e2b4d98b70b23bb11309c3438d85e4de0e
Summary:
This PR fixes the missing hover effect for the `LeftRail` component buttons, when they have included the badge.
To fix the issue, I had to wrap the whole `Button` with `Badge` component (instead wrapping only around icon). However, this solution required to added `offset` property to the `Badge` which moves the indicator to the position prior change (otherwise indicator was moved to the right corner of the button).
The file has been formatted after the changes with ESLint.
**Edit:** I have also spotted that this change fixes the icon placement inside the button, when badge is present. Earlier, as seen below, the log icon was moved towards the top of the button:
<img width="111" alt="Screenshot 2022-01-31 at 00 57 49" src="https://user-images.githubusercontent.com/719641/151723422-0ffb83ee-5806-412e-9191-f9953f78532e.png">
## Changelog
[desktop] UI: fix hover effect of LeftRail icons with badge
Pull Request resolved: https://github.com/facebook/flipper/pull/3372
Test Plan:
The change has been testes by running the desktop Flipper app locally from source.
## Preview (before & after)
#### Before
<img width="1339" alt="Screenshot 2022-01-31 at 00 24 23" src="https://user-images.githubusercontent.com/719641/151722800-a2f3dd44-aa24-4858-b43e-0620b1f2ae65.png">
#### After
> I have used mocked indicator values locally to ensure that the Badges are displayed correctly.
<img width="1339" alt="Screenshot 2022-01-31 at 00 26 10" src="https://user-images.githubusercontent.com/719641/151722795-745b04ac-9ee4-49a8-8217-206d8d7456e6.png">
<img width="1339" alt="Screenshot 2022-01-31 at 00 45 08" src="https://user-images.githubusercontent.com/719641/151722940-aaaf0e9b-f2d1-4245-8b2b-cfc11052b39e.png">
Reviewed By: aigoncharov
Differential Revision: D33975324
Pulled By: mweststrate
fbshipit-source-id: fe4773b4825b9f22e01821e45259747d319233aa
Summary:
Currently the design of `LeftRail` varies a bit between light and dark modes. Additionally washed background color is hard to differentiate from the main background color in comparison to the light theme (See `LeftRail` sidebars toggle buttons background for example). This lead to few contrast related issues, for example the hover effect on the WelcomeScreen elements is not visible in dark mode.
The PR tweaks the dark mode theme colors and fixes the unnecessary background of Settings icon in dark mode.
I have also spotted that icon `hover` effect is not working when icon has a badge (pure dot or count), I might have an idea how to fix this and I will push another PR for that. 🙂
## Changelog
* tweak dark mode theme colors, improve LeftRail UI
Pull Request resolved: https://github.com/facebook/flipper/pull/3335
Test Plan:
The change has been testes by running the desktop Flipper app locally from source.
## Preview (before & after)
<img width="390" alt="Screenshot 2022-01-24 at 13 37 20" align="left" src="https://user-images.githubusercontent.com/719641/150784627-36e222a8-e53e-4409-ab72-783d4a594f8e.png">
<img width="390" alt="Screenshot 2022-01-24 at 13 46 08" src="https://user-images.githubusercontent.com/719641/150785438-bb496adf-83ab-4b1c-928d-07f4b0098f1a.png">
Reviewed By: antonk52
Differential Revision: D33741513
Pulled By: lblasa
fbshipit-source-id: ef187db0725ac2b04c09b7f06823e713b50be88f
Summary: When bundling a production bundle of flipper-ui / flipper-server, noticed that a lot of irrelevant stuff ends up. Like: `jest`, `metro`, `testing-library`. The whole jungle basically. Will add safety checks in the next diffs that this no longer happens
Reviewed By: passy
Differential Revision: D33186531
fbshipit-source-id: 1e2034153c8c4a3fac02cd9ce27d99224223df7a
Summary: Noticed that the welcome screen started bleeding in the sidebar when the screen is too small. Unlike the plugin container it lacked an overflow: hidden.
Reviewed By: timur-valiev, aigoncharov
Differential Revision: D32987160
fbshipit-source-id: be324247cdb4abfeec12c40624d65f9fa1e86eff
Summary: Added a command to let a file be opened by the OS, and some other small bits and pieces to make Flipper browser compatible.
Reviewed By: lblasa
Differential Revision: D32721748
fbshipit-source-id: a4ad1c2f662f4651ddf6c20c57e5af1e123914a8
Summary: Per title. Two new server API's: get-healthchecks, and run-healtcheck. Types have all been moved to flipper-common, so that they can be used by doctor, server-core and ui-core packages. Since it were quite some, moved them into a FlipperDoctor namespace.
Reviewed By: nikoant
Differential Revision: D32720510
fbshipit-source-id: 37aa35cde6ebd58479cf0dffec5b7b2da6d22198
Summary:
This diff moves RenderHost initialisation to jest, which is thereby treated as just another 'Host' like flipper-ui, the electron app etc. A benefit is that it provides a mocked flipperServer by default that can be used to mock or intercept requests. See LaunchEmulator.spec as example.
Also made the jest setup scripts strongly typed by converting them to TS.
This change allows the test stub configuration, which was OS dependent, out of flipper-ui-core.
Reviewed By: nikoant
Differential Revision: D32668632
fbshipit-source-id: fac0c09812b000fd7d1acb75010c35573087c99f
Summary: Moved all types related to plugin descriptions from plugin-lib (which handles downloads and such) to flipper-common. The goal of that is to remove all plugin-lib usage from ui-core to server-core, so that the UI itself doesn't do any file operations anymore related to plugins. That will be done in next diffs, this just moves types but no code.
Reviewed By: nikoant, aigoncharov
Differential Revision: D32665064
fbshipit-source-id: 86d908e7264569b0229b09290a891171876c8e00
Summary:
This diff moves a lot of stuff from the client to the server. This diff is fairly large, as a lot of concept closely relate, although some things have split off to the earlier diffs in the stack, or are still to follow (like making intern requests).
This diff primarily moves reading and storing settings and GKs from client to server (both flipper and launcher settings). This means that settings are no longer persisted by Redux (which only exists on client). Most other changes are fallout from that. For now settings are just one big object, although we might need to separate settings that are only make sense in an Electron context. For example launcher settings.
Reviewed By: passy, aigoncharov
Differential Revision: D32498649
fbshipit-source-id: d842faf7a7f03774b621c7656e53a9127afc6192
Summary: This diff makes sure flipper-ui-core no longer depends on flipper-server-core. Currently server config is still transferred from UI to server, which doesn't really make sense in future scenarios where server might start before client, but will address that separately
Reviewed By: timur-valiev, aigoncharov
Differential Revision: D32462835
fbshipit-source-id: 498a944256ba1aabbf963b896953e64d11e27214
Summary:
This diff moves all UI code from app/src to app/flipper-ui-core. That is now slightly too much (e.g. node deps are not removed yet), but from here it should be easier to move things out again, as I don't want this diff to be open for too long to avoid too much merge conflicts.
* But at least flipper-ui-core is Electron free :)
* Killed all cross module imports as well, as they where now even more in the way
* Some unit test needed some changes, most not too big (but emotion hashes got renumbered in the snapshots, feel free to ignore that)
* Found some files that were actually meaningless (tsconfig in plugins, WatchTools files, that start generating compile errors, removed those
Follow up work:
* make flipper-ui-core configurable, and wire up flipper-server-core in Electron instead of here
* remove node deps (aigoncharov)
* figure out correct place to load GKs, plugins, make intern requests etc., and move to the correct module
* clean up deps
Reviewed By: aigoncharov
Differential Revision: D32427722
fbshipit-source-id: 14fe92e1ceb15b9dcf7bece367c8ab92df927a70