Commit Graph

41 Commits

Author SHA1 Message Date
Andrey Goncharov
17ab7a86ef Use getRenderHost from flipper-frontned-core in flipper-ui-core
Summary: See D37139129

Reviewed By: lblasa

Differential Revision: D37236435

fbshipit-source-id: 927e9f741bfedb65165f5d24f0acfb775925cdc7
2022-06-20 12:18:40 -07:00
Andrey Goncharov
fd380a4c1e Use BaseDevice from flipper-frontend-core in flipper-ui-core
Summary: Use BasDevice definition from flipper-frontend-core in flipper-ui-core and remove the redundant definition from flipper-ui-core

Reviewed By: lblasa

Differential Revision: D37234785

fbshipit-source-id: 6e768090a197c1d2c49cb1cd573acea12fb65d24
2022-06-20 12:18:40 -07:00
Andrey Goncharov
ef5fa275a3 Use AbstractClient from flipper-frontend-core in fliper-ui-core
Summary: This stack attempts to start using flipper-frontend-core from flipper-ui-core. Currently, flipper-frontend-core contains lots of copy-pasted code from flipper-ui-core.

Reviewed By: lblasa

Differential Revision: D37139198

fbshipit-source-id: 042db7492c550e10ea72c32fd15001c141bf53f9
2022-06-20 12:18:40 -07:00
Andrey Goncharov
ba9a80545d Support globally installed React DevTools
Summary:
- Support loading globally installed DevTools

Background:
1. Initially, I wanted to use react-devtools-core as before. react-devtools-core standalone contains quite a few imports of node.js APIs. After [a conversation with Brian](https://fb.workplace.com/groups/react.devtools/permalink/3131548550392044), I pivoted to react-devtools-inline
2. Technical design doc of react-devtools-inline integration: https://docs.google.com/document/d/1STUSUhXzrW_KkvqSu7Ge-rxjVFF7oU3_NbwzimkO_Z4
3. We support usage of globally installed devtools. Code of react-devtools-inline is not ready to be used by the browser as is. We need to bundle it and substitute React and ReactDOM imports with the globals.
4. As we can't pre-compile what users install globally, we need to bundle global devtools on demand,
5. I tried re-using our Metro bundling pipeline initially, but gave up after fighting it for 2 days. Included, `rollup` instead.
6. Size of a `tgz` archive with a plugin is 2.1MB

allow-large-files

Reviewed By: mweststrate

Differential Revision: D34968770

fbshipit-source-id: 352299964ccc195b8677dbda47db84ffaf38737b
2022-03-31 04:01:33 -07:00
Pascal Hartig
8372d07ae6 Demote "failed to find device" error
Summary:
This is not actionable for us as it includes changing device identifiers.
In this case it's better to rely on individual user reports if this is about
a particular device/app combo.

Reviewed By: lawrencelomax

Differential Revision: D34749996

fbshipit-source-id: 88c6c8b076b3f7d9808b6a2a9b08854d2d7cb39f
2022-03-09 07:40:39 -08:00
Anton Nikolaev
37ff34390a Enable Marketplace for Flipper (#3491)
Summary:
This is PR on top of: https://github.com/facebook/flipper/pull/3473

It adds an option to Settings to allow distribution of marketplace plugins.

Also includes a simple fetch function to retrieve data from external API/server.

## Changelog

Allow marketplace plugins

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

Test Plan:
1. Enable marketplace
2. Provide custom marketplace server (it will serve the list of internal plugins with downloadURL)
3. Test if can see Available plugins and can download/remove the plugin
4. If new update for the plugin, it should also allow auto update

Reviewed By: antonk52

Differential Revision: D34586339

Pulled By: nikoant

fbshipit-source-id: c887982aa0f0f9abd3b5360f22e8692a2445d345
2022-03-07 02:49:49 -08:00
Andrey Goncharov
5068c8273b Add deprecation notice notification
Summary: Add deprecation notice device icon and notification

Reviewed By: lblasa

Differential Revision: D34582475

fbshipit-source-id: 90fde15caf1925b42f50fbfc77dece88c82833cf
2022-03-02 09:18:15 -08:00
Andrey Goncharov
b4b9c0ab28 Implement receiving messages from add-on on the client
Reviewed By: mweststrate

Differential Revision: D34249101

fbshipit-source-id: 07297b84ed8640e3b41599726ba613b6b4e2b62e
2022-02-28 03:50:34 -08:00
Andrey Goncharov
9113006851 Make Client initialize server add-ons
Reviewed By: mweststrate

Differential Revision: D34044353

fbshipit-source-id: 99bcb1559787b2a904bdd796233666a7a4783ea4
2022-02-28 03:50:34 -08:00
Anton Nikolaev
38c81ca159 Make internal plugin distribution code publicly available (#3473)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/3473

This diff is the first one which addresses https://github.com/facebook/flipper/issues/3320.

In this diff we are making a part of the code used for internal Flipper plugin distribution in Meta also available publicly for re-using in other orgs.

Some explanation on how plugin installation and updates is designed now:
1) We periodically poll for plugins available for download. API for retrieving available plugins list is abstracted and will be different between public and fb versions, however all other logic is re-used.
2) In addition to "Enabled" and "Disabled" plugins in the left panel Flipper shows "Detected in App" list. Plugins in this list are those which are known compatible with the currently selected device/app, but not yet installed.
3) User can install any of "Detected in App" plugins by clicking to "Download and install" button near them in the left panel similarly to enabling plugins in "Disabled" list.
4) If we detect that for some installed plugin we have a newer version available for download - we download it silently and store on disk.
5) If the plugin for which we have new downloaded version is disabled - we update it silently without any notifications by loading new version from the disk and unloading the previous version from cache.
6) If the plugin for which we have new downloaded version is enabled then we avoid updating it automatically (because we need to reset plugin state in such case) and instead show notification on top of the plugin and ask user to reload it to apply new version. On reloading we reset the plugin state.
7) On Flipper startup we always update all plugins to their latest versions available on the disk.

