Commit Graph

586 Commits

Author SHA1 Message Date
Michel Weststrate
45db64f0d0 Make sure that limited top-level exports are exposed from flipper-plugin
Summary: This prefixes APIs of `flipper-plugin`, that are used by Flipper, but should not be used by plugins directly, with `_`. Also added tests to make sure we are always intentional when extending the exposed APIs

Reviewed By: passy

Differential Revision: D24991700

fbshipit-source-id: ed3700efa188fca7f5a14d5c68250598cf011e42
2020-11-16 13:10:33 -08:00
dependabot[bot]
e1fc9a423d Bump flipper-client-sdk from 0.0.2 to 0.0.3 in /desktop (#1668)
Summary:
Bumps [flipper-client-sdk](https://github.com/facebook/flipper) from 0.0.2 to 0.0.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/facebook/flipper/commits">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=flipper-client-sdk&package-manager=npm_and_yarn&previous-version=0.0.2&new-version=0.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates)

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/1668

Reviewed By: mweststrate

Differential Revision: D24981564

Pulled By: passy

fbshipit-source-id: 55431dd6f5ecf6bbb52324890a7efdb28b10350e
2020-11-16 11:12:23 -08:00
John Knox
797fd0517f Replace ITSR GK with a new one
Summary:
Michel discovered that the ITSR GK has been dialled down completely since the last bug.

Coming to re-enable it I discovered a bug that has been introduced since then, so have fixed that, but we can't just ramp up the original GK because the current version of flipper will crash if ITSR is used.

So instead, I'm leaving the current GK ramped down, and replacing it with a new one, which is safe to ramp up.

This will mean ITSR is only enabled on versions from the next release onwards.

Reviewed By: nikoant

Differential Revision: D24922822

fbshipit-source-id: 8a6990fd5130bd046c24b0da757492b37e4040f2
2020-11-13 01:20:49 -08:00
Michel Weststrate
dcdec2608e Start simulator app if not already started
Summary:
Before this change, launching a simulator would ony show the simulator if the simulator process itself was already running. This makes sure that opening a simulator also works from a closed state

Changelog: Automatically start an iOS simulator to launch a device when none is running yet

Reviewed By: nikoant

Differential Revision: D24919363

fbshipit-source-id: 45039330710cf81aa73222967d667964bb01f42a
2020-11-12 16:32:57 -08:00
Michel Weststrate
c9a278fb0f Use predefined icons for Facebook family apps
Summary:
Ideally, we want to fetch app Icons from the device, but for now, we can at least for Facebook owned apps we can use a hardcoded set of icons, which probably even looks better.

For ` Lite` apps, the colors of the icon and background are reversed, which makes both variations recognizable.

Reviewed By: jknoxville

Differential Revision: D24920161

fbshipit-source-id: 5220093fb3a443ae535faa4c346a2029de9cbbd5
2020-11-12 15:19:43 -08:00
Michel Weststrate
dca419ee24 Prompt for login by default
Summary:
This aligns behaviour with non-sandy behaviour of login: Prompt for login on startup if the user isn't yet signed in.

Logic is based on https://www.internalfb.com/intern/diffusion/FBS/browse/master/xplat/sonar/desktop/app/src/chrome/UserAccount.tsx?commit=1fc905fdd1cd&lines=94

Reviewed By: jknoxville

Differential Revision: D24922397

fbshipit-source-id: b4bab9c109a1054c0e260599d28320699c47dfda
2020-11-12 15:04:41 -08:00
John Knox
9d101263a0 Put PopoverProvider inside scope of Store Provider
Summary:
Many UI components (such as Button) rely on the redux store being present in the context.

So to use these components freely in popovers, the popover provider has to be within the store provider, not outside of it.

This moves it, along with the context menu and tooltip providers for the same reason.

Has the effect of fixing the ITSR dialog, which had a button inside a popover.

Reviewed By: mweststrate

Differential Revision: D24922493

fbshipit-source-id: e15540ac49795875b1cf86d6c66ec0591dc374ef
2020-11-12 10:03:59 -08:00
Michel Weststrate
229f7bd036 Add papercuts support to the support form
Summary: For groups that have a papercuts entry, the support form will now link to them. This will hopefully increase the amount of feedback we get.

Reviewed By: nikoant

Differential Revision: D24921296

fbshipit-source-id: c6d07a10838a7abb1c70e8d61197a7b339f611bc
2020-11-12 07:30:03 -08:00
Michel Weststrate
b66f452271 Keep Navigation plugin alive even when disabled
Summary:
Navigation plugin is a special cause that will remain connected and process messages directly even when disabled, this is to make sure the bookmarks feature keeps working even when the plugin is not enabled.

Changelog: [Sandy][Navigation] on Android, the currently active deeplink of the application will now be shown in the sidebar

Reviewed By: jknoxville

Differential Revision: D24890375

fbshipit-source-id: eb5e4141740e0436396cea5a7aae24337f2e903e
2020-11-12 04:17:29 -08:00
Michel Weststrate
273b895e30 Support auto completion on discovered bookmarks and filling out params
Summary:
This diff adds support for finding appPatterns (not sure how the feature is called) in the device, and auto completing on it.

Also improved the styling of bookmark sections.

This diff also adds support of showing a dialog in which params an be filled out if needed.

The behavior around optional arguments seems buggy, as in, no dialog will show up, but since I didn't want to change the logic around this unilaterally, left it as-is for now.

Updated the dialog to Ant so that the renderReactRoot utility could be used safely

Reviewed By: cekkaewnumchai

Differential Revision: D24889855

fbshipit-source-id: 6af264abec2e9e5b921ef7da6deb1d0021615e9e
2020-11-12 04:17:29 -08:00
Michel Weststrate
5118727cb7 Add bookmarks section to AppInspect
Summary:
This diff adds support for the navigation plugin bookmarks to the appinspect tab.

Support for path discovery, and path params will be added in a next diff.

Features:
* click a bookmark and navigate to it
* sync bookmark state and uri with navigation plugin
* manually enter a path and navigate to it by using <ENTER>

Reviewed By: cekkaewnumchai

Differential Revision: D24620250

fbshipit-source-id: 14b393a5456b4afeef69444d2120c8f01686e602
2020-11-12 04:17:29 -08:00
Michel Weststrate
661bea1d5b Convert Navigation plugin to Sandy
Summary:
Converted the Navigation plugin to Sandy, and updated Locations bookmark accordingly.
This is a prerequisite step of supporting the bookmarkswidgetin the new AppInspect tab.

Updated LocationsButton accordingly, and overal simplified implementation a bit; locationsbutton now reuses the logic of the NavigationPlugin, rather than reimplemting it. This reduces code duplication and also makes sure the state between plugin and location button stays in sync.

Made sure that search providers are derived and cached rather than stored, again simplifying logic

That being said, the navigation plugin is buggy, but all these things failed before this diff as well:
* No events happening when using iOS, despite the plugin being enabled. But these seems to be a long time know issue, looks like it was never implemented
* Not sure if the parameterized bookmarks is working correctly
* screenshots not always happening at the right time (but fixed a race condition where the wrong bookmark might get updated)
* Locations button doesn't show up if the navigation plugin is supported but not enabled (will try to fix in next diff)

Would be great if bnelo12 could do some exploratory testing to verify what ought to be working, but currently isn't.

Reviewed By: cekkaewnumchai

Differential Revision: D24860757

fbshipit-source-id: e4b56072de8c42af2ada0f5bb022cb9f8c04bb47
2020-11-12 04:17:29 -08:00
generatedunixname89002005306973
f04c7a1768 Flipper Release: v0.65.0
Summary: Releasing version 0.65.0

Reviewed By: nikoant

Differential Revision: D24884910

fbshipit-source-id: 6aa59c57c9d372046d71048513db322c03c72b57
2020-11-11 08:17:41 -08:00
Michel Weststrate
9b4e7e873c Make client -> device connection synchronous
Summary:
devices not always being readily available is causes a lot of complication in the api,
figured to resolve devices first before construction clients,
since clients not attached to a device are shown uncategorized anyway, making them practically un-interactable.
For more background info, see following chat.

{F344388883}

This diff will make it possible to only expose a synchronous api in Sandy

n.b. didn't update Navigation plugin, as that is done in a next diff

Reviewed By: jknoxville

Differential Revision: D24858332

fbshipit-source-id: 8339f831fbbc9c219add56a199364fde67adafc7
2020-11-11 07:58:55 -08:00
Michel Weststrate
ce5783f14d Make sure Changelog sheet shows up
Summary: Make sure that changelog is shown when using Sandy

Reviewed By: jknoxville

Differential Revision: D24832099

fbshipit-source-id: 6999dfcb55976104db476834446c13322f4b2402
2020-11-09 09:24:13 -08:00
Michel Weststrate
c02d5341f9 Enable Sandy by default if part of GK
Summary:
Inverted the condition of checking if Sandy is enabled, so by default it is enabled if user is part of the GK.

This will make it more frictionless for people joining the dogfooding group and increases the chances we receive feedback :)

Reviewed By: jknoxville

Differential Revision: D24830075

fbshipit-source-id: d20dacd9e6c2dd2387a94b8a972252f29d0dab0e
2020-11-09 08:24:28 -08:00
Michel Weststrate
670be012b2 Kill Flow support
Summary:
* Removed Flow compilation step
* Removed all `flow` annotations
* Removed all FlowFixMe's
* Removed flow typings for Flipper
* Left flow transpilation (stripping) in babel, in case there is any external user using Flow in his plugin
* Left `eslint-plugin-flowtype` dependencies, as `eslint-config-fbjs` requires it

Reviewed By: passy

Differential Revision: D24755545

fbshipit-source-id: 9c0a7910657fd1cba88294e041bf2bfdf7b565bf
2020-11-09 08:24:28 -08:00
Michel Weststrate
543a0e53ac Temporarily remove bookmarks section
Summary: This removes the mocked bookmarks section (which is being reimplemented in D24620250), so that early adopter don't see a non-working piece of UI

Reviewed By: passy

Differential Revision: D24827181

fbshipit-source-id: 9759f069bdbcc1efe3f1ecb56954ee539bbca1f0
2020-11-09 07:23:29 -08:00
Michel Weststrate
532f151c4c Enable support form for Flipper Support
Reviewed By: passy

Differential Revision: D24826802

fbshipit-source-id: cbf6a20db8a861505e9e2ace81b8a91981bdafda
2020-11-09 07:23:29 -08:00
Michel Weststrate
c9b08695d5 Make sure out-of-contents rendering is supported in Sandy
Summary: For RN Debugger an ugly hack is used that roars its head now again; to make sure that the embedded debugger state isn't lost when switching to a different plugin, the chrome devtools are rendered _outside_ the domNode where they should normally appeared, and made invisible rather than removed when becoming invisible. Since at this moment this is the only place where we apply the trick, figured for now to condone it, rather than making a neater abstraction out of it (or kiling it all together)

Reviewed By: passy

Differential Revision: D24786771

fbshipit-source-id: 726617899bc620fc8b9db677d9413b31d5ad7653
2020-11-09 07:23:29 -08:00
Michel Weststrate
2b0e93a063 Introduce NUX element
Summary:
allow-large-files

This diff introces the `NUX` element that can be wrapped around any other element to give a first-time usage hint.

Hint dismissal is stored by taking a hash of the hint contents, and scoped per plugin.

Users can reset the 'read' status in the settings page

Example usage:

```
<NUX
  title="Use bookmarks to directly navigate to a location in the app."
  placement="right">
  <Input addonAfter={<SettingOutlined />} defaultValue="mysite" />
</NUX>
```

Reviewed By: nikoant

Differential Revision: D24622276

fbshipit-source-id: 0265634f9ab50c32214b74f033f59482cd986f23
2020-11-06 08:23:42 -08:00
Michel Weststrate
b8b9c4296a Fix NPE in DataDescription
Summary: Fixed NPE found during exploratory testing Layout Inspector

Reviewed By: nikoant

Differential Revision: D24783042

fbshipit-source-id: 38d76d677941bcfe8ecfa2e165ed4ea421c32edf
2020-11-06 06:25:14 -08:00
Chaiwat Ekkaewnumchai
c04b26d2bc Fix Empty Array And Object Not Showing up
Summary:
Reported in [the Workplace group](https://fb.workplace.com/groups/flippersupport/permalink/1002324710248187/), the empty array and object in network plugin wasn't shown and left blank. This happened because data component checked for expandability and decided empty object is not expandable. Thus, it uses different path to render components.

This diff fixes that by rendering empty array and object as `[]` and `{}`

Reviewed By: jknoxville

Differential Revision: D24726219

fbshipit-source-id: 9b22e1011c39c363b73f759477f44f08520734a7
2020-11-05 03:23:11 -08:00
dependabot[bot]
82209c872f Bump react-window from 1.8.5 to 1.8.6 in /desktop (#1648)
Summary:
Bumps [react-window](https://github.com/bvaughn/react-window) from 1.8.5 to 1.8.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/bvaughn/react-window/blob/master/CHANGELOG.md">react-window's changelog</a>.</em></p>
<blockquote>
<h3>1.8.6</h3>
<ul>
<li>{emoji:2728} Updated peer dependencies to include React v17.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d80bef25fe"><code>d80bef2</code></a> 1.8.5 -&gt; 1.8.6</li>
<li><a href="c057b19bd0"><code>c057b19</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/bvaughn/react-window/issues/531">https://github.com/facebook/flipper/issues/531</a> from levigunz/master</li>
<li><a href="9c887af9de"><code>9c887af</code></a> Bump for React 17</li>
<li><a href="1f343d5d3c"><code>1f343d5</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/bvaughn/react-window/issues/402">https://github.com/facebook/flipper/issues/402</a> from lylpixin2121/master</li>
<li><a href="f25c5216a2"><code>f25c521</code></a> docs: add readme-zh_CN</li>
<li><a href="8506d4354a"><code>8506d43</code></a> docs: add readme-zh_CN</li>
<li><a href="ffc99e578a"><code>ffc99e5</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/bvaughn/react-window/issues/385">https://github.com/facebook/flipper/issues/385</a> from maclockard/patch-1</li>
<li><a href="921dbb37aa"><code>921dbb3</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/bvaughn/react-window/issues/391">https://github.com/facebook/flipper/issues/391</a> from dkunzman77/better-docs</li>
<li><a href="31ba105deb"><code>31ba105</code></a> Tweaked wording</li>
<li><a href="1cee24bc78"><code>1cee24b</code></a> Update README.md</li>
<li>Additional commits viewable in <a href="https://github.com/bvaughn/react-window/compare/1.8.5...1.8.6">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-window&package-manager=npm_and_yarn&previous-version=1.8.5&new-version=1.8.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates)

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/1648

Reviewed By: passy

Differential Revision: D24702571

Pulled By: cekkaewnumchai

fbshipit-source-id: dfce13c31e82558ec3c7b5d069f4d77f1992c646
2020-11-04 03:15:01 -08:00
dependabot[bot]
9998e6345c Bump promise-retry from 1.1.1 to 2.0.1 in /desktop (#1649)
Summary:
Bumps [promise-retry](https://github.com/IndigoUnited/node-promise-retry) from 1.1.1 to 2.0.1.
<details>
<summary>Commits</summary>
<ul>
<li><a href="7fb0849111"><code>7fb0849</code></a> 2.0.1</li>
<li><a href="923edf9475"><code>923edf9</code></a> fix: update node requirement in package.json (<a href="https://github-redirect.dependabot.com/IndigoUnited/node-promise-retry/issues/36">https://github.com/facebook/flipper/issues/36</a>)</li>
<li><a href="a3dae32eda"><code>a3dae32</code></a> 2.0.0</li>
<li><a href="309ed33dd9"><code>309ed33</code></a> chore: update deps</li>
<li><a href="41b8da6b8d"><code>41b8da6</code></a> chore: update deps (<a href="https://github-redirect.dependabot.com/IndigoUnited/node-promise-retry/issues/35">https://github.com/facebook/flipper/issues/35</a>)</li>
<li><a href="03a36d35d6"><code>03a36d3</code></a> Fix minor grammatical errors (<a href="https://github-redirect.dependabot.com/IndigoUnited/node-promise-retry/issues/34">https://github.com/facebook/flipper/issues/34</a>)</li>
<li><a href="7b3192d7e7"><code>7b3192d</code></a> Update README.md</li>
<li><a href="efdab57aca"><code>efdab57</code></a> Fix david link to dev deps</li>
<li>See full diff in <a href="https://github.com/IndigoUnited/node-promise-retry/compare/1.1.1...v2.0.1">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~achingbrain">achingbrain</a>, a new releaser for promise-retry since your current version.</p>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=promise-retry&package-manager=npm_and_yarn&previous-version=1.1.1&new-version=2.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates)

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/1649

Reviewed By: passy

Differential Revision: D24702559

Pulled By: cekkaewnumchai

fbshipit-source-id: 5bbf8a993c0b1c5f5e8cc114c1a012163c415c6e
2020-11-04 03:12:40 -08:00
Pascal Hartig
9d5ca7de87 Support screencaps/recordings from multiple devices
Summary:
We've been using "booted" as a shortcut to select a device in `xcrun` but that will only refer to the *first* booted simulator. If you have multiple ones, that causes screenshots, videos and logs to always be pulled from the first.

Of course, this isn't documented anywhere, because Apple, but you can instead of `booted` pass in the "UDID" and refer to a specific device in all cases.

Reviewed By: nikoant

Differential Revision: D24627077

fbshipit-source-id: 2a52a8a17776746af4b3f6ca821dcce37bb0f7c2
2020-10-30 05:44:48 -07:00
Michel Weststrate
aef3672235 Make support form and plugin manager accessible
Summary:
This diff makes the plugin manager and support form accessible from Sandy.

Actually converting them is TODO in T78698507 / T78698498

Reviewed By: cekkaewnumchai

Differential Revision: D24620558

fbshipit-source-id: c689d95b638b77ad504915a117e909cf0d88b841
2020-10-30 04:23:43 -07:00
Michel Weststrate
3484f321af Support archived devices
Summary:
Make sure archived are displayed as such in the UI, and normal device functions aren't available:

* taking screenshots
* bookmarks
* metro device plugins
* disabling plugins
* disabled and unavailable plugins
* mobile builds

Also moved starting an emulator to the left rail, since it isn't a function related to the current selected thing

Reviewed By: cekkaewnumchai

Differential Revision: D24620247

fbshipit-source-id: f1f469e2fc5167fd90ccb35d583988873a9bc787
2020-10-30 04:23:43 -07:00
Michel Weststrate
9deed974be Support active sheet mechanism in Sandy
Summary:
This diffs adds support for the activeSheets mechanism in Sandy. It should be removed in the future (see T78696648) since open a dialog and keeping dialog state locally results in much more straight forward code, but supporting this for now makes sure that old flows are still supported.

With this change the plugin selection during a Flipper export for example wouldn't become visible

Reviewed By: cekkaewnumchai

Differential Revision: D24620074

fbshipit-source-id: f0558f5738e86a84a5cd0b9d574a3cfd0a3bf424
2020-10-30 04:23:43 -07:00
Michel Weststrate
ef7d4ea487 Fix shrink issue in search box
Summary: See test plan, if there is little space, 'tags' tended to overflow the search box. After this change the searchbox will grow were needed.

Reviewed By: cekkaewnumchai

Differential Revision: D24563826

fbshipit-source-id: 616173db7c080561ff51a76ab0e8938c58f87820
2020-10-30 04:23:42 -07:00
generatedunixname89002005306973
a3bcf6b043 Flipper Release: v0.64.0
Summary: Releasing version 0.64.0

Reviewed By: priteshrnandgaonkar

Differential Revision: D24590607

fbshipit-source-id: 04671a31028a33cf020acd8b83c219608fe38319
2020-10-28 06:06:33 -07:00
dependabot[bot]
e993b7e9d4 Bump console-feed from 3.1.8 to 3.1.10 in /desktop (#1627)
Summary:
Bumps [console-feed](https://github.com/samdenty99/console-feed) from 3.1.8 to 3.1.10.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/samdenty99/console-feed/commits">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=console-feed&package-manager=npm_and_yarn&previous-version=3.1.8&new-version=3.1.10)](https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates)

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/1627

Reviewed By: cekkaewnumchai

Differential Revision: D24590105

Pulled By: passy

fbshipit-source-id: 490dc7bec5f231fa3c689abfb00aea33bb27fe0e
2020-10-28 06:02:57 -07:00
Pascal Hartig
f36c3656b5 Upgrade to React 17
Summary:
Doing some oncall upgrades.

Changelog: Upgrade internal React version to v17

Reviewed By: mweststrate

Differential Revision: D24506315

fbshipit-source-id: 911e4f657684b4d98ec3ef91bc8a81c43130da5b
2020-10-27 05:56:34 -07:00
Michel Weststrate
b8f68a4026 Support React Native buttons
Summary: Added the Metro buttons to AppInspect

Reviewed By: cekkaewnumchai

Differential Revision: D24544760

fbshipit-source-id: 1eb6face14a7950d654c95b1a8fca31b8efed99b
2020-10-27 05:21:23 -07:00
Michel Weststrate
82604020ab Support screenshot buttons
Summary: Added Sandy styling to `CaptureButtons`, and converted to hooks while at it

Reviewed By: cekkaewnumchai

Differential Revision: D24538953

fbshipit-source-id: cfb9a9b856ada40eb96b77d2e5e6ea780971d0ce
2020-10-27 05:21:23 -07:00
Michel Weststrate
9f3df3406d Bless "Layout" and "theme"
Summary: This blesses the `Layout` and `theme` components and exposes them from `flipper-plugin`, so that they can be used in (public) Sandy plugins. Also marked old abstractions as going to be deprecated.

Reviewed By: cekkaewnumchai

Differential Revision: D24503560

fbshipit-source-id: a8f384667b8f66e3b9f00771a123fe5c9d755eb3
2020-10-27 05:21:23 -07:00
Edward Yerburgh
8a31e984b3 Use QPL-managed QPLCore and PigeonClient (#1612)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1612

* Use the QPL-managed QPLCore and PigeonClient.

**Facebook:**

js-shared/qpl and js-shared/pigeon-client are maintained by QPL in xplat/js-shared. I've updated the Metro config and tsconfig to allow the packages to be imported without breaking the open-source version.

Reviewed By: passy

Differential Revision: D24358369

fbshipit-source-id: 7f13d6c99d8ca6ebcd0e66bf0e5f25069370cce7
2020-10-26 02:29:09 -07:00
Michel Weststrate
5731e3a155 Scrolling improvements
Summary:
Split container had a convenient property `scrollable`, that automatically applies a Scroll container to the main content.

But I noticed it leads to bad design choices because it is so convenient. So sometimes scrolling would be unnecessarily in two directions because of this.

Or, since the scroll container wraps around the whole content, toolbars would scroll out of view. By forcing scrolling to be put explicitly in the component tree, we encourage plugin developers to think about where they actually want to have that scroll, and in which direction.

Also added options to use the Container padding properties on ScrollContainer, which is great since we can keep the scrollbars outside the padding, and apply it to the content only, to prevent an accidental mistake where people would put a scroll container in a padded container, that would put the scrollbar inside the padding.

Reviewed By: cekkaewnumchai

Differential Revision: D24502546

fbshipit-source-id: 524004a1c5f33a185f9b959251b72875dd623cb3
2020-10-23 06:46:15 -07:00
Michel Weststrate
30f5f0b59a Small design system simplifications
Summary:
So far we distinguished `Layout.Container` from `Layout.Vertical`, but they did almost exactly the same, so figured to unify them, so smaller API ftw :) Normal containers put children vertical, and if you want to use horizontal, use Layout.Horzontal

Also simplified code in Layout file a little bit.

Fixed issue I split container where the main container didn't go "underneath" the fixed container

Reviewed By: cekkaewnumchai

Differential Revision: D24502547

fbshipit-source-id: 517db3692749e670cda8f0cd7cb1c807df818b4d
2020-10-23 06:46:15 -07:00
Michel Weststrate
26e040ea73 Layout fix in searchable actions
Summary: Tiny fix were horizontally aligned items were accidentally allowed to shrink by default.

Reviewed By: cekkaewnumchai

Differential Revision: D24501856

fbshipit-source-id: 30ad3987a744b14b41993ed27db9edadd420f0df
2020-10-23 06:46:15 -07:00
Chaiwat Ekkaewnumchai
467a6b16fb Add Notification View
Summary:
This stack tries to migrate notification system to Sandy.

This diff contains on the view; other functionalities aren't working. Also, some of the views will be implemented as functionalities are added.

Reviewed By: mweststrate

Differential Revision: D24390370

fbshipit-source-id: 8e11a01d9462934ff1fadf411e7e8f57ca7ef078
2020-10-23 04:35:14 -07:00
Timur Valiev
957ae9d7ca small Searchable table refactoring
Summary: export filterRowsFact so we can reuse it. it's needed in diffs above

Reviewed By: SimoneCasagranda

Differential Revision: D24445819

fbshipit-source-id: 1c9ca363419c7e34f53e65b77764a49235e259e2
2020-10-22 13:16:47 -07:00
Anton Nikolaev
2d9cf5a905 Option to load only specific plugins in dev mode
Summary: Currently we load all the plugins even if they are not required in dev mode, e.g. when you are developing a specific plugin. This diff adds an env var and command-line option to specify exact list of plugins to load. This makes dev mode startup faster and consume less memory.

Reviewed By: passy

Differential Revision: D24394146

fbshipit-source-id: 42a78c1ffb2632e657c2411e34e9c80fff18df3a
2020-10-22 11:35:53 -07:00
Michel Weststrate
966d748ace Some fixes in rendering legacy plugins
Summary:
Some exploratory testing on all iOS and Android plugins, to see how they behave inside Sandy, and fixed some layout glitches (some were also present without Sandy)

General fixes:
* Introduced some niceties like searchbox resizing properly, and toolbars wrapping automatically in Sandy, rather than buttons becoming invisible
* Containers don't grow anymore by default, but take size of contents
* ScrollContainer child is now a Layout.Vertical. Layout.Vertical should be used as default container everywhere (e.g. Tabs, Panels) in the future
* Fixed layout issue if a split container had only 1 visible child
* DetailsSidebar now scrolls vertically by default
* Details sidebar would sometimes render content in-place rather than in the reserved area
* AppSelector dropdown and Plugin list will now properly ellipse (...) if there is not enough space

Plugin fixes:
* Long database / table names in Database plugin would break layout

Also fixes https://github.com/facebook/flipper/issues/1611

Reviewed By: passy

Differential Revision: D24454188

fbshipit-source-id: c60c867270900a1d4f28587d47067c6ec1072ede
2020-10-22 09:41:11 -07:00
Michel Weststrate
4f7294c96d Add unit tests for selection changes and plugin list computation
Summary: Tests to verify the more complex selection logic resulting from the Metro device exception. Also verifies the logic that computes the available plugins

Reviewed By: nikoant

Differential Revision: D24445555

fbshipit-source-id: 70110c4470e6aa1356e814aa40744b65c21cad89
2020-10-22 09:41:11 -07:00
Michel Weststrate
99dfeacdf8 useMemo -> useMemoize
Summary:
I love useMemo, and the memoized functions are in principle easy to testable since deps are known

But in practice they aren't as they close over their deps, preventing hoisting. So I now use a small `useMemoize` utility that encourages me to write them in a testable manner.

Applied this to the PluginList, and it makes it imho cleaner to read. Also, testing is now much easier as demonstrated in the next diff.

Reviewed By: nikoant

Differential Revision: D24445556

fbshipit-source-id: e156dbd4b8623eb1b90650e174b69a0ec868d2da
2020-10-22 09:41:11 -07:00
Michel Weststrate
c55be74426 Be able to select Metro plugins
Summary:
This adds the ability in AppInspect to work with Metro and plugins.

Metro remains a weird and hardcoded edge case, as we show it as part of another device. So a few things to notice:
- Metro does not have it's own entry in the device/app dropdown
- When selecting a metro plugin, the surrounding context (selected main device / app) remains, but you will notice that the device dropdown switches to 'React Native'. This is intentional to reflect that we are talking to React Native in general, and not necessarily to the device / app shown in the context.

Reviewed By: nikoant

Differential Revision: D24422267

fbshipit-source-id: 239aa71b5c01e19bdda53a930ad9fa8af13b8d4a
2020-10-22 09:41:11 -07:00
Michel Weststrate
8a7323b9f8 Render plugin list
Summary:
This diff adds the rough navigation to open pugins, there are some rough egdes still, and tests will be added later, but wanted to keep diffs small, and land the feature early to get some initial dogfooding going on early.

Note that we now also show all disabled plugins to help people with trouble shooting.

Reviewed By: nikoant

Differential Revision: D24418411

fbshipit-source-id: 1402d69efe2e52bc2c81336cfb4f4c9928ea4d80
2020-10-22 09:41:11 -07:00
Evgen Filatov
2c6c7fb46c (flux stores) 5. make "logs" tab look nicer
Summary:
This diff implement few things:
* Logs tab for plugin
* Sending new state for each action is expensive, that is why flipper side receive only diffs and uses `getStateFromLogItem` to calculate new state
* fixed `keys` in `DataInspector.tsx` which caused `DataInspector` become unresponsive

{F340648998}

Differential Revision: D23021619

fbshipit-source-id: 17490c25f7b86faf9e574a612996563aac18525e
2020-10-22 01:42:36 -07:00
generatedunixname89002005306973
0f23f409ab Flipper Release: v0.63.0
Summary: Releasing version 0.63.0

Reviewed By: nikoant

Differential Revision: D24423408

fbshipit-source-id: 0bc12c49d8bf77d8dbf9688adb07dc176b210548
2020-10-20 11:13:12 -07:00