Commit Graph

2571 Commits

Author SHA1 Message Date
Pascal Hartig
ea7ff7eb8a Remove duplicate lock introduced in D36985721
Summary: Bad practice to have both.

Reviewed By: mweststrate

Differential Revision: D37080670

fbshipit-source-id: b239bb5216fd39ba5dae61f4a5e4388fa96bfdaf
2022-06-13 04:18:15 -07:00
Andrey Goncharov
d987e36c62 Add a single place to initialize Flipper utilitary folders
Summary: We have several folders Flipper uses that sometimes we forget to create before Flipper starts. With this diff we have a single place to initialise the necessary folder structure.

Reviewed By: lblasa

Differential Revision: D37036601

fbshipit-source-id: f945f2bfdfc6be24ba87bd4b13c7fcef3fd74451
2022-06-10 06:38:50 -07:00
Lorenzo Blasa
4b396e1ef3 Use flipper-server if running, otherwise initiate one
Summary:
Provided that GK passes:

- If a flipper-server instance is running, use and connect.

- If not, start flipper-server and connect.

Reviewed By: passy

Differential Revision: D37034960

fbshipit-source-id: ff79e56e80e74415373f84b78305b4fc3e31f7d0
2022-06-09 14:26:17 -07:00
Flipper Bot
ad19b51069 Flipper Release: v0.149.0
Summary: Releasing version 0.149.0

Reviewed By: passy

Differential Revision: D36999205

fbshipit-source-id: 9bf6df029e3d359c166f21bd12f158a2d19b6516
2022-06-09 10:32:12 -07:00
Andrey Goncharov
fec2650afb Remove redundant GK definition from flipper-common
Summary: Developers should use `getRenderHostInstance().GK(...)` instead

Reviewed By: lblasa

Differential Revision: D37034322

fbshipit-source-id: 41017f53a5256449252917a48fcd3a49a9b984c8
2022-06-09 03:34:04 -07:00
Hannah Kim
9b0535b0ff (2/n) Created JS Flipper plugin
Summary: Added JS side of plugin to be displayed in the local Flipper Desktop app

Differential Revision: D36985721

fbshipit-source-id: f9d3cc28e418e95283c572fed4d40dbecfd2f236
2022-06-08 09:25:05 -07:00
Luke De Feo
48bebdc665 Improve typing of getValueAtPath
Summary: Context: https://www.internalfb.com/diff/D36663929 (e07d5c5bfe)?dst_version_fbid=701770760940095&transaction_fbid=714786499947486

Reviewed By: antonk52

Differential Revision: D36782095

fbshipit-source-id: 2eb29d70aa641d386b129bf957320b718e97c298
2022-06-07 04:29:16 -07:00
Luke De Feo
3412ddfb1b Added mouse hovered state when exploring tree
Summary:
Added a mouse hover state to detail inspector. The hover state follows you into and out of the hierarchy.

changelog: Added hover state to detail inspector

Reviewed By: mweststrate

Differential Revision: D36781553

fbshipit-source-id: eafbf119a81779bf07199142d305b06ad6b98c52
2022-06-07 04:29:16 -07:00
Luke De Feo
ae0a89c580 Fix context menu for nested/overlapping elements
Summary:
Previously if you activated context menu in detail inspector it would trigger a context menu for multiple
overlapping children. This behaviour can be observed in live by right clicking a nested property an selecting 'Copy value'.
Most of the time you will copy the entire tree as you are clicking on the parents context menu. This is
the solution recommended by the antd team. https://github.com/ant-design/ant-design/issues/33865 (see the
response fiddle from the maintainer)

changelog: Fixed bug when copying value from context menu in detail sidebar

Reviewed By: mweststrate

Differential Revision: D36781555

fbshipit-source-id: 010a04648eb90eb19a47aa0f1f2b0427c9f5f7cc
2022-06-07 04:29:16 -07:00
Luke De Feo
0200afca51 Added support for plugin supplied context menu items
Reviewed By: passy

Differential Revision: D36781556

fbshipit-source-id: 42124e0324bb2c850099b60410eb20872ebefe3c
2022-06-07 04:29:16 -07:00
Pascal Hartig
bb401fa70b Change server template
Summary:
This is a completely meaningless change *but* it actually has an important
semantic meaning. I recently changed the `+x` bit to be set on the node binary
while bundling which is not always true when packing on Linux.

However, we don't consider permission bits as part of the checksums we build,
which means you will always get the previous version until we update the node version
or this very script because it's part of the same bundle.