Reviewed By: aigoncharov

Differential Revision: D34380308

fbshipit-source-id: a94d724e42aa5ef78445af266fcd4c424226a703
2022-02-22 05:23:05 -08:00
Lorenzo Blasa
77ab722b52 Better notification messaging
Summary:
'Failed to start connection server' is a bit misleading. 'server-error' is used for both server and client errors.
Changelog: Better notification messaging

Reviewed By: aigoncharov

Differential Revision: D34269045

fbshipit-source-id: f51a28fc0e9ba394b464e5bfca4d0e497f740b1b
2022-02-16 05:22:35 -08:00
Michel Weststrate
b6c884f011 Make sure flipper server initialization errors are propagated properly
Summary:
This diff makes sure that errors are propagated similarly in flipper desktop and browser version, and that they are shown in either case.

Since in the browser version, the UI loads after the error happened, we'll store the error so that any client connecting in the future will read and report it.

Also added a `--failFast` flag to flipper-server, so that the process exits immediately if misconfigured, which is convenient in CI use cases and such

Reviewed By: nikoant

Differential Revision: D33348922

fbshipit-source-id: 0f584104f881141fde38da3f0031748415343ea2
2022-01-04 02:57:25 -08:00
dependabot[bot]
4e11458655 Bump antd from 4.16.8 to 4.18.0 in /desktop (#3222)
Summary:
Bumps [antd](https://github.com/ant-design/ant-design) from 4.16.8 to 4.18.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/ant-design/ant-design/releases">antd's releases</a>.</em></p>
<blockquote>
<h2>4.18.0</h2>
<ul>
<li>🐞 Fix Skeleton missing <code>style</code> prop. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33405">#33405</a></li>
<li>🐞 Fix Descriptions overflow style cause other components being cut. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33392">#33392</a></li>
<li>🆕 Unique Select-like component generic as OptionType to support FieldNames type. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33364">#33364</a></li>
<li>🐞 Fix Slider rail hover color when it is disabled. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33369">#33369</a> <a href="https://github.com/chen-jingjie"><code>@​chen-jingjie</code></a></li>
<li>Table
<ul>
<li>🆕 Table <code>colSpan</code> &amp; <code>rowSpan</code> move to <code>onCell</code> function to optimize performance. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33114">#33114</a></li>
<li>🆕 Table support Table.EXPAND_COLUMN &amp; Table.SELECTION_COLUMN to customize column order. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33026">#33026</a></li>
</ul>
</li>
<li>Form
<ul>
<li>🔥 Form.List nest Form.Item no longer need pass <code>fieldKey</code> anymore. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32689">#32689</a></li>
<li>🆕 Form <code>label</code> can wrap via setting <code>labelWrap</code> now. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33048">#33048</a></li>
</ul>
</li>
<li>🆕 ConfigProvider support Form <code>colon</code>. <a href="https://github.com/ant-design/ant-design/commit/9bc148a">9bc148a</a> <a href="https://github.com/seaSuper"><code>@​seaSuper</code></a></li>
<li>🆕 add <code>prefix</code> to <code>InputNumber</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32600">#32600</a> <a href="https://github.com/Austaras"><code>@​Austaras</code></a></li>
<li>🆕 Modal static function support <code>wrapClassName</code> prop. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32676">#32676</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Popconfirm add <code>showCancel</code> prop. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32620">#32620</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Dropdown.Button supports <code>loading</code> property now. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32467">#32467</a> <a href="https://github.com/kaysonwu"><code>@​kaysonwu</code></a></li>
<li>🆕 Input adds <code>showCount</code> property. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32522">#32522</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Alert supports <code>closeIcon</code> now. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32345">#32345</a> <a href="https://github.com/chen-jingjie"><code>@​chen-jingjie</code></a></li>
<li>Typography
<ul>
<li>🆕 for editable Paragraph, edit can be triggered by clicking the icon or the value itself (or both) with <code>triggerType</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32219">#32219</a> <a href="https://github.com/kachanovskiy"><code>@​kachanovskiy</code></a></li>
<li>🆕 Typography support <code>enterIcon</code> to config confirm icon. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32220">#32220</a> <a href="https://github.com/kachanovskiy"><code>@​kachanovskiy</code></a></li>
</ul>
</li>
<li>🆕 Divider added <code>orientationMargin</code> APIs for customizing <code>margin-left/right</code> of title. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32084">#32084</a> <a href="https://github.com/neotan"><code>@​neotan</code></a></li>
<li>🆕 Avatar add <code>maxPopoverTrigger</code> to support configuration of popover trigger. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32197">#32197</a> <a href="https://github.com/RiteshMakan"><code>@​RiteshMakan</code></a></li>
<li>🆕 Upload supports <code>showUploadList.previewIcon</code> now. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32059">#32059</a> <a href="https://github.com/1040961807"><code>@​1040961807</code></a></li>
<li>🏴󠁥󠁳󠁣󠁴󠁿 Fix Catalan (ca_ES) missing translation key with <code>Form</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33377">#33377</a> <a href="https://github.com/ZzGGitter"><code>@​ZzGGitter</code></a></li>
<li>🇫🇮 Fix Finland (fi_FI) missing translation key with <code>Table</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33372">#33372</a> <a href="https://github.com/ZakarFin"><code>@​ZakarFin</code></a></li>
<li>🇰🇭 Added locales for Khmer (km_KH) translation. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32853">#32853</a> <a href="https://github.com/vireakkeosokvibol"><code>@​vireakkeosokvibol</code></a></li>
<li>TypeScript
<ul>
<li>� Add Upload <code>capture</code> definition. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33370">#33370</a> <a href="https://github.com/MichalPodeszwa"><code>@​MichalPodeszwa</code></a></li>
</ul>
</li>
</ul>
<hr />
<ul>
<li>🐞 修复 Skeleton 不支持 <code>style</code> 的问题。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33405">#33405</a></li>
<li>🐞 修复 Descriptions 内使用其他组件会被切割的问题。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33392">#33392</a></li>
<li>🆕 统一类 Select 组件泛型定义为 OptionType 以支持自定义 FieldNames 匹配。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33364">#33364</a></li>
<li>🐞 修复 Slider 禁用时 <code>hover</code> 色彩的问题。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33369">#33369</a> <a href="https://github.com/chen-jingjie"><code>@​chen-jingjie</code></a></li>
<li>Table
<ul>
<li>🆕 Table <code>colSpan</code> 与 <code>rowSpan</code> 迁移至 <code>onCell</code> 方法中,以优化渲染性能。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33114">#33114</a></li>
<li>🆕 Table 支持 Table.EXPAND_COLUMN 和 Table.SELECTION_COLUMN 以实现自定义列排序。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33026">#33026</a></li>
</ul>
</li>
<li>Form
<ul>
<li>🔥 Form.List 嵌套使用 Form.Item 时不再需要手工指定 <code>fieldKey</code>。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32689">#32689</a></li>
<li>🆕 Form 现在支持通过 <code>labelWrap</code> 开启标签可换行。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33048">#33048</a></li>
</ul>
</li>
<li>🆕 ConfigProvider 支持 Form 的 colon 配置。<a href="https://github.com/ant-design/ant-design/commit/9bc148a">9bc148a</a> <a href="https://github.com/seaSuper"><code>@​seaSuper</code></a></li>
<li>🆕 <code>InputNumber</code> 增加 <code>prefix</code> 属性支持。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32600">#32600</a> <a href="https://github.com/Austaras"><code>@​Austaras</code></a></li>
<li>🆕 Modal 静态方法支持 <code>wrapClassName</code> 属性。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32676">#32676</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Popconfirm 新增是否显示取消按钮。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32620">#32620</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Dropdown.Button 新增 <code>loading</code> 属性。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32467">#32467</a> <a href="https://github.com/kaysonwu"><code>@​kaysonwu</code></a></li>
<li>🆕 Input 新增 <code>showCount</code> 属性。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32522">#32522</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Alert 支持 <code>closeIcon</code> 自定义关闭图标。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32345">#32345</a> <a href="https://github.com/chen-jingjie"><code>@​chen-jingjie</code></a></li>
<li>Typography
<ul>
<li>🆕 对于可编辑段落,可以通过配置 <code>triggerType</code> 配置触发编辑状态。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32219">#32219</a> <a href="https://github.com/kachanovskiy"><code>@​kachanovskiy</code></a></li>
<li>🆕 Typography 支持 <code>enterIcon</code> 以设置编辑确认图标。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32220">#32220</a> <a href="https://github.com/kachanovskiy"><code>@​kachanovskiy</code></a></li>
</ul>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/ant-design/ant-design/blob/master/CHANGELOG.en-US.md">antd's changelog</a>.</em></p>
<blockquote>
<h2>4.18.0</h2>
<p><code>2021-12-27</code></p>
<ul>
<li>🐞 Fix Skeleton missing <code>style</code> prop. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33405">#33405</a></li>
<li>🐞 Fix Descriptions overflow style cause other components being cut. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33392">#33392</a></li>
<li>🆕 Unique Select-like component generic as OptionType to support FieldNames type. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33364">#33364</a></li>
<li>🐞 Fix Slider rail hover color when it is disabled. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33369">#33369</a> <a href="https://github.com/chen-jingjie"><code>@​chen-jingjie</code></a></li>
<li>Table
<ul>
<li>🆕 Table <code>colSpan</code> &amp; <code>rowSpan</code> move to <code>onCell</code> function to optimize performance. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33114">#33114</a></li>
<li>🆕 Table support Table.EXPAND_COLUMN &amp; Table.SELECTION_COLUMN to customize column order. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33026">#33026</a></li>
</ul>
</li>
<li>Form
<ul>
<li>🔥 Form.List nest Form.Item no longer need pass <code>fieldKey</code> anymore. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32689">#32689</a></li>
<li>🆕 Form <code>label</code> can wrap via setting <code>labelWrap</code> now. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33048">#33048</a></li>
</ul>
</li>
<li>🆕 ConfigProvider support Form <code>colon</code>. <a href="https://github.com/ant-design/ant-design/commit/9bc148a">9bc148a</a> <a href="https://github.com/seaSuper"><code>@​seaSuper</code></a></li>
<li>🆕 add <code>prefix</code> to <code>InputNumber</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32600">#32600</a> <a href="https://github.com/Austaras"><code>@​Austaras</code></a></li>
<li>🆕 Modal static function support <code>wrapClassName</code> prop. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32676">#32676</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Popconfirm add <code>showCancel</code> prop. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32620">#32620</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Dropdown.Button supports <code>loading</code> property now. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32467">#32467</a> <a href="https://github.com/kaysonwu"><code>@​kaysonwu</code></a></li>
<li>🆕 Input adds <code>showCount</code> property. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32522">#32522</a> <a href="https://github.com/cwjTerrace"><code>@​cwjTerrace</code></a></li>
<li>🆕 Alert supports <code>closeIcon</code> now. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32345">#32345</a> <a href="https://github.com/chen-jingjie"><code>@​chen-jingjie</code></a></li>
<li>Typography
<ul>
<li>🆕 for editable Paragraph, edit can be triggered by clicking the icon or the value itself (or both) with <code>triggerType</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32219">#32219</a> <a href="https://github.com/kachanovskiy"><code>@​kachanovskiy</code></a></li>
<li>🆕 Typography support <code>enterIcon</code> to config confirm icon. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32220">#32220</a> <a href="https://github.com/kachanovskiy"><code>@​kachanovskiy</code></a></li>
</ul>
</li>
<li>🆕 Divider added <code>orientationMargin</code> APIs for customizing <code>margin-left/right</code> of title. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32084">#32084</a> <a href="https://github.com/neotan"><code>@​neotan</code></a></li>
<li>🆕 Avatar add <code>maxPopoverTrigger</code> to support configuration of popover trigger. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32197">#32197</a> <a href="https://github.com/RiteshMakan"><code>@​RiteshMakan</code></a></li>
<li>🆕 Upload supports <code>showUploadList.previewIcon</code> now. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32059">#32059</a> <a href="https://github.com/1040961807"><code>@​1040961807</code></a></li>
<li>🏴󠁥󠁳󠁣󠁴󠁿 Fix Catalan (ca_ES) missing translation key with <code>Form</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33377">#33377</a> <a href="https://github.com/ZzGGitter"><code>@​ZzGGitter</code></a></li>
<li>🇫🇮 Fix Finland (fi_FI) missing translation key with <code>Table</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33372">#33372</a> <a href="https://github.com/ZakarFin"><code>@​ZakarFin</code></a></li>
<li>🇰🇭 Added locales for Khmer (km_KH) translation. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32853">#32853</a> <a href="https://github.com/vireakkeosokvibol"><code>@​vireakkeosokvibol</code></a></li>
<li>TypeScript
<ul>
<li>� Add Upload <code>capture</code> definition. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33370">#33370</a> <a href="https://github.com/MichalPodeszwa"><code>@​MichalPodeszwa</code></a></li>
</ul>
</li>
</ul>
<h2>4.17.4</h2>
<p><code>2021-12-19</code></p>
<ul>
<li>🐞 Fix a bug that Form.Item name is &quot;parentNode&quot; casue endless loop and memory leak. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31846">#31846</a> <a href="https://github.com/DaoxingHuang"><code>@​DaoxingHuang</code></a></li>
<li>🐞 Revert <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32448">#32448</a> to fix emoji input at Input.TextArea. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33312">#33312</a></li>
</ul>
<h2>4.17.3</h2>
<p><code>2021-12-08</code></p>
<ul>
<li>🐞 Fix Drawer broken style caused by title width. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33205">#33205</a></li>
<li>🐞 Fix Badge flash style when switch from <code>display:none</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33083">#33083</a> <a href="https://github.com/songlinn"><code>@​songlinn</code></a></li>
<li>💄 Change Anchor className form <code>.fixed</code> to <code>.ant-anchor-fixed</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33085">#33085</a> <a href="https://github.com/tangjinzhou"><code>@​tangjinzhou</code></a></li>
<li>💄 Fix Button loading style missing in Firefox. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/33199">#33199</a></li>
<li>Select
<ul>
<li>🐞 Fix Select width became small when searching. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/32988">#32988</a></li>
</ul>
</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="41ac1f0c1a"><code>41ac1f0</code></a> chore: 4.18.0 changelog (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/33424">#33424</a>)</li>
<li><a href="24458eb54e"><code>24458eb</code></a> chore: auto merge branchs (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/33423">#33423</a>)</li>
<li><a href="b3cc1e5276"><code>b3cc1e5</code></a> chore: auto merge branchs (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/33422">#33422</a>)</li>
<li><a href="7ae451729f"><code>7ae4517</code></a> test: update snapshot</li>
<li><a href="6ed4d855b1"><code>6ed4d85</code></a> Merge remote-tracking branch 'origin/master' into feature-merge-master</li>
<li><a href="73ac1b1aaa"><code>73ac1b1</code></a> docs: Update practical-projects.zh-CN.md (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/33419">#33419</a>)</li>
<li><a href="7f09f0a604"><code>7f09f0a</code></a> chore(deps): update dependency scrollama to v3 (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/33418">#33418</a>)</li>
<li><a href="9c086c5328"><code>9c086c5</code></a> fix: Skeleton missing style (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/33405">#33405</a>)</li>
<li><a href="f1e0c9c1d2"><code>f1e0c9c</code></a> chore: Internal Menu interface for ProLayout usage (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/33399">#33399</a>)</li>
<li><a href="0edf04253e"><code>0edf042</code></a> fix: Descriptions default overflow value (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/33392">#33392</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/ant-design/ant-design/compare/4.16.8...4.18.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=antd&package-manager=npm_and_yarn&previous-version=4.16.8&new-version=4.18.0)](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/3222

Reviewed By: timur-valiev

Differential Revision: D33348265

Pulled By: nikoant

fbshipit-source-id: e219049791c8341b4795fc8b742edaa61ee7559d
2022-01-01 20:28:45 -08:00
Andres Suarez
79023ee190 Update copyright headers from Facebook to Meta
Reviewed By: bhamodi

Differential Revision: D33331422

fbshipit-source-id: 016e8dcc0c0c7f1fc353a348b54fda0d5e2ddc01
2021-12-27 14:31:45 -08:00
Michel Weststrate
e46fcba0b2 Make sure that test stuff doesn't end up in bundles
Summary: When bundling a production bundle of flipper-ui / flipper-server, noticed that a lot of irrelevant stuff ends up. Like: `jest`, `metro`, `testing-library`. The whole jungle basically. Will add safety checks in the next diffs that this no longer happens

Reviewed By: passy

Differential Revision: D33186531

fbshipit-source-id: 1e2034153c8c4a3fac02cd9ce27d99224223df7a
2021-12-17 14:12:50 -08:00
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
Michel Weststrate
78413c1ecf Register shortcuts on window instead of globally
Summary:
Changelog: Register shortcuts only for Flipper application instead of globally. Fixes https://github.com/facebook/flipper/issues/3090

As reported, during decapitation we accidentally started registering shortcuts globally, rather per app as it used to be in the menu's. This diff fixes that and also makes sure shortcuts are supported in the browser version of flipper

Reviewed By: lawrencelomax

Differential Revision: D33158445

fbshipit-source-id: 8371e5b96e772152eeb93ba990e1f5edb9e67085
2021-12-16 14:51:08 -08:00
Michel Weststrate
5ce5d897c8 Make loading of bundled plugins working and robust
Summary:
Bundled plugins so far didn't load because the defaultPlugins was not generated yet. Fixed follow up errors that resulted from node modules not being available in the browser, and made the process more robust so that one plugin that fails to initialise doesn't kill all bundled plugins from being loaded.

Cleaned up the server scripts, and reused the BUILTINS list that is already maintained in the babel transformer.

Report errors during the build process if modules are referred that are stubbed out (later on we could maybe error on that)

Reviewed By: aigoncharov

Differential Revision: D33020243

fbshipit-source-id: 3ce13b0049664b5fb19c1f45f0b33c1d7fdbea4c
2021-12-13 05:48:17 -08:00
Michel Weststrate
9e09c0d5f7 Stop exposing adbkit and crc32 as globals
Summary: Since no plugin directly uses adbkit or crc32 anymore, we removed them from the globals. They wouldn't work in the browser anyway

Reviewed By: aigoncharov

Differential Revision: D33019084

fbshipit-source-id: 66ab0756399fdb401c63f5e8271bdd62cb79ab4a
2021-12-13 05:48:17 -08:00
Michel Weststrate
ac9080abac Remove 'process' usage
Summary: Removed process, adbkit and electron usages that were still remaining. Verified changes by disabling the built-in module stubbing (will be cleaned up further later in this stack).

Reviewed By: aigoncharov

Differential Revision: D33019083

fbshipit-source-id: 8bfce31f4b5ed349cb4fd86d34c9b41b9b8b8360
2021-12-13 05:48:17 -08:00
Michel Weststrate
accef856fc Remove remaining Node imports from core
Summary:
Removed remaining path / fs imports from Flipper core.

`expand-tide` needed replacement too, but noticed that it never actually rewrites paths since all use cases were already using absolute paths, so removed it instead.

Reviewed By: aigoncharov

Differential Revision: D33017654

fbshipit-source-id: e12f66ef68b5f9e4279411c94445a2fb87249e9a
2021-12-13 05:48:17 -08:00
Michel Weststrate
0510786dec Fixed relilability issues in running health checks
Summary: Run doctor checks remained pending when the socket disonnected during a check. This

Reviewed By: aigoncharov

Differential Revision: D32984539

fbshipit-source-id: 277005e78803afaaa220cc5ca7fdc9cca6254453
2021-12-13 05:48:16 -08:00
Michel Weststrate
fa67c21def Fix bug where client plugins weren't always started
Summary:
Changelog: Fixed issue where occasionally a plugin wouldn't open after starting Flipper

This fixes a long standing issue where rarely Flipper wouldn't show the selected plugin. This turned out to be a raise condition, that was easy to reproduce in the Flipper browser version; if a client register before all the plugins are loaded, the plugins that are enabled for that client, but not loaded yet, will not instantiate and hence not show up. This diff fixes that

Reviewed By: timur-valiev, aigoncharov

Differential Revision: D32987162

fbshipit-source-id: f3179cd9b6f2e4e79d05be1f2236f63acdf50495
2021-12-10 17:59:33 -08:00
Michel Weststrate
3c6668a8b9 Make sure devices and clients are registered on session startup
Summary: This diff makes sure that when the client starts, it fetches all known devices and clients first, as it might have missed the 'connect' events for those. For Electron this wasn't needed, since the server starts with the UI, but this makes sure that a browser reload or a second connection sees the same devices & apps

Reviewed By: aigoncharov

Differential Revision: D32881589

fbshipit-source-id: 7b1cb3d296044f83dedcf3f3d8d02864690b6666
2021-12-08 04:30:57 -08:00
Michel Weststrate
d0402d7268 Move unloadModule to RenderHost
Summary: Define unload module on RenderHost. Not sure how to do that the browser and not sure how meaning full it is in a browser context.

Reviewed By: nikoant

Differential Revision: D32827050

fbshipit-source-id: 87025c6f5c2b950880712bff8df1c92a044a222e
2021-12-08 04:30:57 -08:00
Michel Weststrate
eab4f0d3d3 Bits & pieces
Summary: Added a command to let a file be opened by the OS, and some other small bits and pieces to make Flipper browser compatible.

Reviewed By: lblasa

Differential Revision: D32721748

fbshipit-source-id: a4ad1c2f662f4651ddf6c20c57e5af1e123914a8
2021-12-08 04:30:56 -08:00
Michel Weststrate
058785a509 Remove remaining process.env
Summary: Per title

Reviewed By: passy

Differential Revision: D32721205

fbshipit-source-id: 8e8a7fcac7d73f32d7fb59f852a8099cfe20e542
2021-12-08 04:30:56 -08:00
Michel Weststrate
2a4fe77404 Extract environment config initialisation to server-core
Summary: This diff makes most stuff that is read from the `os` package, and version info etc available from the `serverConfig` object, so that flipper-ui-core no longer needs the `os` package.

Reviewed By: passy

Differential Revision: D32694848

fbshipit-source-id: 93af1e95d898da9aaf351a6970b5a7652ee835c8
2021-12-08 04:30:56 -08:00
Michel Weststrate
de59bbedd2 Make plugin loading async
Summary: This diff makes plugin loading async, which we'd need in a browser env (either because we'd use `import()` or we need to fetch the source and than eval it), and deals with all the fallout of that

Reviewed By: timur-valiev

Differential Revision: D32669995

fbshipit-source-id: 73babf38a6757c451b8200c3b320409f127b8b5b
2021-12-08 04:30:56 -08:00
Michel Weststrate
64747dc417 move plugin management from ui-core to server-core
Summary:
Follow up of D32665064, this diff moves all plugin management logic from flipper-ui to flipper-server. Things like downloading, installing, querying new plugins.

Loading plugins is handled separately in the next diff.

Reviewed By: nikoant

Differential Revision: D32666537

fbshipit-source-id: 9786b82987f00180bb26200e38735b334dc4d5c3
2021-12-08 04:30:56 -08:00
Michel Weststrate
f9b72ac69e Move RenderHost initialisation to Jest
Summary:
This diff moves RenderHost initialisation to jest, which is thereby treated as just another 'Host' like flipper-ui, the electron app etc. A benefit is that it provides a mocked flipperServer by default that can be used to mock or intercept requests. See LaunchEmulator.spec as example.

Also made the jest setup scripts strongly typed by converting them to TS.

This change allows the test stub configuration, which was OS dependent, out of flipper-ui-core.

Reviewed By: nikoant

Differential Revision: D32668632

fbshipit-source-id: fac0c09812b000fd7d1acb75010c35573087c99f
2021-12-08 04:30:55 -08:00
Michel Weststrate
e7f841b6d2 Move flipper plugin from flipper-lib types to flipper-common
Summary: Moved all types related to plugin descriptions from plugin-lib (which handles downloads and such) to flipper-common. The goal of that is to remove all plugin-lib usage from ui-core to server-core, so that the UI itself doesn't do any file operations anymore related to plugins. That will be done in next diffs, this just moves types but no code.

Reviewed By: nikoant, aigoncharov

Differential Revision: D32665064

fbshipit-source-id: 86d908e7264569b0229b09290a891171876c8e00
2021-12-08 04:30:55 -08:00
Michel Weststrate
2bf8ae2364 Get rid of perf_hooks package in Flipper UI
Summary:
perf_hooks is no longer needed as these APIs are widely available in both browser and electron.

Still needed in unit tests, as they run from Node

Reviewed By: lblasa, aigoncharov

Differential Revision: D32648253

fbshipit-source-id: 5718ea99b57f96f6858311fd0815ad18c476c99e
2021-12-08 04:30:55 -08:00
Michel Weststrate
29a907c733 Remove usage of 'events' package
Summary: 'events' doesn't exist in the browser, so picked a popular package with the same API

Reviewed By: lblasa, aigoncharov

Differential Revision: D32643057

fbshipit-source-id: 91309e53e16f3279048aa976cdb098eaa4a7d7db
2021-12-08 04:30:55 -08:00
Michel Weststrate
bca169df73 Move settings, launcherSettings, GKs to app / flipper-server-core
Summary:
This diff moves a lot of stuff from the client to the server. This diff is fairly large, as a lot of concept closely relate, although some things have split off to the earlier diffs in the stack, or are still to follow (like making intern requests).

This diff primarily moves reading and storing settings and GKs from client to server (both flipper and launcher settings). This means that settings are no longer persisted by Redux (which only exists on client). Most other changes are fallout from that. For now settings are just one big object, although we might need to separate settings that are only make sense in an Electron context. For example launcher settings.

Reviewed By: passy, aigoncharov

Differential Revision: D32498649

fbshipit-source-id: d842faf7a7f03774b621c7656e53a9127afc6192
2021-12-08 04:30:54 -08:00
Michel Weststrate
eed19b3a3d Move FlipperServer initialisation out of flipper-core
Summary: This diff makes sure flipper-ui-core no longer depends on flipper-server-core. Currently server config is still transferred from UI to server, which doesn't really make sense in future scenarios where server might start before client, but will address that separately

Reviewed By: timur-valiev, aigoncharov

Differential Revision: D32462835

fbshipit-source-id: 498a944256ba1aabbf963b896953e64d11e27214
2021-12-08 04:30:54 -08:00
John Knox
b7a29ac0b3 Fix disconnect during init logging
Summary:
When a client disconnects while it's still initialising, we get a critical error.
But this is expected to happen now and again, so adding a specific error for it, and handling it accordingly.
It doesn't change the control flow, just the logging.

Reviewed By: nikoant

Differential Revision: D32794062

fbshipit-source-id: cf27fb9c345aa6369d338838a46e75a6b7afde41
2021-12-03 06:28:19 -08:00
John Knox
2d948fe4f4 Dedupe server error notifications
Summary:
These notifications, when emit, don't get deduped, so if connection timeouts keep happening, like in [this](https://fb.workplace.com/groups/flippersupport/posts/1257144721432850), then you get tons of notifications.

This dedupes them if all the info is the same.

Reviewed By: mweststrate

Differential Revision: D32560073

fbshipit-source-id: beb4d67e2a97841bb91add7847157176dee4a5f4
2021-11-19 06:56:47 -08:00
Michel Weststrate
52fca0859e Fix debug output in unit tests
Summary:
unit tests for deeplinks were logging full device / client objects instances, changed it to log the meta data only (description resp. query).

Since Jest buffers console output, this might even help test stability

Maybe console.debug shouldn't even be printed in Jest? See next diff

Reviewed By: passy

Differential Revision: D32557412

fbshipit-source-id: ff7fbf0cb5d8684d5333a62dac02fd5a59a6e358
2021-11-19 04:01:02 -08:00
John Knox
8af1e816bc Fix client-switching bug
Summary:
When a new client connects, we dispatch the NEW_CLIENT event.

The reducer of this event contains logic for determining if flipper should switch to display the newly connected client or not, and if so, it will dispatch SELECT_CLIENT.

For that reason, flipperServer always dispatching SELECT_CLIENT bypasses the "should switch?" logic and always switches whenever a new client connects. This is disruptive to working and not desired.

Removing this dispatch so that we rely on the NEW_CLIENT reducer to decide.

Bug report: https://fb.workplace.com/groups/flippersupport/posts/1255964631550859

Reviewed By: aigoncharov

Differential Revision: D32532942

fbshipit-source-id: 0ff2693745e37378362254053ae5fd6fc0d11de2
2021-11-19 03:36:51 -08:00
Michel Weststrate
7e50c0466a Move app/src (mostly) to flipper-ui-core/src
Summary:
This diff moves all UI code from app/src to app/flipper-ui-core. That is now slightly too much (e.g. node deps are not removed yet), but from here it should be easier to move things out again, as I don't want this diff to be open for too long to avoid too much merge conflicts.

* But at least flipper-ui-core is Electron free :)
* Killed all cross module imports as well, as they where now even more in the way
* Some unit test needed some changes, most not too big (but emotion hashes got renumbered in the snapshots, feel free to ignore that)
* Found some files that were actually meaningless (tsconfig in plugins, WatchTools files, that start generating compile errors, removed those

Follow up work:
* make flipper-ui-core configurable, and wire up flipper-server-core in Electron instead of here
* remove node deps (aigoncharov)
* figure out correct place to load GKs, plugins, make intern requests etc., and move to the correct module
* clean up deps

Reviewed By: aigoncharov

Differential Revision: D32427722

fbshipit-source-id: 14fe92e1ceb15b9dcf7bece367c8ab92df927a70
2021-11-16 05:29:21 -08:00