Summary:
Migrating tables' row collection to Immutable.js List:
1. Сopy SearchableTable code to SearchableTable_immutable
2. Use ManagedTable_immutable for SearchableTable_immutable
-----
Current implementation of tables forces to copy arrays on new data arrival which causes O(N^2) complexity ->
tables can't handle a lot of new rows in short period of time -> tables freeze and become unresponsive for a few seconds.
Immutable data structures will bring us to O(N) complexity
Reviewed By: jknoxville
Differential Revision: D16416732
fbshipit-source-id: 856ba0407bfdd12bb1b90110e130562a07cc5060
Summary:
Migrating tables' row collection to Immutable.js List:
1. Change native array to Immutable list in ManagedTable_immutable
-----
Current implementation of tables forces to copy arrays on new data arrival which causes O(N^2) complexity ->
tables can't handle a lot of new rows in short period of time -> tables freeze and become unresponsive for a few seconds.
Immutable data structures will bring us to O(N) complexity
Reviewed By: jknoxville
Differential Revision: D16416869
fbshipit-source-id: 6d5690d8f5f70286f31a423e319b2cb22deab8ff
Summary:
This is a new component that allows for chaining of buttons in a button group by placing an icon in between them.
This is how we plan to navigate between views within an Android app.
Reviewed By: danielbuechele
Differential Revision: D16071234
fbshipit-source-id: 404a3a341081b6111667bd5acf27876bec627435
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:
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:
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:
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: 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:
adding documentation for more of our UI components.
Deleted some unused components, which were not working anyways.
Reviewed By: jknoxville
Differential Revision: D12896109
fbshipit-source-id: 959c7864240883869ad67283f80a3c189b94bf00
Summary:
`flipper` does a lot of stuff at import time. I copied the `styled` reexport
to the UI module, so it's possible to just depend on that.
`remote` is another one of those pot holes that can easily ruin your journey
if you aren't careful navigating around it. Added some defensive fallbacks here
which ultimately allows the lint test to run (and pass) without Electron.
Reviewed By: danielbuechele
Differential Revision: D10507655
fbshipit-source-id: 6dad5665ba15b5cb73caa4ea46262cf337173eb8
Summary: Make dylib plugin error message more user friendly by making the URL linkable.
Reviewed By: dshahidehpour
Differential Revision: D10304489
fbshipit-source-id: 3d5c0d8da426e1b5580d431f07b5291dad068ffc
Summary:
My benchmarks have shown react-emotion to be faster than the current implementation of `styled`. For this reason, I am converting all styling to [emotion](https://emotion.sh).
Benchmark results:
{F136839093}
The syntax is very similar between the two libraries. The main difference is that emotion only allows a single function for the whole style attribute, whereas the old implementation had functions for every style-attirbute.
Before:
```
{
color: props => props.color,
fontSize: props => props.size,
}
```
After:
```
props => ({
color: props.color,
fontSize: props.size,
})
```
Reviewed By: jknoxville
Differential Revision: D9479893
fbshipit-source-id: 2c39e4618f7e52ceacb67bbec8ae26114025723f
Summary:
Tables were using a custom virtualization, which wasn't as performant as other solutions out there. In this diff, the table component is reworked for performance.
- removes `Table` component, because it was never used standalone, `ManagedTable` is what all plugins used
- uses `react-window` for `ManagedTable`
- reworks table highlighting and arrow-navigation to work with the new virtualization
- moves actual filtering out of `ManagedTable` into `Searchable` component for a better separation of concerns.
Reviewed By: jknoxville
Differential Revision: D9447721
fbshipit-source-id: 15eb2eb55eed9f49a0cb1ccfb2d748b3672fa898
Summary: Allow user to open the context menu on an element in the ax tree and request accessibility focus to that element. If the element is focusable (and talkback or another accessibility service is running), accessibility focus will change to that element, if not, it will not change anything.
Differential Revision: D9162382
fbshipit-source-id: 5dda9b87a2cc6eba4130e3feee978b5fa38ac9f1
Summary: Added duplicate view tree (will be replaced with accessibility node tree eventually). Can toggle ax mode on and off and interact with each tree individually to view/change properties.
Reviewed By: danielbuechele
Differential Revision: D8717557
fbshipit-source-id: 1109ccafd49b6958ee7a70c2e8851ed8351516ae