So let's just ship this "update".

Reviewed By: mweststrate

Differential Revision: D36954703

fbshipit-source-id: 2d89cb1ee2e7bcce125c3f9efc9d8d39101ac133
2022-06-07 04:15:42 -07:00
Michel Weststrate
f2bf48d4e4 DataTable delighter: Introduce search history
Summary:
Getting the behavior exactly right was tricky, now settled on the following:

* Don't automatically show the search history (the default) but introduce an explicit button to toggle it, as opening it by default was pretty obtrusive in testing
* Items are added to the history when using return / explicitly clicking search, to only get "clean" entries into the history, and not half complete searches. Needing to press enter might be to subtle since datatable will also search without that, but not searching on keypress felt as a regression as well.
* Introduced a menu item for clearing the search history
* Search history is persisted like search filters.

Yay to Antd's AutoComplete, which is really straightforward and cleanly composes with Input.Search.

Changelog: DataTable will now keep a history of search items when hitting <return> to search. Use the history button to bring up the history.

Reviewed By: aigoncharov

Differential Revision: D36736821

fbshipit-source-id: 8d18b85308a39bd1644057371040855d199545c7
2022-06-07 04:04:01 -07:00
Michel Weststrate
36b78131b7 update control filter toggling implementation
Summary:
The `Control` button press, that hides the current search filter, had some specific logic to make sure that the current selection remained visible. Since this is now generically supported, this is no longer needed.

Also updated the `Control` button behavior to also toggle back the search filter if needed, which was never finished in the original implementation.

Changelog: DataTable: pressing the control key can be used to temporarily turn the current search filter on and off.

Reviewed By: aigoncharov

Differential Revision: D36736494

fbshipit-source-id: 2c4949efa0d6935735f61ee43f9268b7e27d1fcf
2022-06-07 04:04:01 -07:00
Michel Weststrate
2037cf0595 preserve selection during filter changes
Summary:
During filter changes, DataTable would loose any selections made, which was posted multiple times as papercut

I didn't implement preserving multi line selections. That should be straightforward, but wasn't sure that'd be desirable or not.

Changelog: DataTable: Data tables will now preserve the current selection and scroll it into view when changing the search filter.

Reviewed By: aigoncharov

Differential Revision: D36736496

fbshipit-source-id: 401ef351c847f58a5d411cf9f352390f6a110b24
2022-06-07 04:04:01 -07:00
Michel Weststrate
fd3f6a0435 Improve selection color of datatable
Summary:
DataTable selected rows are a bit hard to spot when changing search, scrolling etc, so give them a bit more prominent background

Changelog: DataTable: more pronounced background color for selections

Reviewed By: aigoncharov

Differential Revision: D36736495

fbshipit-source-id: 2cab9eb99594ffaaccdd9ebe0d922691adb27bdc
2022-06-07 04:04:01 -07:00
Andrey Goncharov
2f2a101094 Deprecate kaios-big-allocations
Reviewed By: passy

Differential Revision: D36809144

fbshipit-source-id: ea04ddb2ed9d6114baa6586577f3e7ddd8b8bbf4
2022-06-07 04:00:02 -07:00
Andrey Goncharov
2b16916a85 Deprecate kaios-portal
Reviewed By: passy

Differential Revision: D36807506

fbshipit-source-id: 660f334a46dbf7847c90ce6e67f2dc974c1daf90
2022-06-07 04:00:02 -07:00
Lorenzo Blasa
9cc8e4076f flipper-server refactor
Summary:
This changes moves most of the functionality found in flipper-server to flipper-server-core.

flipper-server will mostly be a package that wraps around flipper-server-core. Staying in flipper-server:
- Command line args
- Orchestration to start the necessary servers

Reviewed By: aigoncharov

Differential Revision: D36807087

fbshipit-source-id: f29002c7cc5d08b8c5184fdaaa02ba22562a9f45
2022-06-07 02:42:16 -07:00
Flipper Bot
5971d603bf Flipper Release: v0.148.0
Summary: Releasing version 0.148.0

Reviewed By: jknoxville

Differential Revision: D36805039

fbshipit-source-id: 8d97ba973c57de4558fc6aaa0a546dbac1ee08cd
2022-06-06 06:25:38 -07:00
Lorenzo Blasa
054fbf1298 Aggregate existing logs from the ones generated by flipper-server
Summary:
This change aggregates/redirects flipper-server logs with logs generated by the app.

This is a great approach, why:

