Summary:
Debouncing search to prevent triggering multiple searches, while typing.
Now, a search is only triggered, when the input hasn't changed for more than 200ms.
This affects all SearchableTables.
Reviewed By: passy
Differential Revision: D15855343
fbshipit-source-id: 261cf601249ac604c865ae10deb25d5c836f964a
Summary:
Select multiple rows, and then right click, or use Ctrl-click.
This was broken, it was resetting the selection when this happened.
This fixes it.
Now after selecting multiple, what happens depends where you right-click.
If you right-click within the current selection, it stays selected and you can copy it.
But if you right-click outside the current selection, that row becomes the new selected set, and you will just be able to copy that one. This feels right to me.
Reviewed By: passy
Differential Revision: D15822668
fbshipit-source-id: 6a6cda8a8f16fec55cffa52c1c2ff958c86b3f43
Summary:
We in React VR were need newer Chrome DevTools version to make our plugin work properly. Chromium version with required fixes were shipped in electron 5.0.0.
This diff bumps electron version and explicitly allows node integration (accessing require, process and other node related functions from window object in index.html), because it was disabled by default in 5.0.0.
Reviewed By: jknoxville
Differential Revision: D15693539
fbshipit-source-id: 4f71a07b2afaa489aec46940c924f4ad30ad0413
Summary: Adds the capability to customize rows in the elements inspector via a callback.
Reviewed By: danielbuechele
Differential Revision: D15738355
fbshipit-source-id: 27b91a74535736318b7fdb9d2eb44dfa20b4d77b
Summary:
`StatusIndicator` works well as a flex child, but didn’t support usage in inline / text contexts.
Adding `display: inline-block` fixes that.
Reviewed By: danielbuechele
Differential Revision: D15695673
fbshipit-source-id: 30378d2292390b8d86c0a26c11571e5953b841f2
Summary:
Pulls out the local `Lamp` component from `PluginDebugge` into `StatusIndicator`.
This will allow to reuse the component in different context, to guarantee a consistent appearance of Flipper throughout.
For good measure, we make diameter and title configurable. Vertical alignment is changed from `margin-top` to `align-self`.
Reviewed By: danielbuechele
Differential Revision: D15692275
fbshipit-source-id: 438b2f5300175565dbf07d07a5d757936b4f7cfe
Summary:
React outputs the following error:
Warning: Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.
This fixes it by using value instead of selected.
Reviewed By: danielbuechele
Differential Revision: D15535717
fbshipit-source-id: eb784ba2cdefe1c6744cc15592cd3e0191d237d0
Summary: React is printing errors saying not to use "Span", and booleans in html properties
Reviewed By: danielbuechele
Differential Revision: D15535593
fbshipit-source-id: e074137c89abfa69625b370087c9c18b579ff279
Summary:
As seen [here](https://fb.workplace.com/groups/230455004101832/permalink/623364598144202/?comment_id=623436418137020&comment_tracking=%7B%22tn%22%3A%22R%22%7D) using the primary key + CTRL to open the context menu, triggers the drag-select mode. This should not be the case. This diff changes the behaviour to:
- Not trigger the drag-select-mode, when openting the context menu using CTRL
- Select the current row, when performing a context click on it.
Reviewed By: jknoxville
Differential Revision: D15538057
fbshipit-source-id: d3d086c3d44618b2801e3a9b0646689c04fa32ff
Summary:
When a color was changed on a litho component, the changes were made, but the display in Flipper's layout sidebar always showed `rgba(0,0,0,0)` as a color. This was because reading the color failed for `ComparableColorDrawable` and it sent `0` as fallback value.
This diff adds an additional check if the value is an instance of `ComparableColorDrawable` and reads the color from it.
Reviewed By: passy
Differential Revision: D15469093
fbshipit-source-id: 7f1aaf1c4981815605aca5ba735fa09e80deaa42
Summary:
It was relying on hash keys to be in order, which obviously won't work. Logs plugin, on "copy message" was copying a timestamp instead.
Fixed by using the columnOrder state instead.
Reviewed By: danielbuechele
Differential Revision: D15535281
fbshipit-source-id: 2d7db95c16cc4f75c0d9cf14806fcc80cc8e4bd9
Summary:
Adds a plugin for listing the databases, tables and contents of those tables in an android app.
Right now, works with sqlite, but it should be generic enough to work with other db types.
## Changelog
Add initial version of android databases plugin
Creating a PR, I may need to do some cleaning up, but this is to kick off that process.
Pull Request resolved: https://github.com/facebook/flipper/pull/441
Reviewed By: danielbuechele
Differential Revision: D15288831
Pulled By: jknoxville
fbshipit-source-id: 6379ad60d640ea6b0a9473acc03dd6ea81a3a8d4
Summary: I added column size persistence when resizing manually, but broke initial column sizing when a prop is provided. This fixes it.
Reviewed By: passy
Differential Revision: D15392145
fbshipit-source-id: 53f79c520917cd571302502c8b75aa0475567cb9
Summary: This was already implemented in the old versin of layout inspector and got lost during the refactoring. When using talkback, the focused view is highlighted in green in the a11y inspector.
Reviewed By: passy
Differential Revision: D15294025
fbshipit-source-id: 92cc015e4bc726515e433b7b96f924246916972d
Summary:
Previously you could only copy the entire row.
Now you can choose which cell to copy.
Not the perfect UI admittedly, but that would require a big change to make individual cells selectable. I think it's a definite improvement.
Reviewed By: passy
Differential Revision: D15231784
fbshipit-source-id: 0d52192a5bf4e8ea1ebee74988c749d3f602fea9
Summary: This was causing resizing to trigger onClick every time, which isn't wanted.
Reviewed By: passy
Differential Revision: D15219039
fbshipit-source-id: ea5d9221b0ce8fa7a050a8410876cf78bfee2bc6
Summary: Allows for sort order to be preserved and applied from the start.
Reviewed By: danielbuechele
Differential Revision: D15182696
fbshipit-source-id: ad546ce35bf4637ca637589c6c3d6291a4313db7
Summary:
Adds a global inside managed table where, whenever a table key is provided, the column sizes are stored.
Then if a new table is constructed with the same key, it will get the sizes from before.
Reviewed By: danielbuechele
Differential Revision: D15181762
fbshipit-source-id: 98b5a14f8805075928cbe51511609b8b58c512fd
Summary:
Adding a property `horizontallyScrollable` the `ManagedTable` that enables horizontal scrolling, if that is required by the table's contents.
By default this behaviour is disabled to not break existing tables.
Reviewed By: jknoxville
Differential Revision: D15166144
fbshipit-source-id: 7a9b76facdbe717deb3d097e0b8883d4b0732d51
Summary:
We've had a bunch of different options that were all binary
switches with very different ways of displaying them.
This consolidates them all to use ToggleSwitches. I think it
may still make sense to move them all to a sidebar as it's
the case for the Analytics plugin, but that's for another diff.
Reviewed By: danielbuechele
Differential Revision: D14933392
fbshipit-source-id: 7ef286b61142a564a7cde6de875266ac8641704b
Summary:
The `instanceof Object` check was throwing an "cannnot convert object to primitve value" error, for some reason that I didn't fully understand. Replacing this check with a `typeof` check. However, `null` also returns `object`, so we are explictly checking this as well.
This was the error that happened before, on every POST request:
https://pxl.cl/vc6K
Reviewed By: passy
Differential Revision: D14827145
fbshipit-source-id: 999480db9afb1e0cc0d1bef73fb0cb2223fa0bc4
Summary:
Native plugins are plugins that can be written in mobile code alone (java/objc), provided they conform to a template, currently table is the only implemented template.
This adds support to flipper for handling them.
Reviewed By: danielbuechele
Differential Revision: D14502188
fbshipit-source-id: a96be9b06de1cecf7977c4ef2fd05b168f7f1330
Summary: I have updated the UI of the crash reporter. It doesn't show the multiple crashes now. I will work on that in other diff. This diff just updates the current UI that shows the latest crash, as per the [design](https://our.intern.facebook.com/intern/px/p/pJ11/)
Reviewed By: danielbuechele
Differential Revision: D14399400
fbshipit-source-id: f6f28c2c6d386f4cd99a257922993ef355b1059b
Summary: Overflow on panels was clipped. Setting overflow visible to make it visible.
Reviewed By: passy
Differential Revision: D14519402
fbshipit-source-id: 264f99e3ac20986365c8f69564c4633818dd4a94
Summary: Should also fix the build.
Reviewed By: jknoxville
Differential Revision: D14477777
fbshipit-source-id: 01fcfb2321c9b7a12acdf079473d91b6805d4dda
Summary:
Removing the virtualization in the elements inspector. This didn't really make sense here, because usually the inspector renders 10-1000 rows, which can be easily done in the browser. Having virtualization here, caused some problems with icons flickering and scrolling being broken.
Let's make it less complex and just remove the virtualization!
Reviewed By: jknoxville
Differential Revision: D14209815
fbshipit-source-id: 115d3ed57a1ccdbc20108636ff4fc7fc68e6c9c0
Summary:
The keys in WeakMaps have to be Objects (i.e. can't be primitives) as
they have to be fall under the responsibility of the GC.
Without this check, we may get "TypeError: Invalid value used as weak map key"
as we accept `any` as `data` for the inspector. I'm not entirely
confident if this check is enough, but I also don't have a way of reproducing
the error we got reported.
Reviewed By: jknoxville
Differential Revision: D14182463
fbshipit-source-id: 3397678935f08513e485bf5654377b54053ee32f
Summary:
The search query can only be persisted if we have an identifier for the searchable component. For this we already have a property `tableKey` on our `ManagedTable`. However, we don't want to require every plugin to provide a key for their table.
In this diff, a tableKey is auto-generated from the table's column configuration. This should be good enough to uniquely identify a table and persist it's query.
Reviewed By: passy
Differential Revision: D14168577
fbshipit-source-id: 13e928a606c3a05096dfbfb01ae90b15aa085bf2
Summary:
1. Added onSort() pass-through to ManagedTable which allows to handle sort order changes.
2. columnOrder now gets updated when the corresponding prop is changed indepedently from ref.
Reviewed By: danielbuechele
Differential Revision: D14147857
fbshipit-source-id: 03300629a3316a69be6b745810516966b8060aa6
Summary: Soves the bug which caused the multiselection to clear off when one did ctrl+click
Reviewed By: jknoxville
Differential Revision: D14103906
fbshipit-source-id: 834d79e1c86a89b4d90c26e8db1850c1e8712a5d
Summary:
Unified all imports of Logger. Some were called LogManager before.
Now the fb-stub and the fb variants use the same interface.
Constructor of Logger is no longer exposed so it can't be initialized twice, unless in the case you're explicitly using the fb variant, which has extra functionality.
Reviewed By: danielbuechele
Differential Revision: D14083929
fbshipit-source-id: 9b61a06e1264d5f142b5a9188465c99deaf18193
Summary:
Upgrading to flow 0.91, fixing a bunch of `$FloxFixMe`s that were introduced by upgrading to 0.86.
Also fixing some linting issues.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13900794
fbshipit-source-id: 5d0a1b62371f3b5d34b909bae0876583acb6f977
Summary:
Incorrect imports were causing an error: `invariant is not a function`.
This fixes the imports.
Reviewed By: jknoxville, priteshrnandgaonkar
Differential Revision: D13859945
fbshipit-source-id: 2a5f5f87b4df2840c8e6b749acb293b145805afa
Summary:
Fixes required to be able to run Flipper in node.js:
* Adds checks if the `window`-object exists before using it, to allow running in node.
* Imports from within Flipper should directly reference the file they are requiring instead of `import from 'flipper'`. This was done in most of the places. Fixed a few occurrences where this wasn't the case. This is to prevent cyclic dependencies in node.
* shared packages (React, ReactDOM and Flipper) were exposed on the `window` before, changed this to `global` as this works in browser and node.
* Adds some missing methods to our electron stubs (used for testing and headless Flipper)
Reviewed By: passy
Differential Revision: D13786577
fbshipit-source-id: 145d560f1446e7d0bdec2acd8dd54dae983d7b36
Summary:
Exposing a `<Sheet>` component to plugins. This allows plugins to create sheets, by returning something like this from their render function:
```js
return <div>
contents of my plugin
<Sheet>{() => <div>content of my sheet</div>}
</div>
```
Reviewed By: passy
Differential Revision: D13597251
fbshipit-source-id: 9da6ba6d2036243ddd2d05b73d392bf24be8d375
Summary:
This patch add a new prop on ManageTabled called buildContextMenuItems. It allows
to override the current context menu when right click on the ManagedTable rows.
Pull Request resolved: https://github.com/facebook/flipper/pull/352
Reviewed By: danielbuechele
Differential Revision: D13590258
Pulled By: passy
fbshipit-source-id: a90887a97136818611102a2628361c84988efeac
Summary: Moving the `MarkerTimeline` from the QPL plugin to the Flipper UI library, so it can be used by other plugin.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13377065
fbshipit-source-id: 9ef1f0e044fa85b68a01e23071042600aa5c3c63
Summary:
Moving the scrolling to highlightedRows from `componentWillReceiveProps` to `componentDidUpdate` to make sure the rows are rendered, when this method is called.
The method is called, whenever the highlighted rows change, and on the first update. The reason why this is called on the first update is described in an inline comment.
Reviewed By: passy
Differential Revision: D13376566
fbshipit-source-id: 311a1f430e08fcfb4e31b39a2c5b34910694917f
Summary:
* using `includes` instead of `indexOf` for performance improvements
* fixing bug in Searchable overwriting `defaultFilter` variable
* adding default name for markers without name
Reviewed By: priteshrnandgaonkar
Differential Revision: D13397936
fbshipit-source-id: ee514dab7c2ac4acdaba86ccd41e0ef69815faeb