Commit Graph

124 Commits

Author SHA1 Message Date
Michel Weststrate
5df34a337c Unshare global types
Summary:
This diff adds `types` fields on the compiler config for every project. This way we can make sure that for example node types and packages are not available in flipper-ui-core. Without an explicit types field, all types would be shared between all packages, and implicitly included into the compilation of everything. For the same reason `types/index.d.ts` has been removed, we want to be intentional on which types are being used in which package.

This diff does most of the work, the next diff will fine tune the globals, and do some further cleanup.

As an alternative solution I first tried a `nohoist: **/node_modules/types/**` and make sure every package list explicitly the types used in package json, which works but is much more error prone, as for example two different react types versions in two packages will cause the most unreadable compiler error due to the types not being shared and not literally the same.

Reviewed By: lawrencelomax

Differential Revision: D33124441

fbshipit-source-id: c2b9d768f845ac28005d8331ef5fa1066c7e4cd7
2021-12-17 07:36:07 -08:00
Andrey Goncharov
92f0ed67f4 Add download file API
Summary: Changelog: Expose "downloadFile" API to Flipper plugins. Allow them to download files form the web to Flipper Server.

Reviewed By: mweststrate

Differential Revision: D32950685

fbshipit-source-id: 7b7f666e165ff7bf209230cdc96078272ede3616
2021-12-10 06:36:12 -08:00
Michel Weststrate
f5f9608098 Remove crypto dependency
Summary:
Remove crypto dep, which was only used by NUX, to hash the elements that has been confirmed.

Sadly trickier than hoped; there is no uniform api in both browser and Node available that can take a sha-256 hash, and the browser APIs are async.

Reviewed By: aigoncharov

Differential Revision: D32721204

fbshipit-source-id: 32625f83bf6c60cedc4fb7096240c2fa0d8434a7
2021-12-08 04:30:56 -08:00
Andrey Goncharov
b82c41eedd Add FileSelector shared component
Summary: Add shared FileSelector component compatibe with the new FlipperLib API

Reviewed By: mweststrate

Differential Revision: D32667100

fbshipit-source-id: dca1e8b7693d134a99617e916c7cfd30432cef78
2021-11-26 08:30:13 -08:00
Daniel Kohli
4d381a094b Update SidebarInteractiveContainer Flex Parameter to Allow for Both Grow and Shrink
Summary:
- Per the title, we're explicitly setting the `flex-basis` to 0 and `flex-grow` and `flex-shrink` to 1.
- We've noticed that the `Sidebar` does not allow shrinking less than half the page when `flex-basis` is 1.
- With this change, we can now resize the `Sidebar` component without issue.
- ** We're taking this approach because the linter has issues with us using `styled` with `Sidebar` **

#nocancel

Differential Revision: D32477863

