Summary: There was a regression in which the selection background color made the selection hard to read in dark mode.
Reviewed By: mweststrate
Differential Revision: D38572894
fbshipit-source-id: c46d384175132112e1223434534a379318bfa2ea
Summary:
This is the second part of the feature which enables data/log persistence by adding a global setting which controls whether the data is wiped when the same device is disconnected and reconnected.
Building on the previous diff, this diff uses the setting from the Redux Store to determine whether to "wipe" the data or not.
Changelog: Added option in Flipper settings to persist device data upon reconnection instead of wiping everything.
Reviewed By: mweststrate
Differential Revision: D38076567
fbshipit-source-id: 83658ac09bc88921a56517e1a1f624d4a4bbc2c5
Summary:
This is the first diff to implement the feature for the Flipper logs plugin to have an option to persist logs in the table between crashes, disconnections, etc.
Since this is not a local change, the UI option for persistence will be located in the settings for the Flipper UI(as seen in the test plan). The setting is associated with the Redux Store `Settings` and is stored globally to be used across all plugins. So the plan is making the persistence pertain to all plugins.
Reviewed By: mweststrate
Differential Revision: D37786988
fbshipit-source-id: 7ffc6077cbca559b3401b16770eda657a6c45620
Summary:
This diff updates the Flipper plugin for UIQR+DDR to upsell people to use `arc uiqr` on the "Upload and Get Link" tab. At the moment I'm not showing the upsell on the "Upload Screens to Diff" tab since this functionality isn't really supported through `arc uiqr` yet.
The upsell uses localstorage to maintain its open/close state so it will show up by default but will be permanently dismissed (unless localstorage is cleared somehow :) ).
NOTE: I hacked out this UI using some existing reusable UIQR Flipper components and some extra styling for the background, but definitely open to feedback on the UI!
Differential Revision: D38232117
fbshipit-source-id: e1745e32974bd9e750bbbaaa2f47bafdd0ac87eb
Summary:
1. Added icon to search bar to manually trigger the hide/show search context/results functionality, which was only triggerable by ctrl(now migrated to ctrl+t) before.
2. Added tool tips to increase visibility of keyboard shortcuts
Changelog: Added icon for showing search result context(only triggered by keyboard shortcut before). Added tool tips to search bar icons.
Reviewed By: mweststrate
Differential Revision: D38207087
fbshipit-source-id: a34c1322294ed8091ea3f90d2f1f206af981c9ca
Summary:
Currently there's no way of quickly selecting recent searches other than manually opening the recent search history and then clicking one of the search terms. This diff seeks to add a new feature that would allow not only a keyboard short cut to open the recent search history drop down but also number the most recent 5 search terms so that the user could quickly select them with a number on their keyboard
Additionally, fixed bug found in terms of the search bar not showing the current search value correctly
`Changelog`: Introduced keyboard shortcut(ctrl + f) option to toggle the search history dropdown along with numbers attached to the options in order to quickly navigate to recent search terms. Have to first enable the option(search shortcut) in menu in order to use the feature. Also added a new button in the options menu that would trigger the search result toggle as triggered by the keyboard shortcut `ctrl` before(`ctrl` + `t` now)
WARNING: The current behavior of "ctrl" toggling back and forth to focus the selected item has been migrated to "ctrl + t" key combo
Reviewed By: mweststrate
Differential Revision: D37685738
fbshipit-source-id: a7ac4dd3dceb846a98258de2d884ebc279ee5995
Summary:
In order to accomplish multi-panel mode, we need to use multiple data views on the same data source so that the filters can be applied differently, etc.
This diff serves to refactor DataTable and some of its associated classes to use DataView as the primary driver for data management. Additionally, the diff refactored the state to allow multi-paneling to be on the DataPanel layer instead of the DataTable layer for ease of usage
This is the last diff of the larger stack which introduces the multi-panel mode feature. A possible next step could be allowing infinite(up to a certain limit) panels to be populated.
Changelog: Introduced side by side view feature for `DataTable`. There is now a new boolean for `DataTable` props called `enableMultiPanels`. If this is passed in, then the table will have an option to open a different "side panel" using a completely different dataview which allows different filters, searches, etc.
Reviewed By: mweststrate
Differential Revision: D37685390
fbshipit-source-id: 51e35f59da1ceba07ba8d379066970b57ab1734e
Summary: SidebarInteractiveContainer sets mousedown/mouseup handlers. Whenever user tries to select text in child element those are triggered.
Reviewed By: passy
Differential Revision: D37994014
fbshipit-source-id: 5dcf5642b3a92ec50008aa4aad6b9522a09c1527
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:
^
Ignore the errors as otherwise it may cause unhandled rejection errors.
Reviewed By: aigoncharov
Differential Revision: D37926740
fbshipit-source-id: 50476378b4d254e28af953979fbedad1113e43aa
Summary:
Observed that a few requests tend to timeout when using Flipper with flipper-server.
Increasing timeout to 45s as to be a bit more flexible.
'exec' operations don't have a timeout when not using flipper-server.
Reviewed By: antonk52
Differential Revision: D37955108
fbshipit-source-id: 5d8ef7f066d6b316e4b485b281a015794b5bd2de
Summary:
Client calls return a promise. Not dealing with the error causes promise unhandled rejection errors.
This change adds a catch block and logs the error instead.
Reviewed By: antonk52
Differential Revision: D37955029
fbshipit-source-id: 50cac5a5339961d16868ab2102d3c77790e6943c
Summary:
Historically, RSocket used to raise an error when there was an error during send, most likely because the connection was dead.
With WS, this is no longer the case.
WS connection issues are raised through the according handlers.
Reviewed By: passy
Differential Revision: D37825821
fbshipit-source-id: 7fcda8cf26fb42eb0d8ca03b62482f11c931777f
Summary:
This diff adds a new menu option to the Logs plugin which allows for enabling/disabling the automatic filtering of search terms in the search history as user types.
Additionally, fixed bug regarding the search term that's used is not actually showing correctly. This is caused by the search value being set in the input search bar instead of the autoComplete component level
Differential Revision: D37555209
fbshipit-source-id: 8a76299f7e1a4b0a3adfa6a4dd883d17f1e7a442
Summary:
Sets a default key binding of `ctrl+l` to clear the screen within built-in Flipper plugins which display a log view.
Motivation: A small quality of life improvement for developers used to the default "clear screen" binding. This makes our log-rendering plugins consistent with other native apps such as terminals, Chrome DevTools, and many others.
Reviewed By: mweststrate
Differential Revision: D37782638
fbshipit-source-id: 0a85b930faaa0e9468d5391f15092aad7b6057ee
Summary:
If there's a device client disconnect during request execution, no response is ever given back to the client (flipperd).
This change effectively subscribes to client disconnect events and notifies flipperd of any disconnection during request processing.
Reviewed By: passy
Differential Revision: D37787986
fbshipit-source-id: 31737a50b83b0cbe4141ce814064aebef7e09bfc
Summary:
Currently in the Flipper network plugin implementation, XMLTextFormatter is only enabled if `content-type` is `text/html`.
We should enable it for `application/xml` and `text/xml` as well.
Reviewed By: mweststrate
Differential Revision: D37733487
fbshipit-source-id: f272c5d0a305cf4afd32701d40459c3e11049886
Summary: For the Flipper Server Companion, if a plugin is being requested which is not yet installed, try to install it first from the marketplace.
Reviewed By: passy
Differential Revision: D37716962
fbshipit-source-id: d618fbc597f82b540dbb02e8ffc296dcee9e1eb9
Summary:
Expose two new methods as to be able to:
- List plugins from marketplace
- Install a plugin from marketplace
Reviewed By: passy
Differential Revision: D37749817
fbshipit-source-id: 82b78f7906c5664d5747289fa4f8eadebcde1d73
Summary: Expand PluginManager as to be able to load and install plugins from Marketplace.
Reviewed By: passy
Differential Revision: D37749802
fbshipit-source-id: 7d7e23427cc9d01f5c953b90e5b346a9d6bab19f
Summary:
Implementation taken from:
https://www.internalfb.com/code/fbsource/[85c1fe5afee7]/xplat/sonar/desktop/flipper-ui-core/src/fb/pluginMarketplaceAPI.tsx
As with the previous diff, the marketplace API for flipper-server-core accesses the existing config in a different way and depends on FlipperServer, instead of User, to execute intern request as to obtain marketplace plugins.
Reviewed By: passy
Differential Revision: D37749775
fbshipit-source-id: 968ea3f7a412893f032e5a7a50ecf17c298e18ff
Summary:
A few comments in my rewrite stack got missed, I am addressing them here.
In addition react testing library has been hoisted to the root module in the project and been made available to all sub modules
Reviewed By: mweststrate
Differential Revision: D37712339
fbshipit-source-id: 60984c3d16bd535b0c489570907f097c7d80f634
Summary: Move User from reducers to flipper-common. User will now be usable by other modules.
Reviewed By: passy
Differential Revision: D37599802
fbshipit-source-id: 66412e7ed00bf27448fa2deae70f0e8e80303aba
Summary: This is needed to avoid mobile builds depending on BaseDevice
Reviewed By: mweststrate
Differential Revision: D37315909
fbshipit-source-id: a090bd3e76ceefe1f2ac68f832ee544ae45a8d6a
Summary: There is a new flipper server command to install apps. For android it uses adb (via adb kit) For ios depending on idb availablity it will use idb or xcrun. Consumed in the next diff
Reviewed By: lblasa, aigoncharov
Differential Revision: D36936637
fbshipit-source-id: e09d34d840a9f3bf9136bcaf94fb8ca15dd27cbb
Summary:
Provides a much nicer devx, shows test pass / failure in the editor and error messages in line
https://pxl.cl/25G0x
When the extension is installed with this config it will watch all test and run what is needed, automatically updating the editor with test status
It also supports debugging tests individually right in the editor
see https://github.com/jest-community/vscode-jest for full docs
Also Once VS code @ fb is updated to a newer base of vscode, we will get access to to the testing sidebar feature
https://pxl.cl/25G0R
Reviewed By: lblasa, aigoncharov
Differential Revision: D37009812
fbshipit-source-id: e1918a0817d4703089b6300840fcf9564b871682
Summary:
See https://fb.workplace.com/100051336486185/videos/469885544533059/
I couldn't reproduce it myself, but it is reported that when copying logs, the order of the selection is not preserve. Diving into the example there is a block of rows (around the 1.09 timestamp) that appear 'too early' in the output.
In flipper we sort the selection before copying the data by row index. This is to make sure if the user has multiple selections, they appear in the order of the logs (including any applied sorting), rather than in the order of which the user selected them.
However, when sorting numbers, JavaScript by coerces them to strings first (wtf JS), so the issue can be prevented by explicitly providing a sort function. Proof: {F749329864}
Reviewed By: lblasa
Differential Revision: D37596975
fbshipit-source-id: 820e03350034e7af8148200a58a8c858b358acd8
Summary:
In diff D36663929 (e07d5c5bfe) the behaviour of data table was changed so that it only searched fields that were columns in the table. Due to user request we are restoring the functionality where you can search and it will look in all top level fields in the underlying object for the row
changelog: Fixed 'free text search' for data table. E.g network plugin
Reviewed By: mweststrate
Differential Revision: D37552492
fbshipit-source-id: 00ec942b2a2336c19a7d067d85cc6c81b8a175e1
Summary:
^
There may be cases whereas the process exits but leaks the socket descriptors.
There's already a hook to close flipper-server.
Reviewed By: passy
Differential Revision: D37550940
fbshipit-source-id: 35004969834bb92bb7cf0f56bda8d7b43c11d6bf
Summary: We no longer need to Tail the logs as we stream the logs over WebSockets (see D37459924 (dcbc7c40bb))
Reviewed By: lblasa
Differential Revision: D37550482
fbshipit-source-id: 92a87f2ba1ecec140bbbb9e71df107341765ad46