As we tail the file, we deserialise the logs, and re-log them using console. This means, that they will be intercepted by the logging infrastructure flipper already has in place which will make these logs go to scribe, error reporting, etc.

Reviewed By: passy

Differential Revision: D36473790

fbshipit-source-id: a3547c5c8733217c61bb2d9b94990626bbf0a492
2022-06-01 04:37:36 -07:00
Lorenzo Blasa
ee64216725 Extract logger and write to file
Summary:
This change extracts logging logic out from startFlipperServer.

Logs will also be written to disk.

Reviewed By: passy

Differential Revision: D36473768

fbshipit-source-id: b1df9df79b4aced0d3ba2e8c243aa8d44cf83703
2022-06-01 02:37:03 -07:00
Andrey Goncharov
92cdb81096 Upgrade electron version
Summary:
CHANGELOG: Upgrade electron to 18.2.0.

In Electron 18.2.0 we no longer have access to `remote`. Instead, we are recommended to implement IPC communications. We re-implement `remote` methods used before as IPC commands. To support type-safe execution of the commands, we create electron IPC clients on both sides: the main process and renderer process. We also move the main menu creation to the main process and track its usage via sending IPC messages to the renderer process where the logging happens.

Reviewed By: mweststrate

Differential Revision: D36593625

fbshipit-source-id: 6dcf531461ef2edceb9cac372a650f84f3370953
2022-05-31 06:52:14 -07:00
Lorenzo Blasa
2fe7e73175 Refactor checks to see if socket is in use
Summary:
These are utility methods that are not specific to startServer.

They will be reused by other components needing to check if something is listening to a port.

Make socket path is also extracted.

Reviewed By: passy

Differential Revision: D36473641

fbshipit-source-id: 73ed67912052896696b59670cb757d22761eeaa1
2022-05-31 03:31:05 -07:00
Andrey Goncharov
ec068e814b Prevent using node APIs in a browser bundle
Reviewed By: antonk52

Differential Revision: D36771197

fbshipit-source-id: aec3edc22d4c4148ae0fe7a0c87c701323112acd
2022-05-31 02:58:21 -07:00
Andrey Goncharov
976399b950 Move Tail to flipper-server-core
Summary: Tail is a server-side logging utility. We cannot add it to flipper-frontend-core as it is going to be included into the browser bundle then and break the build.

Reviewed By: antonk52

Differential Revision: D36771864

fbshipit-source-id: 169cdb88543f1e47f39e8c0976c3a3f45c0439d5
2022-05-31 02:58:21 -07:00
Andrey Goncharov
59761ecd50 Mark deprecated plugins in the UI
Summary:
Changelog: Add a deprecation warning for deprecated plugins.

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

Reviewed By: lblasa, antonk52

Differential Revision: D36760209

fbshipit-source-id: 64cf799644f28aeedf88824c949738a6a766b094
2022-05-30 07:32:12 -07:00
Flipper Bot
04400fd22e Flipper Release: v0.147.1
Summary: Releasing version 0.147.1

Reviewed By: aigoncharov

Differential Revision: D36759784

fbshipit-source-id: 27c04809b8b6efaea96e96f79e4d2079a9162799
2022-05-30 06:18:15 -07:00
Luke De Feo
e07d5c5bfe Added support for dotted key paths in Data table column
Summary:
This adds support for the key of DataTableColumn to be a dotted path into a nested object, e.g foo.bar. Currently the typescript types only allow a top level key to be set, making this feature currently unusuable from plugin code.

While this could be addressed in a future commit the intention of this is to allow the user to add custom fields into their table columns at run time

Note there is a side effect to free text search from this commit. Previously it would search all top keys in the object. Now it will only search in columns that are in the table.

changelog: Searching data table will now only search columns in the table, rather than all top level attributes of the object

Reviewed By: mweststrate

Differential Revision: D36663929

fbshipit-source-id: 3688e9f26aa7e1828f8e9ee69f8e6f86268c8a54
2022-05-30 04:37:25 -07:00
Pascal Hartig
db045a3b21 Send isHeadlessBuild flag in error reporting
Summary:
Andrey's diff already ensures that we send the flag, this also adds it to the info string
which makes it more visible.

Reviewed By: lblasa

Differential Revision: D36699070

fbshipit-source-id: 905eded9612b19ecaa35a841ec240af002e11611
2022-05-30 03:44:28 -07:00
Pascal Hartig
11ff9b51e3 Fix node +x bit in server distribution
Summary: This was lost when I changed from `pkg-fetch` writing it to copying the file.

Reviewed By: mweststrate, aigoncharov

