Summary:
1. Add `path` replacement
1. Remove Node's path for all plugins but MobileBuildsPluginContainer (it is probably going to be moved to the server)
Reviewed By: mweststrate
Differential Revision: D32766327
fbshipit-source-id: e636f273842506e752b97cf1b28ce7ac51ce9a12
Summary:
By default docusaurus generates pages and routes for every mdx file it finds under the root dir. So even for the mdx files which are only used as includes and don't even have headers, page is still created, then index and often looks very weird, e.g. title is the same as file name etc. See e.g. this one: https://www.internalfb.com/intern/staticdocs/flipper/docs/fb/portal-troubleshooting/
I went through Flipper docs and renamed all mdx files which are only used as includes to prepend them with underscore. Everything which name is starting with underscore, or which is inside a folder which name is starting with underscore is considered private by docusaurus and skipped.
Reviewed By: passy
Differential Revision: D32722547
fbshipit-source-id: 0524d4dd56960714fbdd2b01ad8383cd16de4948
Summary: Add shared FileSelector component compatibe with the new FlipperLib API
Reviewed By: mweststrate
Differential Revision: D32667100
fbshipit-source-id: dca1e8b7693d134a99617e916c7cfd30432cef78
Summary: Use docusaurus new config option to force trailing slashes for all routes and fail build when extensions are not specified in markdown links to prevent flapping urls that lead to 404 in certain situations.
Reviewed By: jknoxville
Differential Revision: D32533292
fbshipit-source-id: a2d5fdff396b3bb4319893634dd637275ea9f598
Summary:
If you just use this profile `hg sparse switch tools/scm/sparse/xplat/flipper-js`, your total checkout will only be around 9 gigs.
I officially ran out of patience and out of space with the recent addition of `/arvr` which alone is about 40GB and I mostly touch Flipper files.
I also included staticdocs and the Rust third-party libraries so Launcher, plugin-metrics etc. are supported, too.
Reviewed By: mweststrate
Differential Revision: D31243980
fbshipit-source-id: 650d67d89298901610fa20330b7737f0a304569e
Summary: Sandy is idiomatic now, cleaned up old docs to avoid confusion as in https://github.com/facebook/flipper/issues/2611.
Reviewed By: passy
Differential Revision: D30908794
fbshipit-source-id: c4076f1d24b193f71923d19eeed631763bb9dacb
Summary:
This diff has been automatically generated by the inpage editor.
If you want to update this diff, go through the preview link that would be attached to the test plan.
Please ensure you are editing the same page that was used to create this diff.
Reviewed By: passy
Differential Revision: D30898394
fbshipit-source-id: ae581edf6a8a84b6ccf2eb75f849bec8bf290f0b
Summary:
This diff has been automatically generated by the inpage editor.
If you want to update this diff, go through the preview link that would be attached to the test plan.
Please ensure you are editing the same page that was used to create this diff.
Reviewed By: timur-valiev
Differential Revision: D30767036
fbshipit-source-id: 8e828f9f6fb6a5590be428ed325418a62df55c4d
Summary:
This diff has been automatically generated by the inpage editor.
If you want to update this diff, go through the preview link that would be attached to the test plan.
Please ensure you are editing the same page that was used to create this diff.
Reviewed By: nikoant
Differential Revision: D30685168
fbshipit-source-id: cf5fa06d23390e293b8986e513d9b739efd5210b
Summary: Got a question about this. Writing it down here for future reference.
Reviewed By: jknoxville
Differential Revision: D30452788
fbshipit-source-id: b2d4610b8df6027cd6045d37b941779f1f6096d1
Summary:
This diff has been automatically generated by the inpage editor.
If you want to update this diff, go through the preview link that would be attached to the test plan.
Please ensure you are editing the same page that was used to create this diff.
Reviewed By: jknoxville
Differential Revision: D30392627
fbshipit-source-id: b7040f0ccb338d78c92186bf3a910d9ffbeb8019
Summary:
This is the first of many diffs that extracts the connection, device, client detection out of the flipper core, to create a reusable flipper-server library that can be used in e.g. flipper-dump.
To keep diffs a little smaller, the current connection logic is first moved to the `server/` directory, and decoupled manually from the rest of the core, before moving it over to a separate package.
This first diffs moves the `comms/`, `devices/` and certificate utilities to the `server` directory.
Further untangling will follow in next diffs
Reviewed By: timur-valiev
Differential Revision: D30246551
fbshipit-source-id: c84259bfb1239119b3267a51b015e30c3c080866
Summary: Introduce `Dialog.alert` to show users a FYI message, and be able to wait for it to be handled, as utility around several `Modal` utilities.
Reviewed By: jknoxville
Differential Revision: D29875484
fbshipit-source-id: 5d2ea83e486631ac18a81800b467f97dfaac6d34
Summary:
Added docs on how to use deeplink.
Note that not all features are implemented yet.
Reviewed By: fabiomassimo
Differential Revision: D29845044
fbshipit-source-id: 835fba8ce97c2106d160f347675e11d1ed749fba
Summary:
From the changelog:
> Removed the deprecated uploadArchives and installArchives tasks. Use publish and publishToMavenLocal instead.
Made the necessary changes to docs and scripts.
Reviewed By: nikoant
Differential Revision: D29752895
fbshipit-source-id: 6e96c7ea9b26be2acb40b9089cb361837ab10a1b
Summary: Introduce convenience abstractions to make it easier to manage dialogs imperatively, by promisyfying common dialog abstractions.
Reviewed By: jknoxville, nikoant
Differential Revision: D29790462
fbshipit-source-id: c092c15cf569ec353b9c1042f25cd67e6c76db01
Summary:
Some folks were missing the copy as text ManagedTable used to have, so introduced both the options to either copy as text (visible columns or custom copy handler) or as JSON
Changelog: It is now possible to both copy as text or as JSON from data tables
Reviewed By: jknoxville
Differential Revision: D29712096
fbshipit-source-id: 27bd2e869a247bd0896ce2774c08651123fd531d
Summary: While working on D29694696, noticed it is tricky to test against an OnDemand, as the URL format is pretty specific and authentication flow uses an unrelated URL base constant. Introduced `FB_ONDEMAND` env var to make testing easier. If this is a common scenario we could consider making it a setting in the long run.
Reviewed By: timur-valiev
Differential Revision: D29694707
fbshipit-source-id: 747ceb80c95c3bdf0276497c41c9ff5ed9a198f2
Summary:
This stack reduces our direct dependency on Electron, for example by exposing our own API to open links.
Also exposing `getFlipperLib` as API from `flipper-plugin`, so that these utility methods are available outside plugin contexts as well.
Reviewed By: timur-valiev
Differential Revision: D29661689
fbshipit-source-id: 0c0523326eeb0d9d8fbe3e03c4609327bb53596b
Summary:
Per title.
Feature will be used in several plugins in next diffs.
Differential Revision: D29514456
fbshipit-source-id: c12427c2a7c53fa01cd1c7f429be8611be55496d
Summary:
Changelog: [Flipper] Improve serialisation mechanism format & speed
The default serialisation mechanism used by Flipper to serialise plugin states is very flexible, taking care of maps, sets, dates etc. However, it is also really slow, leading to issues like in the related tasks, and work arounds like D17402443 (98bc01618f) to skip the whole process for plugins.
This diff changes the serialisation mechanism to have a better trade off between speed and convenience: For now we will only apply the smart serialisation for objects living at the _root_ of the serialised object, but it won't be applied recursively.
This sounds like a dangerous change, but works well in practice:
* I went through all `persistedState` and `createState` definition (the types), and the idea that complex types like Map and Set only live at the root of the persisted state holds up nicely. That makes sense as well since plugins typically store literally the same data as that they have received over the wire, except that they put it in some maps, sets etc.
* I introduced `assertSerializable` that only runs in dev/test, which will check (recursively, but without all the cloning) to see if a tree is indeed serialisable.
* The fact that by swapping this mechanism rarely existing unit test for exportData needed changes proves that the assumption that only roots are relevant generally upholds (or that plugin authors don't write enough tests ;-)).
* I verified that popular plugins still import / export correctly (actually *more* plugins are exportable now than before, thanks to sandy wrapper introduced earlier)
Reviewed By: jknoxville
Differential Revision: D29327499
fbshipit-source-id: 0ff17d9c5eb68fccfc2937b634cfa8f4f924247d
Summary: per title. As follow up for previous diff
Reviewed By: fabiomassimo
Differential Revision: D28965865
fbshipit-source-id: 440c8143ac44011d895b3f194cabe7c69c51af72
Summary:
converted the network plugin to use DataSource / DataTable. Restructured the storage to contain a single flat normalised object that will be much more efficient for rendering / filtering (as columns currently don't support nested keys yet, and lazy columns are a lot less flexible)
lint errors and further `flipper` package usages will be cleaned up in the next diff to make sure this diff doesn't become too large.
The rest of the plugin is converted in the next diff
Reviewed By: nikoant
Differential Revision: D27938581
fbshipit-source-id: 2e0e2ba75ef13d88304c6566d4519b121daa215b
Summary: Added wash color option to Toolbar, made codeblocks transparent rather than gray & bordered, which looks cleaner
Reviewed By: passy
Differential Revision: D28119720
fbshipit-source-id: 9d1f4db5b39a91d9d117046bd5482726ac2f555d
Summary:
Code blocks are quite common in Flipper, and a bit verbose in Ant, so let's standardize!
Changelog: Standardize CodeBlock component
Reviewed By: passy
Differential Revision: D28117560
fbshipit-source-id: 5a5538a49b59ef40c814d22055fac56e7598cbbb
Summary: Flipper Sandy plugins didn't have an event to hook into that is run _after_ any state snapshot is loaded, which was needed by the graphQL plugin, as they do some post processing when a data snapshot is restored.
Reviewed By: passy
Differential Revision: D28189573
fbshipit-source-id: 4ef992f3fafc32787eab3bc235059f2c41396c80
Summary:
Noticed in reviews during the convertathon there is still quite some boilerplate in things that happen on the boundary of UI and plugin state, such as setting up menu entries and providing common functionality like clear, master/detail layout, etc.
This diff introduces the `MasterDetail` component, which takes a higher level approach by merely needing to provide the state atoms and desired features, and taking care of the wiring.
Applied it to createTablePlugin, to prove that going from `createTablePlugin` to `MasterDetail` will be a much smaller step now.
Verified on the funnel logger plugin
Reviewed By: passy
Differential Revision: D28090362
fbshipit-source-id: 146f8c315fea903901ad4e3e46711642f16cf0e6
Summary: This diff exposes the createTablePlugin from flipper-plugin, so that createTablePlugin based plugins can be converted to Sandy as well
Reviewed By: jknoxville
Differential Revision: D28031227
fbshipit-source-id: 8e9c82da08a83fddab740b46be9917b6a1023117
Summary:
Noticed this while migrating
Created from Diffusion's 'Open in Editor' feature.
Reviewed By: passy
Differential Revision: D28057969
fbshipit-source-id: a8b7c1159c13e666abc3bab54fafae302e18e8dd
Summary: Moved Toolbar to flipper-plugin. No further changes.
Reviewed By: nikoant
Differential Revision: D28027334
fbshipit-source-id: 35de13d87734ae3a8af037166945b1a669106274
Summary:
In many cases, the onExport handler doesn't try to customise the format, but merely fetch some additional information before creating an export.
By allowing the `onExport` handler to also return nothing, and instead merely update existing state, this case will be easier to express now;
Reviewed By: nikoant
Differential Revision: D28026558
fbshipit-source-id: 2b90b3e1ced6a6a5b42938b6f6b74b0eb9ceafc0
Summary: Allow subscribing to Atom state changes
Reviewed By: mweststrate
Differential Revision: D28027692
fbshipit-source-id: 24fd7ea16b013c364bbb1d25b30c48bc698db014
Summary:
Ant'd tabs didn't allow for vertical fill out. Introduced our own tiny wrapper that has `grow` by default.
Also made sure the users last selection is remembered.
Reviewed By: cekkaewnumchai
Differential Revision: D28026345
fbshipit-source-id: 7703bc241cd1427336b7c917bdb5be9f56bba9b9
Summary: Extended migration notes a bit based on feedback of the process so far
Reviewed By: passy
Differential Revision: D28025556
fbshipit-source-id: a3743a76c8a91b16cc3e669494de07baaa8199e6
Summary: The `logger` was currently only available in a React context, and not directly exposed from the `client` API as well. This diff fixes it. The infrastructure including test stubs were present already, so the change is minimal.
Reviewed By: nikoant
Differential Revision: D28010120
fbshipit-source-id: cdd09ed236f5d92d07005d4e5a699360596281e4
Summary: Introduce the DataList component. Not feature complete yet, but core functionality is present so that people can use it during the convertathon. It is used to implement the route list in the network mock dialog
Reviewed By: priteshrnandgaonkar
Differential Revision: D27046716
fbshipit-source-id: a247ce7032b350b31bf55962ca4268e30f43471a
Summary: Expose a Panel api from Sandy, which is quite similar to the old one, except that it uses Antd, and it will remember the users closed / open preference through sessions, a much requested feature.
Reviewed By: nikoant
Differential Revision: D27966607
fbshipit-source-id: 9b18df377215c1e6c5844d0bf972058c8c574cbb