fbshipit-source-id: 99a50bc047d59add833c1fc113ab159c08767e05
2021-11-19 07:28:11 -08:00
3rdp
c4577bfee2 Fix dark diff background colors (#3065)
Summary:
Bug fix. Currenty Flipper provides incorrect red and green diff colors in Dark theme, this PR fixes the issue. Light theme colors are the same.

Closes https://github.com/facebook/flipper/issues/3011

## Changelog

Color theme fix: make diff background colors be defined in theme LESS files

Pull Request resolved: https://github.com/facebook/flipper/pull/3065

Test Plan:
I used [redux-debugger](https://github.com/jk-gan/flipper-plugin-redux-debugger) plugin to test this as this is what I actually use for debugging Redux in React Native projects with Flipper. Here's a [React Native app](https://github.com/3rdp/flipper-redux-debugger-app) that I put together for testing purposes.

Light theme:
![lime2 light](https://user-images.githubusercontent.com/8898635/141799686-8b94655f-2501-46f9-9b28-d9ba8aeee222.png)

Dark theme:
![lime2](https://user-images.githubusercontent.com/8898635/141799710-fbd008a5-28cc-46f3-abf7-6b90fd85facb.png)

Reviewed By: mweststrate

Differential Revision: D32529276

Pulled By: passy

fbshipit-source-id: 3d11edaf1112444bb106521b6b30db4a4c2b8202
2021-11-18 06:22:17 -08:00
dependabot[bot]
34a09a3096 Bump react-virtual from 2.8.0 to 2.8.2 in /desktop (#2999)
Summary:
Bumps [react-virtual](https://github.com/tannerlinsley/react-virtual) from 2.8.0 to 2.8.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tannerlinsley/react-virtual/releases">react-virtual's releases</a>.</em></p>
<blockquote>
<h2>v2.8.2</h2>
<h2><a href="https://github.com/tannerlinsley/react-virtual/compare/v2.8.1...v2.8.2">2.8.2</a> (2021-09-30)</h2>
<h3>Performance Improvements</h3>
<ul>
<li>reuse already measure items, include key into virtualItem (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/179">https://github.com/facebook/flipper/issues/179</a>) (<a href="8cb22fb46f">8cb22fb</a>)</li>
</ul>
<h2>v2.8.1</h2>
<h2><a href="https://github.com/tannerlinsley/react-virtual/compare/v2.8.0...v2.8.1">2.8.1</a> (2021-08-05)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Page Title (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/177">https://github.com/facebook/flipper/issues/177</a>) (<a href="38726c8a7d">38726c8</a>)</li>
<li>range calculated only on scroll (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/166">https://github.com/facebook/flipper/issues/166</a>) (<a href="adf60b3f31">adf60b3</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8cb22fb46f"><code>8cb22fb</code></a> perf: reuse already measure items, include key into virtualItem (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/179">https://github.com/facebook/flipper/issues/179</a>)</li>
<li><a href="433d9663ce"><code>433d966</code></a> Update CarbonAds.js</li>
<li><a href="121a5dfad7"><code>121a5df</code></a> docs(index): Fix typo in 'dyanmically' (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/176">https://github.com/facebook/flipper/issues/176</a>)</li>
<li><a href="adf60b3f31"><code>adf60b3</code></a> fix: range calculated only on scroll (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/166">https://github.com/facebook/flipper/issues/166</a>)</li>
<li><a href="38726c8a7d"><code>38726c8</code></a> fix: Page Title (<a href="https://github-redirect.dependabot.com/tannerlinsley/react-virtual/issues/177">https://github.com/facebook/flipper/issues/177</a>)</li>
<li><a href="80207b716a"><code>80207b7</code></a> Update index.js</li>
<li><a href="7c2501ee08"><code>7c2501e</code></a> new gh header</li>
<li><a href="36d57d323c"><code>36d57d3</code></a> Update README.md</li>
<li><a href="b72c0291a5"><code>b72c029</code></a> Update overview.md</li>
<li><a href="31ed0e323a"><code>31ed0e3</code></a> docs: fix links</li>
<li>Additional commits viewable in <a href="https://github.com/tannerlinsley/react-virtual/compare/v2.8.0...v2.8.2">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-virtual&package-manager=npm_and_yarn&previous-version=2.8.0&new-version=2.8.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

Pull Request resolved: https://github.com/facebook/flipper/pull/2999

Reviewed By: passy

Differential Revision: D31991577

Pulled By: mweststrate

fbshipit-source-id: b81c96b80478c4ae92aac26e809eabec8dbe90e9
2021-11-11 12:21:58 -08:00
almouro
5b603ab976 Ensure desktop plugin template tests run (#3039)
Summary:
I've decided to migrate [a desktop plugin](https://github.com/bamlab/react-native-performance) to Sandy.
When doing so, I decided to rise to the challenge from the [Flipper docs](https://fbflipper.com/docs/tutorial/js-custom#testing-plugin-logic):  `we are going to pretend that we always write unit tests first` 😅

However, I've realized that when creating a plugin with `npx flipper-pkg init`, running `yarn jest` directly after creation actually fails.

There are 3 issues solved in the different commits:
1. an absolute import seem to not be resolved, since all the other imports were relative in the file, I changed it as well

2. some dependencies are missing.
They used to be included in the `flipper` dependency but when migrating to use `flipper-plugin` instead, they're not present anymore.
I don't think this is an ideal fix, I would believe a dependency like a `flipper-dev-environment` including all of those would be more appropriate. So I'm open to suggestions to fix/remove of course

3. jest.config needs to be fixed to run in jsdom environment and ensure we can test the react component

## Changelog

Fix: ensure desktop plugin template tests run

Pull Request resolved: https://github.com/facebook/flipper/pull/3039

Test Plan:
I've cloned the repo and run:

```
cd flipper/desktop/pkg
yarn
cd ../../..
./flipper/desktop/pkg/bin/run init
```
I run the tests on the newly package created, but it actually still failed because of the first issue (since it still installed `flipper-plugin` from npm`)

However, by adding this patch, it now runs!
```patch
 diff --git a/node_modules/flipper-plugin/lib/ui/data-table/DataTable.js b/node_modules/flipper-plugin/lib/ui/data-table/DataTable.js
index 2e07ff5..ff3181d 100644
 --- a/node_modules/flipper-plugin/lib/ui/data-table/DataTable.js
+++ b/node_modules/flipper-plugin/lib/ui/data-table/DataTable.js
@@ -39,7 +39,7 @@ const useAssertStableRef_1 = require("../../utils/useAssertStableRef");
 const PluginContext_1 = require("../../plugin/PluginContext");
 const lodash_1 = require("lodash");
 const useInUnitTest_1 = require("../../utils/useInUnitTest");
-const createDataSource_1 = require("flipper-plugin/src/state/createDataSource");
+const createDataSource_1 = require("../../state/createDataSource");
 function DataTable(props) {
     var _a, _b;
     const { onRowStyle, onSelect, onCopyRows, onContextMenu } = props;
```

Reviewed By: aigoncharov

Differential Revision: D32358207

Pulled By: mweststrate

fbshipit-source-id: 7761b4150c24dd5379a24c3c1deeb78bf3dda4ee
2021-11-11 12:07:49 -08:00
Michel Weststrate
96cd25fcc1 Fix NPE in Interactive.tsx
Summary: Fixed some incorrect non-null assertions that showed up in monitoring.

Reviewed By: timur-valiev

Differential Revision: D32278433

fbshipit-source-id: afe4913d8aef38c371461b4d0b817b2625153de1
2021-11-09 05:23:07 -08:00
Daniel Kohli
67b4b53c20 Rotate Styling for Vertical Sidebar
Summary: - We are using the `Sidebar` component in our `LogViewer` implementation and we noticed that it needed some styling updates to be used properly as a vertical `Sidebar`.

Reviewed By: mweststrate

Differential Revision: D32083159

fbshipit-source-id: 441f3972ae900b5d5f353d3c7b56117c489850ba
2021-11-03 09:48:38 -07:00
Anton Kastritskiy
4a4cc21d89 Refine DataSource id to use actual key type instead of a wide string type
Summary: Current implementation uses type `string` as a key for indexing items stored in datasource. However, users can provide any key as an index which means that the type of index item can be anything, not only string. This diff introduces a more refined types for the key. It adds another requirement to provide a key property to a generic which is used to infer the index type.

Reviewed By: mweststrate, aigoncharov

Differential Revision: D31895751

fbshipit-source-id: 19ba907bd6f35df87e3fa442db5fc5cec6af174d
2021-10-28 10:44:01 -07:00
Daniel Kohli
fa7e8a6b37 Add max-width Style Prop to Tabs.tsx
Summary:
- We're using the `Tabs` component from `flipper-plugin` and upon adding them, we noticed that our view being displayed within the tabs no longer scrolled and the tab internally was being stretched far off the screen. (D31538124)
- After egp did some digging, he discovered that by adding the `maxWidth` style property to the inner `Layout.Container`, the tab no longer stretched and the scrolling was restored.
- We played around by adding wrapper elements around the contents of our Tab and adding the same style prop, but this did not yield the same result.

***Would Love some input from the Flipper team as to the best way to ensure that this won't break other's plugins.  Thank you!***

Reviewed By: mweststrate

Differential Revision: D31672790

fbshipit-source-id: 99cab1873f359f4c1827e4c94f2527636884c237
2021-10-25 14:13:35 -07:00
Michel Weststrate
91d96774f6 Move files to flipper-common
Summary: Moved Logger, sleep, timeout and server contract types to flipper-common packages.

Reviewed By: passy

Differential Revision: D31475790

fbshipit-source-id: 42d2147698875f9e919ad5250f9953f3bff3ec2d
2021-10-12 16:00:52 -07:00
Michel Weststrate
d56375970d Cleaning up sheet abstraction to use Ant/flipper-plugin dialogs instead
Summary:
This diff cleans up order remaining dialogs, the ones involved in exporting to file or url. Includes some legacy component cleanup boyscouting, but not too much.

This removes a lot of code where state of the wizard was stored globally, and makes it locally instead.

Other code that was removed involves interaction with the old UI, which allowed import / export to be running in the background as well. (which is no longer needed since we optimised the process)

Reviewed By: timur-valiev

Differential Revision: D30192000

fbshipit-source-id: 13be883c5bf217a3d58b610b78516359e9bd0ebc
2021-10-06 09:10:19 -07:00
Michel Weststrate
9e5575cf69 Dialog management cleanup
Summary:
This diff moves the dialogs

* Settings
* Plugin Manager
* Doctor
* Sign in
* Changelog

To use the imperative dialog APIs, rather then organising them through reducers which adds a lot of indirection which isn't really needed but hard to follow.

Reviewed By: passy

Differential Revision: D30192002

fbshipit-source-id: ba38b2e700da3e442653786448fcbf85074981ad
2021-10-06 09:10:19 -07:00
Pascal Hartig
4aa7439fbf Fix Flipper lints #10
Summary:
Grey -> gray. "Cancelled" seems quite common in APIs though, so I disabled that.
A few promise cleanups

Reviewed By: aigoncharov

Differential Revision: D31323610

fbshipit-source-id: c8863d995936f451c24eb408fe5c26677187f089
2021-10-01 08:08:35 -07:00
Michel Weststrate
93201b4e5d Fixed React key warning
Summary: Seems Antd always requires a `key` for Menu Items, even when React doesn't strictly need them.

Reviewed By: timur-valiev

Differential Revision: D30839589

fbshipit-source-id: 9cbef32c8fa083a7e23e486e15c537b4a9259a08
2021-09-09 07:01:04 -07:00
Pascal Hartig
4ba426debd Add button for emu launch selection
Summary: Based on afcoplan's feedback, now we're showing a button for launching the emulators instead of having it inline.

Reviewed By: mweststrate

Differential Revision: D30603659

fbshipit-source-id: edae6c63fd58647b406398c897215910938ae429
2021-09-02 04:27:08 -07:00
Pascal Hartig
d48293c30f Bump dependencies
Summary: Again, bundling a bunch of dependabot tasks I've received.

Reviewed By: mweststrate

Differential Revision: D30667465

fbshipit-source-id: 1acd29a36a642984105bbccfc75e0e3dd9e0f79b
2021-09-02 03:30:25 -07:00
Michel Weststrate
a2644b4a2e handle device / client absence for deeplinks
Summary:
This diff makes the new deeplink format feature complete, make sure VPN connection, plugin installation, client & device selection are now all handled. See the test plan for examples.

Changelog: Flipper now supports a richer protocol for opening deeplinks: https://fbflipper.com/docs/extending/deeplinks#open-plugin

Reviewed By: timur-valiev

Differential Revision: D30423809

fbshipit-source-id: e6cf4bf852b2c64e9a79a33ef0842eb27f68f840
2021-08-20 02:24:03 -07:00
Michel Weststrate
846246ffae Introduce options dialog, cleaned up state managament
Summary: Made it easier to build 'pick' dialogs, and introduced Dialogs.options for a set of radio buttions

Reviewed By: timur-valiev

Differential Revision: D30424708

fbshipit-source-id: 98abd0d64f47c552c81053b4433e5fc524574145
2021-08-20 02:24:03 -07:00
Michel Weststrate
8d7caa9dd4 Introduce Dialog.alert
Summary: Introduce `Dialog.alert` to show users a FYI message, and be able to wait for it to be handled, as utility around several `Modal` utilities.

Reviewed By: jknoxville

Differential Revision: D29875484

fbshipit-source-id: 5d2ea83e486631ac18a81800b467f97dfaac6d34
2021-08-10 13:24:23 -07:00
Michel Weststrate
4b892e7373 Check Flipper version when handling deeplinks
Summary: Check if Flipper is up to date before handling deeplink.

Reviewed By: nikoant

Differential Revision: D29846236

fbshipit-source-id: 011d05958346c3d18c76cf0ae63c3cb087f5933c
2021-08-10 13:24:23 -07:00
Michel Weststrate
62674da74e Introduce Spinner and Dialog.loading
Summary: Per title

Reviewed By: nikoant

Differential Revision: D29790505

fbshipit-source-id: 7c995be59418ffd4c337eb8d1905bd2f2466e5cd
2021-07-22 04:17:45 -07:00
Michel Weststrate
f74029699f Introduce Dialog abstraction
Summary: Introduce convenience abstractions to make it easier to manage dialogs imperatively, by promisyfying common dialog abstractions.

Reviewed By: jknoxville, nikoant

Differential Revision: D29790462

fbshipit-source-id: c092c15cf569ec353b9c1042f25cd67e6c76db01
2021-07-22 04:17:45 -07:00
Michel Weststrate
a78b6124d7 Add option to jest to run tests only locally, or on linux (#2609)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/2609

Make it possible to mark some tests to run on non-CI, or unix only

Reviewed By: nikoant

Differential Revision: D29813506

fbshipit-source-id: 140f8a4eaed5af3282ab9d139b46a52818be0934
2021-07-21 05:43:11 -07:00
Pascal Hartig
8124663c5c Disable filter data test
Summary:
This seems to be time-sensititve and breaks
occassionally on GitHub Actions.

Reviewed By: fabiomassimo

Differential Revision: D29760768

fbshipit-source-id: 12b496257d01d169c52f3a430175846f9a7eb227
2021-07-19 03:54:06 -07:00
Michel Weststrate
32d61886b8 Restore messages sidebar in FlipperMessages
Summary:
Restored sidebar in Flipper messages plugin, by using a Container, as DetailsSidebar is only valid in a PluginContainer context.

Also made tab rendering a bit more condensed while at it.

Reviewed By: timur-valiev

Differential Revision: D29734639

fbshipit-source-id: d3ec6f354e14194035e93daa014985721844416d
2021-07-16 08:01:56 -07:00
Michel Weststrate
d23ccfcd44 Restore copy on text
Summary:
Some folks were missing the copy as text ManagedTable used to have, so introduced both the options to either copy as text (visible columns or custom copy handler) or as JSON

Changelog: It is now possible to both copy as text or as JSON from data tables

Reviewed By: jknoxville

Differential Revision: D29712096

fbshipit-source-id: 27bd2e869a247bd0896ce2774c08651123fd531d
2021-07-16 03:43:36 -07:00
Michel Weststrate
5dbd3bd414 Make getFlipperLib generally available, and use it to decouple opening links from Electron
Summary:
This stack reduces our direct dependency on Electron, for example by exposing our own API to open links.

Also exposing `getFlipperLib` as API from `flipper-plugin`, so that these utility methods are available outside plugin contexts as well.

Reviewed By: timur-valiev

Differential Revision: D29661689

fbshipit-source-id: 0c0523326eeb0d9d8fbe3e03c4609327bb53596b
2021-07-15 01:54:20 -07:00
Michel Weststrate
17e064294c Improve data inspector by showing previews of simple values
Summary:
It was requested a few times to inline simple values in the preview, to be able to quickly inspect vectors etc while inspecting elements

Implements https://github.com/facebook/flipper/issues/2551

Reviewed By: passy

Differential Revision: D29555541

fbshipit-source-id: c2c171cd7d2bf213f0cd05b5b5723918c9536025
2021-07-07 05:07:10 -07:00
Michel Weststrate
328ba9513c Make flipper messages generally available, remove self inspection infra structure
Summary:
Changelog: Flipper message debugging moved from a separate device to the console tab

This makes message debugging easier accessible, and in production (recently requested at GH). Also it clears up a lot of infra that was created just to make flipper a self recursive inspection device + a separate plugin. While fun, a hardcoded setup is just a bit more simpler (no exception rules and better static verification)

Reviewed By: nikoant

Differential Revision: D29487811

fbshipit-source-id: b412adc3ef5bd831001333443b432b6c0f934a5e
2021-07-01 02:00:08 -07:00
Michel Weststrate
6c7b69803f Add support for negative filters
Summary:
Changelog: Add support for negative filters in data tables

As requested per somewhere on workplace but couldn't find it back :)

Reviewed By: nikoant

Differential Revision: D29486096

fbshipit-source-id: 467c8598f6d09afc9a5ed85affb6c51840afe00c
2021-06-30 10:42:32 -07:00
Michel Weststrate
16154e1343 Remove classic plugin infra
Summary:
This removes all code duplication / old plugin infra that isn't needed anymore when all plugin run on the Sandy plugin infra structure.

The diff is quite large, but the minimal one that passes tests and compiles. Existing tests are preserved by wrapping all remaining tests in `wrapSandy` for classic plugins where needed

Reviewed By: passy

Differential Revision: D29394738

fbshipit-source-id: 1315fabd9f048576aed15ed5f1cb6414d5fdbd40
2021-06-30 10:42:32 -07:00
Anton Nikolaev
9fc85730ba Show plugin documentation in Flipper
Reviewed By: passy

Differential Revision: D29392524

fbshipit-source-id: 675de1fc070b1b8b22d0b27721c16dbd6f7076ef
2021-06-29 13:02:05 -07:00
Michel Weststrate
5c8dde0925 Theming colors
Summary:
This diff adds Sandy colors and dark mode support to the `DataInspector` and `LayoutInspector` components, and coverts hardcoded colors to semantic colors. Currently only one set of colors is used since they contrast fine with both dark and light mode, but this could be deviated from now onwards.

Also styled the legacy ManagedTable and Panel, since they are so commonly used (will convert more legacy components in next diffs).

Reviewed By: passy

Differential Revision: D28056698

fbshipit-source-id: 5a85103983f89e82b7f000d309bb9e1e1f07491d
2021-06-29 08:39:34 -07:00
Michel Weststrate
9f27b374f4 Guess content type if no header present
Summary:
Changelog: [Network] The network plugin will now detect utf-8 strings if no content header is present

Fixes https://github.com/facebook/flipper/issues/2406

Reviewed By: nikoant

Differential Revision: D29388968

fbshipit-source-id: 7017828a5f3f28dcf220eeda1d30888f1fc5f07a
2021-06-25 07:23:07 -07:00
Michel Weststrate
2127dea447 Fix initialisation error
Summary: There was an initialisation error possible if the crash reporter tried to start with an initial selection (after coming from a deeplink or the notification pane), which would cause an unending update loop.

Reviewed By: passy

Differential Revision: D29331127

fbshipit-source-id: 14e75e483c232039e6a80aa131fa5ce7c105b670
2021-06-24 01:37:09 -07:00
Michel Weststrate
0aadb862ee Use DataList
Summary:
With new abstraction, `DataList` matches what the plugin trying to render.

Should fix:
https://fb.workplace.com/groups/flippersupport/permalink/1145431339270856/

Changelog: [MobileConfig] Fix issues with scrolling not working and several other improvements

Reviewed By: cekkaewnumchai

Differential Revision: D28314408

fbshipit-source-id: 4d8fbe3d8e868f737750203cd568d94bae8b4108
2021-06-16 07:14:54 -07:00
Michel Weststrate
ad5276782e Fix enum names being truncated
Summary: Changelog: [Layout] Fixed issue where enum dropdowns would truncate their items

Reviewed By: jknoxville

Differential Revision: D29130378

fbshipit-source-id: cd05623d3c7db2ec18bb128f8bee3cd7a78cfe19
2021-06-15 06:28:48 -07:00
Michel Weststrate
7e4df00138 Implement context menu
Summary:
Re-introduced context menu to DataTable, due to popular demand.

Originally it wasn't there to better align with ant design principles, but in an app like Flipper it makes just too much sense to have it

See e.g. https://fb.workplace.com/groups/flippersupport/permalink/1138285579985432/

changelog: Restored context menu in data tables

Reviewed By: passy

Differential Revision: D28996137

fbshipit-source-id: 16ef4c90997c9313efa62da7576fd453a7853761
2021-06-10 12:57:47 -07:00
Michel Weststrate
23c0781127 Minor keyboard navigation around fix
Summary: Fixed minor keyboard navigation annoyance: pressing arrow down on the last entry would remove selection, then jump to first row. Pressing up on first row would deselect then select first again. After this change the first/last item is kept selected in those cases

Reviewed By: passy

Differential Revision: D28958705

fbshipit-source-id: 01dbce3971ed965eae3b74e6706fef96aa86df66
2021-06-08 06:44:51 -07:00
Michel Weststrate
e6495be902 Fix NPE in DataTable
Summary: Fixed linked NPE. Couldn't find a clear reproduction,

Reviewed By: passy

Differential Revision: D28958704

fbshipit-source-id: e09830fbad08bf035c54049451de7f52485cb9dc
2021-06-08 04:43:37 -07:00
Michel Weststrate
bc647972e1 Type improvements
Summary: some type simplifications, that makes it easier to reuse data sources and helps type inference

Reviewed By: passy

Differential Revision: D28413380

fbshipit-source-id: 261a8b981bf18a00edc3075926bd668322e1c37d
2021-06-07 08:09:53 -07:00
Luciano Kenji Sugiura
a00f0ce13a WAIQWatch plugin improvements
Summary:
Improving usability of the WAIQWatch plugin.
Also fixing a bug in `MasterDetail`, which didn't use `sidebarSize` as `height` when detail panel is shown at the bottom.
iOS companion diff here: D28756787

Reviewed By: tomw

Differential Revision: D28751609

fbshipit-source-id: ba27ae7ce3596179752c963dba1bf4b994767c2a
2021-06-02 07:38:47 -07:00
Anton Nikolaev
4a583ad086 Make color of time markers more contrast
Summary: Changelog: Increased contrast of timestamps text on marker timelines used in several plugins (QPL, Sections)

Reviewed By: mweststrate

Differential Revision: D28707431

fbshipit-source-id: 8749a95fccf895bddf707c1d830baf5c65578fb9
2021-05-26 08:18:01 -07:00
Anton Nikolaev
853ee24c9b Add info about interactions to error reports
Summary: When reporting errors we could add info about interactions which caused errors. Ability to connect errors and interactions could be quite helpful for analysing and debugging errors and where they are coming from.

Reviewed By: passy, mweststrate

Differential Revision: D28467575

fbshipit-source-id: bef69917a4d6c786d762a2f6eb75a47fd4e46b0f
2021-05-18 08:08:30 -07:00
Anton Nikolaev
8bbf9c46a3 Keep promise rejections unhandled after catching them for logging
Summary: Tracked component catches rejected promises under it to log them. After catching promises become "handled". This might hide potential promise error handling mistakes, so it's better to ensure we keep promises unhandled after catching them for tracking, so they are properly catched by the unhandled promise handler after that. The easiest solution seems to just make new rejected promise and return it instead of the catched one.

Reviewed By: passy

Differential Revision: D28466570

fbshipit-source-id: 26c1e7af3d6e4f7067b95f20e646462d808bb497
2021-05-18 08:08:30 -07:00
Michel Weststrate
0227a7ab8a Fix performance issue
Summary:
Fix performance issue in rendering sidebars

Noticed during debugging that sidebars are continuously re-rendering if the mouse is on top of them, which is caused by the mouseMove handler of resizable containers always updating the state with a fresh object, causing a render (see yellow rectangles in test plan). Short circuited this by checking if the resize state should actually change and bailing out otherwise.

Reviewed By: nikoant

Differential Revision: D28441431

fbshipit-source-id: b3f125f3a392a5cf9b021a6636ba39b5a23d541c
2021-05-17 05:32:39 -07:00
Michel Weststrate
5242a81e94 Fix elements jumping around when making a selection
Summary:
Minor usability improvements, addresses: https://fb.workplace.com/groups/flippersupport/permalink/1133169680497022/.

Handcrafted scroll detection, to make sure elements aren't scroll unnecessarily

Reviewed By: nikoant

Differential Revision: D28438078

fbshipit-source-id: 037f1456a5b6f37a0ea1b9e8318e54b3fad382ec
2021-05-17 03:17:00 -07:00