Differential Revision: D36682861

fbshipit-source-id: 23822d4cc75720a83282de949d28029a05a2a7f9
2022-05-30 03:44:28 -07:00
Andrey Goncharov
c2a17873cb Fix node-fetch bundling
Summary:
In electron setup, bundlers usually bundle for browser environments. In browser envs, bundles seem to pick up .mjs files first. .mjs fro node-fetch exports fetch as a default export. This fix allows bundling of npm-api for electron.

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

https://github.com/doowb/npm-api/pull/25/files

Reviewed By: lblasa

Differential Revision: D36758469

fbshipit-source-id: bf6c27ed37cb0baa54382ea563902e6e77a118e9
2022-05-30 03:41:33 -07:00
Andrey Goncharov
4eca8d1088 Add isHeadlessBuild to EnvironmentInfo
Summary: Allows to attribute errors to flipper server or flipper electron

Reviewed By: passy

Differential Revision: D36698504

fbshipit-source-id: 6d07216fd05aa48b7c8cca5b53145916b64526eb
2022-05-27 02:37:53 -07:00
Lorenzo Blasa
49eb026769 Tail
Summary:
Added a new type, Tail. It observes changes made to a file and notifies the subscriber.

It is useful and used to tail flipper-server logs, for example.

Reviewed By: passy

Differential Revision: D36473529

fbshipit-source-id: b0f905f4f8419d9e13386440d2d2cdabd528295b
2022-05-26 09:44:30 -07:00
Michel Weststrate
15e9d105c4 Restore styleguide menu entry, reordered menu
Summary: The styleguide was no longer accessible in Flipper, this diff restores that, and also cleans up the extras menu a bit to by creating a plugin devs only section.

Reviewed By: antonk52

Differential Revision: D36697071

fbshipit-source-id: a2abce40157fffd4952172f379c8063492e2dcc0
2022-05-26 04:26:20 -07:00
Michel Weststrate
9111b66916 Document Container grow / shrink properties
Summary: For some reason, the most important container property grow (and shrink) wasn't in the docs. Added that

Reviewed By: antonk52

Differential Revision: D36697072

fbshipit-source-id: 45dd0351e2a94d31972d57a9f006cd06a0d37c4e
2022-05-26 04:26:20 -07:00
Flipper Bot
19a5a8e9c7 Flipper Release: v0.147.0
Summary: Releasing version 0.147.0

Reviewed By: aigoncharov

Differential Revision: D36658611

fbshipit-source-id: 74137e1c5c1f5be5dc45c28ed74aa016001db070
2022-05-25 09:56:02 -07:00
Lorenzo Blasa
6d2bc5cc9a Refactor some of the types used by FBLogger into Logger
Summary:
^

This change aims to extract some bits and pieces that are not specific to FBLogger and could be used by other Logger implementations.

Reviewed By: passy

Differential Revision: D36473286

fbshipit-source-id: 57f02d132673dbac97384da4dca51bf3e6fb8738
2022-05-24 10:23:42 -07:00
Pascal Hartig
a73f736d92 Launch emulator error message
Summary:
It's not obvious for non-mobile developers how to fix it when there are no emulators available. Adding a quick section in the troubleshooting guide and linking to it.

Changelog: Add link to troubleshooting page when no emulators are available.

Reviewed By: nikoant

Differential Revision: D36599925

fbshipit-source-id: f3a1e79e07209e34b66176102c85e7797292978c
2022-05-24 07:55:40 -07:00
Pascal Hartig
f84f56614d Loading state for emulator launcher
Summary:
Our current loading state holder for the emulator launch dialogue is a "No emulators available" error message which may stay there for up to 5 seconds (in the case of only iOS enabled) before we see devices.

This adds a proper spinner that will show for as long there are pending device queries.

Changelog: Loading state for emulator launch dialogue

Reviewed By: nikoant

Differential Revision: D36598855

fbshipit-source-id: 64099596b48708b48a43f0208696a7dddc15007c
2022-05-24 07:55:40 -07:00
Pascal Hartig
fe29183014 Show custom messages for no SDKs in Launch Emulator dialog
Summary:
Our launch emulator button isn't very helpful when you don't have any SDKs set up as it shows you exactly the same message as if it was loading for a bit longer. We've seen a low, but constant flow of support requests and it's often not easy to debug remotely unless you dig into the state export.

This sets up a new actionable message when you have neither Android nor iOS support enabled and sends you straight to the settings.

Changelog: Show alert in Launch Emulator dialogue if no SDKs are enabled

