Summary:
Andrey's diff already ensures that we send the flag, this also adds it to the info string
which makes it more visible.
Reviewed By: lblasa
Differential Revision: D36699070
fbshipit-source-id: 905eded9612b19ecaa35a841ec240af002e11611
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:
^
This change aims to extract some bits and pieces that are not specific to FBLogger and could be used by other Logger implementations.
Reviewed By: passy
Differential Revision: D36473286
fbshipit-source-id: 57f02d132673dbac97384da4dca51bf3e6fb8738
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: Fix a TypeError exception in TableHead.tsx when an ordered column is not present in the row.
Reviewed By: aigoncharov
Differential Revision: D36497494
fbshipit-source-id: 18c961468fc2bc3cca16290fd9e6c973e5e18ebf
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: Some intern plugins use it, an dit is currently missing in FlipperLib
Reviewed By: timur-valiev
Differential Revision: D36313032
fbshipit-source-id: 5ea8e250f1d0bc8831727abd883d953286a022d4
Summary: Fix UI freezes on popup opening by upgrading back React app creation from "createRoot" to "ReactDOM.render". These UI freezes started to happen after React upgrade because the issue in integration of Antd with React 18: https://github.com/react-component/trigger/issues/288
Reviewed By: aigoncharov
Differential Revision: D35359129
fbshipit-source-id: eb0ad979443ecf67eb2acc2e219196c9fefcff62
Summary:
- Support loading globally installed DevTools
Background:
1. Initially, I wanted to use react-devtools-core as before. react-devtools-core standalone contains quite a few imports of node.js APIs. After [a conversation with Brian](https://fb.workplace.com/groups/react.devtools/permalink/3131548550392044), I pivoted to react-devtools-inline
2. Technical design doc of react-devtools-inline integration: https://docs.google.com/document/d/1STUSUhXzrW_KkvqSu7Ge-rxjVFF7oU3_NbwzimkO_Z4
3. We support usage of globally installed devtools. Code of react-devtools-inline is not ready to be used by the browser as is. We need to bundle it and substitute React and ReactDOM imports with the globals.
4. As we can't pre-compile what users install globally, we need to bundle global devtools on demand,
5. I tried re-using our Metro bundling pipeline initially, but gave up after fighting it for 2 days. Included, `rollup` instead.
6. Size of a `tgz` archive with a plugin is 2.1MB
allow-large-files
Reviewed By: mweststrate
Differential Revision: D34968770
fbshipit-source-id: 352299964ccc195b8677dbda47db84ffaf38737b
Summary: In the category "how did this ever work", we had quite some reports of Flipper features not working while users are seemingly logged in. The cause of that is because the user info gets stored in the user reducer, so even when the network requests fail, the users appear to be logged in.
Reviewed By: nikoant
Differential Revision: D35114048
fbshipit-source-id: b8c09cb4e3fd7cd0cbe87ecb06dafca88716b689
Summary:
This is not actionable for us as it includes changing device identifiers.
In this case it's better to rely on individual user reports if this is about
a particular device/app combo.
Reviewed By: lawrencelomax
Differential Revision: D34749996
fbshipit-source-id: 88c6c8b076b3f7d9808b6a2a9b08854d2d7cb39f
Summary:
This is PR on top of: https://github.com/facebook/flipper/pull/3473
It adds an option to Settings to allow distribution of marketplace plugins.
Also includes a simple fetch function to retrieve data from external API/server.
## Changelog
Allow marketplace plugins
Pull Request resolved: https://github.com/facebook/flipper/pull/3491
Test Plan:
1. Enable marketplace
2. Provide custom marketplace server (it will serve the list of internal plugins with downloadURL)
3. Test if can see Available plugins and can download/remove the plugin
4. If new update for the plugin, it should also allow auto update
Reviewed By: antonk52
Differential Revision: D34586339
Pulled By: nikoant
fbshipit-source-id: c887982aa0f0f9abd3b5360f22e8692a2445d345
Summary:
1. Identify if device supports screenshots/screen recording when it is created.
2. Disable screen recording/screenshot buttons when they are not supported
Reviewed By: passy
Differential Revision: D34611133
fbshipit-source-id: 82ad2d67e4af482d9becf7995187667b5d99bc36
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/3473
This diff is the first one which addresses https://github.com/facebook/flipper/issues/3320.
In this diff we are making a part of the code used for internal Flipper plugin distribution in Meta also available publicly for re-using in other orgs.
Some explanation on how plugin installation and updates is designed now:
1) We periodically poll for plugins available for download. API for retrieving available plugins list is abstracted and will be different between public and fb versions, however all other logic is re-used.
2) In addition to "Enabled" and "Disabled" plugins in the left panel Flipper shows "Detected in App" list. Plugins in this list are those which are known compatible with the currently selected device/app, but not yet installed.
3) User can install any of "Detected in App" plugins by clicking to "Download and install" button near them in the left panel similarly to enabling plugins in "Disabled" list.
4) If we detect that for some installed plugin we have a newer version available for download - we download it silently and store on disk.
5) If the plugin for which we have new downloaded version is disabled - we update it silently without any notifications by loading new version from the disk and unloading the previous version from cache.
6) If the plugin for which we have new downloaded version is enabled then we avoid updating it automatically (because we need to reset plugin state in such case) and instead show notification on top of the plugin and ask user to reload it to apply new version. On reloading we reset the plugin state.
7) On Flipper startup we always update all plugins to their latest versions available on the disk.
Reviewed By: aigoncharov
Differential Revision: D34380308
fbshipit-source-id: a94d724e42aa5ef78445af266fcd4c424226a703
Summary:
This is just refactoring in preparation to open-sourcing internal plugin distribution code to make it available for other orgs so they can distribute their internal plugins. See other diffs in the same stack.
This diff moves recommended plugins handling from `pluginMarketplace` which will be the same for fb-internal and OS versions into `pluginMarketplaceAPI` which will differ for fb-internal and OS versions. This will make it possible for other orgs to define their own "recommended" plugins which then will be automatically installed/enabled for new users.
Reviewed By: aigoncharov
Differential Revision: D34379981
fbshipit-source-id: 5c3a4efb6d0171256cf508f9005d914d7332e14f
Summary:
'Failed to start connection server' is a bit misleading. 'server-error' is used for both server and client errors.
Changelog: Better notification messaging
Reviewed By: aigoncharov
Differential Revision: D34269045
fbshipit-source-id: f51a28fc0e9ba394b464e5bfca4d0e497f740b1b
Summary:
Noticed in https://fb.workplace.com/groups/flippersupport/permalink/1305583723255616/ that always shows at the end of the plugin list.
Fixed this on two levels:
1. uppercase the title for consistency
2. Make sorting case insensitive
Differential Revision: D33985518
fbshipit-source-id: 70bed519e1ae5b3251b103931472844b2b55a512
Summary:
Our existing `timeout` implementation was always throwing an exception, due to sleeping and then throw an exception, which is than handled but ignored by `Promise.race`.
This implementation has a few problems
1. Because it always throws, having a debugger session with 'break on caught exceptions' will pause on every usage of timeout (rather than just the ones that actually timeout). This makes this way of debugging a bit useless.
2. Throwing exceptions is in principle an expensive process (due to the stack trace generation)
3. Not cancelling the timeout used by sleep is a bit of a waste as well
Reviewed By: lawrencelomax
Differential Revision: D33982717
fbshipit-source-id: d739c02112e1c1bc4cd691af852371d08a99abc6
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:
Same as Settings modal, the Plugin Manager table used in Plugins modal includes the UI glitch in dark mode due to overflow setting. This PR fixes that and also adds missing column caption in "Install Plugins" table.
I have chosen `Action` as a title but this can be altered, I have no strong preference in there. The goal was to improve the clarity and also improve the context menu content (where user can show/hide columns).
## Changelog
* fix Plugins table UI glitch in dark mode, add column name
Pull Request resolved: https://github.com/facebook/flipper/pull/3332
Test Plan:
The change has been testes by running the desktop Flipper app locally from source.
## Preview (before & after)
<img width="396" alt="Screenshot 2022-01-23 at 16 19 02" align="left" src="https://user-images.githubusercontent.com/719641/150685739-e2047e70-de14-4801-ac5a-0fc45a6ea476.png">
<img width="396" alt="Screenshot 2022-01-23 at 16 19 31" src="https://user-images.githubusercontent.com/719641/150685735-3de8b7a2-ea3f-489a-b1f8-7af73f0a5225.png">
Reviewed By: aigoncharov
Differential Revision: D33738705
Pulled By: lblasa
fbshipit-source-id: 704fe40f26d424c62a9bbc3e73132a0026f2e8b8
Summary:
A Logview issue was raised for the following error:
Cannot assign to read only property '0' of object '[object Array]'.
Analysis:
Currently, the menuEntries are stored by reference in the reducer, and made read only to protect it against accidental writes. Tha's probably why the '0' assignment fails, and the fix is that the reducer should only get a defensive copy as config about the current menu entries to show.
Reviewed By: mweststrate
Differential Revision: D33454514
fbshipit-source-id: 2faf3036eb6ae4fbe9a8d0253fde27cf389d3e4c
Summary:
2022 New years intention: don't fix problems with arbitrarily timeouts
In production builds, settings weren't saved if apply + restart was used (apply and manual restart did work). I suspect a bug in redux-persist, since we do await a flush, but anyway a little delay seems to fix it consistently.
Changelog: Fixed an issue where changing settings wasn't persisted when using "Apply + Restart
P.S. I won't accept any insinuations that this was my new years intention of 2015, 2017, 2018, 2020 and 2021 as well.
Reviewed By: cekkaewnumchai
Differential Revision: D33377718
fbshipit-source-id: 3a9ec58b4f8208603d786342ddaf6bf02b3887c7
Summary:
changelog: Improved column widths in data tables
This diff fixes two issues:
1) dynamic width columns became invisible if there is too much else, and therefor it was hard to make them bigger or even notice them
2) column headers could be out of sync with the actually rendered rows, due to minor styling differences
Reviewed By: cekkaewnumchai
Differential Revision: D33364781
fbshipit-source-id: c3d47bb8db4af521859a5cbdf525d8ce39c71d00
Summary:
This diff makes sure that errors are propagated similarly in flipper desktop and browser version, and that they are shown in either case.
Since in the browser version, the UI loads after the error happened, we'll store the error so that any client connecting in the future will read and report it.
Also added a `--failFast` flag to flipper-server, so that the process exits immediately if misconfigured, which is convenient in CI use cases and such
Reviewed By: nikoant
Differential Revision: D33348922
fbshipit-source-id: 0f584104f881141fde38da3f0031748415343ea2