Reviewed By: mweststrate

Differential Revision: D36596972

fbshipit-source-id: ba72e9aaeb136c1a7e2f360ef9fbbeec6bc76f4d
2022-05-24 07:55:40 -07:00
Anton Nikolaev
015be5ad83 Remove flashing on initializing datatable with filter
Summary:
When filter is applied for the first time we shouldn't debounce to avoid "flashing" on datatable loading when it is first loaded without filter and then filter applied after 250ms.

Changelog:
Fixed flashing on opening datatable-based plugin with a filter.

Reviewed By: timur-valiev

Differential Revision: D36602929

fbshipit-source-id: 8bd33f50c92036f2a5565f636f4f2fbe69d900f2
2022-05-24 04:51:19 -07:00
Anton Nikolaev
8d07b7b644 Quick action for resetting all datatable filters
Summary:
As we persist column filters between sessions - sometimes it's not obvious that they are applied.

This diff adds "Reset filters" action just near message "No records match the current search / filter criteria" to make it obvious that some records are hidden because of filters and let user quickly disable filters to see all items.

The same action also added to datatable's context menu.

Changelog:
Quick action "Reset filters" for datatable-based plugins which is shown in context menu and in empty table when all items filtered out.

Reviewed By: timur-valiev

Differential Revision: D36600535

fbshipit-source-id: 782e7f863f2f52d7f6017685bdebcb1feeb97dbd
2022-05-24 04:51:19 -07:00
Pascal Hartig
b185cabbc2 Fix height of launch emu window
Summary:
A paper cut that hurt me so many times. The launch emulator window gets populated by external commands that finish at interminate points in time and change the size, jiggling the buttons around. That means, you may hover over an android emulator just when the iOS command returns and when you click, you don't hit the Android emu, but some iOS thing.

This just makes the height fixed, so this cannot happen.

Still having some more improvements in mind as this is such a high-trafficked surface.

Chanlog: Fix wiggling of the Launch Emulator dialogue as data comes in

Reviewed By: mweststrate

Differential Revision: D36595001

fbshipit-source-id: e61de55f348ab4d2f6f977552539d2a44d3fd11d
2022-05-23 11:25:33 -07:00
Andrey Goncharov
3141658ac0 Publish flipper-headless-demo
Reviewed By: lblasa

Differential Revision: D36591088

fbshipit-source-id: 0f22b38f558934aa9a8b017cdb87cc67f5a65cef
2022-05-23 08:06:18 -07:00
Andrey Goncharov
125f450f60 Prepare flipper-headless-demo for publishing
Summary: Make headless-demo executable and configure packaging

Reviewed By: passy

Differential Revision: D36590919

fbshipit-source-id: 2c192a712e38888bc8b1f1caa3e55075c24ed14e
2022-05-23 08:06:18 -07:00
Andrey Goncharov
966e53f4a2 Publish flipper-headless-tic-tac-toe
Reviewed By: passy

Differential Revision: D36590750

fbshipit-source-id: c94a74f850723c2165222a9869d563469471f206
2022-05-23 08:06:18 -07:00
Andrey Goncharov
38814f16f9 Prepare headless tic-tac-toe for publishing
Summary: Make headless-tic-tac-toe executable and configure packaging

Reviewed By: lblasa

Differential Revision: D36589422

fbshipit-source-id: d8b141033434265e4f14b9a047d3bccde8fad14b
2022-05-23 08:06:18 -07:00
Andrey Goncharov
abbb267482 Implement headless tic-tac-toe CLI
Summary: Add a CLI app to play tic-tac-toe from the terminal.

Reviewed By: lblasa

Differential Revision: D36548528

fbshipit-source-id: 4cdfb9d8887cb0d4d0100a822f39a4f9fb25aa9b
2022-05-23 08:06:18 -07:00
Andrey Goncharov
0fcfdef465 Add TicTacToe client to headless tic-tac-toe
Summary: TicTacToe client implements basic operation to play Tic Tac Toe

Reviewed By: passy

Differential Revision: D36548545

fbshipit-source-id: cfca5dad4c42efc8272ee1ce7544914451059f14
2022-05-23 08:06:18 -07:00
Andrey Goncharov
9bd66e6188 Add FlipperServerClient to headless tic-tac-toe
Summary: FlipperServerClient is a high-level abstraction to talk to Flipper Server

Reviewed By: passy

Differential Revision: D36545544

fbshipit-source-id: 12845a96dfc39d4268d2f7134d90d5addae48b83
2022-05-23 08:06:18 -07:00