Commit Graph

314 Commits

Author SHA1 Message Date
Pritesh Nandgaonkar
63ac7e7e93 Add selection option for plugin selection component
Summary: This diff refactors the Select plugin sheet to have multi select and single select options. Also renamed the class names and variables, as its business logic is quite generic.

Reviewed By: jknoxville

Differential Revision: D18118359

fbshipit-source-id: 2f1a6840032b81c5fdd9af9f6e69ea2ff611bf13
2019-10-29 13:47:00 -07:00
Pascal Hartig
4c47c766fd Fix installed plugin check
Summary:
D17877108 inadvertently introduced a bug because `fs` and `fs-extra` behave differently and apparently wrapping `exists` which is already async in another `promisify` ends up raising the result as an exception (in this case throwing "true" or "false" as an error instead of yielding it back). Annoyingly, TypeScript's type system doesn't catch this. :/

This fixes the invocation and restores the install/remove functionality.

Reviewed By: jknoxville

Differential Revision: D18199958

fbshipit-source-id: f5835d8912bfe1191a12a318103bfc1fb7d776a3
2019-10-29 06:03:29 -07:00
Michel Weststrate
93fad01ea5 Summary:
Fixed React 'missing key' warning for sidebar

Issue was introduced in D18169459

Reviewed By: jknoxville

Differential Revision: D18171025

fbshipit-source-id: e62c5cab24f198b79febd1e864aefd90dfc2f93e
2019-10-28 08:45:05 -07:00
Michel Weststrate
494ffd26b3 Introduce support for categorizing plugins
Summary:
This PR introduces the possibility to group plugins in categories.
The category can be determined by setting the `category` field in `package.json`.
Categories are sorted alphabetically.
Categories are shown below all uncategorized items.
Within categories, items are sorted as before: by last recently usage.

Design wise, the category name might now look more prominent than the app name, this is to be addressed in a follow up PR.

Reviewed By: jknoxville

Differential Revision: D18169459

fbshipit-source-id: 77deb0f27a0462a0d449944ddc262396160687a2
2019-10-28 06:21:37 -07:00
John Knox
ac4e1ce71b Add some padding between sections in settings
Reviewed By: priteshrnandgaonkar

Differential Revision: D18085724

fbshipit-source-id: d874a21399e86f0079bf1cc86d4b83be6ce5a5d7
2019-10-23 10:40:04 -07:00
John Knox
2cd6be2d0f Move tests to internal repo
Summary:
Some of the tests need to mock behavior of fb-internal dependencies.
These fb deps get swapped out with a babel transform and it's become hard to maintain now that we're mocking them as well.

For simplicity of mocking, moving them out of the public repo, they'll get run on PRs.

Reviewed By: priteshrnandgaonkar

Differential Revision: D18086247

fbshipit-source-id: 001e258e00da67a112cb754e851253e5480e578a
2019-10-23 10:33:45 -07:00
Pascal Hartig
d54b341192 Upgrade which / simplify use
Summary:
It's already a promise. With the next upgrade this otherwise causes
some nasty type errors due to overloading.

Reviewed By: jknoxville

Differential Revision: D18059641

fbshipit-source-id: 93cee95d7bbf767ff6276a0946262bf83587c728
2019-10-23 05:51:55 -07:00
Michel Weststrate
561d560e18 Fix long error titles pushing buttons out of view
Summary: This diff fixes an issue where error messages that are to long pushed the buttons out of view, or the other rows too much down.

Reviewed By: passy

Differential Revision: D18083659

fbshipit-source-id: 54bdae682e6e756c9dad1a8cd247dd694ae0eef2
2019-10-23 05:35:08 -07:00
John Knox
beb797e70d Remove double greyed-out-overlay
Summary:
When a toggled section is frozen, it already has a greyed out overlay over the whole thing.
So there's no need for another one covering the indented section.

Reviewed By: passy

Differential Revision: D18063767

fbshipit-source-id: a4d5992ecf61f036a23f619e9cf64d59150a41d6
2019-10-23 03:51:59 -07:00
John Knox
96d2669bbb Improve FB employee version warning
Summary: Wording was a bit strange.

Reviewed By: passy

Differential Revision: D18063264

fbshipit-source-id: 29fb6f16ba6246f307d956a0309dbd153878a251
2019-10-23 02:33:39 -07:00
Michel Weststrate
3b1429b8b0 Add global error bubble
Summary: Improved the display of error messages. Where previously only one error message could be displayed (quite obtrusively), with this change multiple errors can now be displayed and stack traces and further info can be hidden.

Reviewed By: passy

Differential Revision: D18036569

fbshipit-source-id: 2bc3dfa7a5196f931370a6e6dbf27c55b6cfb2bf
2019-10-22 08:48:16 -07:00
Pascal Hartig
82a253cf28 Add launcher prefetch setting
Summary: Allows users to override the GK status of prefetching. It is implemented as a Tri-State. "Unset" means that the local Flipper config won't take precedent over the GK setting and will leave it unchanged. If a user interacts with the setting, it gets persisted into the config and will from then-on override the GK, meaning that the user has an opt-in mechanism and if we open the GK to more people, they effectively have an opt-out.

Reviewed By: jknoxville

Differential Revision: D18008259

fbshipit-source-id: bdfde9a8b9acf43aa60c84800a7979a29a4e9364
2019-10-22 08:09:43 -07:00
John Knox
836a065e59 Fix settings sheet tests
Summary:
The config fields do some async validity checking and possibly update their own state after render. So their renders need to be wrapped in `act()` so that it includes their updates too.

This fixes those tests, and also adds mocking for valid and invalid file paths.

Reviewed By: passy

Differential Revision: D18036449

fbshipit-source-id: 7eec2992313c77e539da0c375966c7c65c30732d
2019-10-22 07:37:18 -07:00
John Knox
c63f145ffb Add restartFlipper utility
Summary:
Centralizes the restart logic.
And adds ability for it to work in dev mode as well.

Reviewed By: passy

Differential Revision: D18008197

fbshipit-source-id: b76ac7935d5859dfdbb8cf593462f8ac02348181
2019-10-22 04:21:51 -07:00
Pascal Hartig
e0b0b30376 Move snapshot test into fb/ folder
Summary:
Planning to add some FB-only modules to it and is the easiest
way to prevent it from breaking in OSS.

Following commit is also already quite large and this makes it a little more manageable.

Reviewed By: priteshrnandgaonkar

Differential Revision: D18009280

fbshipit-source-id: 73f2488c352547b3e489272960efa4d6e017f294
2019-10-21 06:37:45 -07:00
Pritesh Nandgaonkar
65ff3f8ec9 Show support form option for deeplink users
Summary: This diff shows the support form option for the deeplink users too even if they are not part of GK. As I discovered a bug where the user opened the Flipper app thru deeplink and then the screen showed temporarily till the device connected and then the default plugin was displayed. In this case there is no way to navigate back to the form.

Reviewed By: jknoxville

Differential Revision: D17978648

fbshipit-source-id: 23ae3660e499a959733753b49cc987f2e381bf6b
2019-10-18 07:32:33 -07:00
John Knox
781344f7de Fix jest mocking in tests (#592)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/592

Finally we can join the 21st century and use `jest.mock` in tests!

I'm enabling the ts-jest transform to `*/__tests__/*.tsx` files. This takes care of transforming the typescript, and preserves jest mock capabilities.
I have left the existing custom transform on all other files, so they will continue to work as usual.

Caveats:
* Our existing custom transforms will no longer be applied in tests.
  * With our current suite this makes no difference. But bear in mind things like importing directly from 'flipper' instead of the actual files, won't work. However, I don't see this being a problem, as I think they'll only be needed inside the actual product code.

Reviewed By: passy

Differential Revision: D17978753

fbshipit-source-id: df7b312b5dd5592e4aa4f8df605f5952ea3158e9
2019-10-18 07:17:40 -07:00
Pascal Hartig
b10a67d443 Show potential errors alongside buttons
Summary:
Instead of replacing the buttons, this shows an error next to
them and gives the opportunity to retry.

Reviewed By: jknoxville

Differential Revision: D17907389

fbshipit-source-id: 15b27802671b39c53b32d01f1d2bcf8c67fd2647
2019-10-14 10:08:28 -07:00
Pascal Hartig
4bdccb22fa Enable greenkeeper
Summary:
Close https://github.com/facebook/flipper/pull/580

This enables Greenkeeper with some caveats:

- I disabled a bunch of upgrades we know currently break:
  - React
  - Emotion
  - Electron/Electron-Builder
- The bot isn't CLA-whitelisted yet, so we won't be able to directly import yet.
- It might actually be better to have automatic tasks created for the dependencies above breaking.
- Something changed in the prop types and required `StatusBar` to have its signature changed.

allow-large-files

Reviewed By: jknoxville

Differential Revision: D17906693

fbshipit-source-id: f73fe231518f56a6f6114f761d5e5e5528d0d487
2019-10-14 09:42:56 -07:00
Pritesh Nandgaonkar
de17f3905b Close export dialog autmatically for support form
Summary: This diff adds the support to close the dialog automatically for the support form.

Reviewed By: passy

Differential Revision: D17899862

fbshipit-source-id: 9d9cd14556a4cebe60f8cc1d082be3e439998e9c
2019-10-14 08:07:41 -07:00
Pascal Hartig
874e590b96 Upgrade eslint and prettier
Summary: Not a fan of the long lines, but if that's where prettier is going, let's roll with it.

Reviewed By: jknoxville

Differential Revision: D17905599

fbshipit-source-id: c4232d46d2ec0b7c743f6afd8349106c85f013b9
2019-10-14 05:27:27 -07:00
Andres Suarez
0675dd924d Tidy up Flipper license headers [1/2]
Reviewed By: passy

Differential Revision: D17863711

fbshipit-source-id: 259dc77826fb803ff1b88c88529d7f679d3b74d8
2019-10-11 13:46:45 -07:00
John Knox
0479309dd1 Don't fail when dir doesn't exist
Summary:
Noticed a bunch of failures [here](https://our.intern.facebook.com/intern/scuba/query/?dataset=flipper_session_event_stats_scuba&drillstate=%7B%22sampleCols%22%3A[%22errors%22%2C%22event%22]%2C%22cols%22%3A[]%2C%22derivedCols%22%3A[%7B%22name%22%3A%22perfect_session%22%2C%22sql%22%3A%22CAST_AS_DOUBLE(no_failures)%22%2C%22type%22%3A%22Numeric%22%7D]%2C%22mappedCols%22%3A[]%2C%22enumCols%22%3A[]%2C%22return_remainder%22%3Afalse%2C%22should_pivot%22%3Afalse%2C%22is_timeseries%22%3Atrue%2C%22hideEmptyColumns%22%3Afalse%2C%22start%22%3A%22-90%20days%22%2C%22samplingRatio%22%3A1%2C%22compare%22%3A%22comparison%22%2C%22axes%22%3A%22linked%22%2C%22bucket%22%3A%221%22%2C%22overlay_types%22%3A[]%2C%22minBucketSamples%22%3A%22%22%2C%22dimensions%22%3A[%22time%22%2C%22event%22]%2C%22scale_type%22%3A%22absolute%22%2C%22num_samples%22%3A%22100%22%2C%22metric%22%3A%22avg%22%2C%22fill_missing_buckets%22%3A%22connect%22%2C%22smoothing_bucket%22%3A%221%22%2C%22top%22%3A20%2C%22markers%22%3A%22%22%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22end%22%3A%22now%22%2C%22time_bucket%22%3A%22604800%22%2C%22compare_mode%22%3A%22normal%22%2C%22aggregateList%22%3A[]%2C%22param_dimensions%22%3A[]%2C%22modifiers%22%3A[]%2C%22order%22%3A%22none%22%2C%22order_desc%22%3Atrue%2C%22filterMode%22%3A%22DEFAULT%22%2C%22constraints%22%3A[[%7B%22column%22%3A%22plugin%22%2C%22op%22%3A%22eq%22%2C%22value%22%3A[%22[%5C%22null%5C%22]%22]%7D%2C%7B%22column%22%3A%22is_headless%22%2C%22op%22%3A%22!substr%22%2C%22value%22%3A[%22[%5C%22true%5C%22]%22]%7D%2C%7B%22column%22%3A%22event%22%2C%22op%22%3A%22substr%22%2C%22value%22%3A[%22[%5C%22getInstalledPlugins%5C%22]%22]%7D]]%2C%22c_constraints%22%3A[[]]%2C%22b_constraints%22%3A[[]]%2C%22metrik_view_params%22%3A%7B%22xaxis_type%22%3A%22auto%22%2C%22should_use_legacy_colors%22%3Afalse%2C%22view%22%3A%22Samples%22%2C%22width%22%3A%222126%22%2C%22height%22%3A%221132%22%2C%22y_max_hint%22%3A%221%22%2C%22yaxis_settings%22%3A[%7B%22yaxis_title%22%3A%22%22%2C%22yaxis_series_name%22%3A%22%22%2C%22yaxis_width%22%3A%220%22%2C%22yaxis_format%22%3A%22%25P%22%7D]%2C%22tooltip_outside%22%3Atrue%2C%22state%22%3A%22published%22%2C%22use_y_axis_hints_as_limits%22%3Atrue%2C%22legend_mode%22%3A%22nongrid%22%2C%22connect_nulls%22%3Atrue%2C%22yaxismin%22%3A0%2C%22title%22%3A%22Operation%20success%20rate%20over%20time%20(human)%22%2C%22tooltip_disabled%22%3Atrue%2C%22timezone_offset%22%3A420%2C%22y_min_hint%22%3A0%2C%22legend_position%22%3A%22none%22%2C%22title_use_v2%22%3Atrue%7D%7D&pool=uber&view=Samples&dashboard_id&tab_id&widget_id&widget_piece_id).

This fixes it.

Reviewed By: passy

Differential Revision: D17877108

fbshipit-source-id: 85586a1ce65033b98d793746c611b44f68e13eff
2019-10-11 06:21:47 -07:00
John Knox
6909a4a315 Add snapshot tests for settings
Summary: Take a snapshot with each field adjusted to prevent accidental changes.

Reviewed By: priteshrnandgaonkar

Differential Revision: D17832181

fbshipit-source-id: 016f99ec032036993a40fea310c6fd9887da6c38
2019-10-10 09:23:47 -07:00
John Knox
ea4c678fac Expose iOS "setting" in settings
Summary:
Adds an iOS "setting" to the settings, but it's automatically set based on xcode-select for minimum required effort.

Helpful text added to tell you how to enable it if it's disabled.

Reviewed By: passy

Differential Revision: D17830940

fbshipit-source-id: 53e1e40c5b96e29b30036259cc774ab14097a1da
2019-10-10 09:23:46 -07:00
John Knox
16be611792 Add android enable/disable to settings screen
Summary:
The UI could do with a bit more fine tuning, but it's a start.

Fully functional with updating the settings file. But nothing actually uses that setting yet.

Reviewed By: priteshrnandgaonkar

Differential Revision: D17810588

fbshipit-source-id: 791ee60616f3ee73f41813a5a442b08a5e395458
2019-10-10 09:23:45 -07:00
Pritesh Nandgaonkar
f924b0ae1b Add support manager to display an error screen or litho form
Summary:
This diff shows the error screen when one of the following condition is met:

- Selected device is not android
- No clients are active for selected device
-  At least there is one client which supports inspector plugin.

For this I have added a SupportRequestManager class which loads the error screen or the litho form based on the above condition.

The UI is super basic. Will improve the design based on your feedback in the coming diffs.

Reviewed By: jknoxville

Differential Revision: D17790596

fbshipit-source-id: 2afc917c93c6e7321399633c5bf9d27a703742ee
2019-10-08 12:01:09 -07:00
Pritesh Nandgaonkar
e5ddb5d709 Show support form in all the cases
Summary: Earlier we used to show the support form only when selected device was android. But this won't work because, I am planning to add a deeplink support for the form, so that the user can directly open flipper from workplace. Because of this we will have to show the litho support form always. In case  when the selected device is not android, we will show an error screen with possible solutions to open the litho support form.

Reviewed By: passy

Differential Revision: D17787686

fbshipit-source-id: 13e15041238d8746f947563bb3c2ea3cec205a5e
2019-10-08 12:01:09 -07:00
Pascal Hartig
208752b15e Fix glyph centering
Summary:
Before:

{F216059409}
(info circle!)

After:

{F216059417}

Reviewed By: jknoxville

Differential Revision: D17808879

fbshipit-source-id: 4408ba11919e70958f2d8123f913973d106996a7
2019-10-08 08:45:06 -07:00
Pascal Hartig
04e12a28a0 Refactor PluginInstaller component
Summary:
- Made side-effecting elements injectable via props.
- Added default props so usage doesn't change.
- Added testing-library/react snapshot test that waits for test data to appear in the list.

One slightly annoying part here is that this now that we have an `autoHeight` prop which is only useful for testing it as it prevents a problem with a height-detection in the test runner. We could even change the default as it doesn't affect the display in prod, but this still feels slightly cleaner.

Reviewed By: jknoxville

Differential Revision: D17808510

fbshipit-source-id: 2ae70886c58282d5bdc98ba4215e8248e4c7f159
2019-10-08 08:45:06 -07:00
Pascal Hartig
8f719b17e3 Add instrumentation, fix typo
Summary:
- plugns -> plugins
- Report platform failures from second invocation.

Reviewed By: jknoxville

Differential Revision: D17787179

fbshipit-source-id: 041325f572dd839bd268612269f3774518a409b2
2019-10-08 00:23:29 -07:00
Pascal Hartig
4d1e7dc80f Add comment about error handling
Summary:
Added some notes to T55169042.

Also limited the acceptable result types.

Reviewed By: jknoxville

Differential Revision: D17787130

fbshipit-source-id: 19cefdde5ab195080281e9f2e26f5a236dd59629
2019-10-08 00:23:29 -07:00
Pascal Hartig
ca8df6d680 Remove "no file" error dialog
Summary:
This is a programming error, not something that users
should ever be exposed to. This logs an error instead
and just doesn't show anything.

The big benefit is that the component no longer
needs to deal with `file` potentially being undefined.

Reviewed By: jknoxville

Differential Revision: D17786913

fbshipit-source-id: 32a357381e64cd9237ad4a0112c346d7121634ef
2019-10-08 00:23:28 -07:00
Pascal Hartig
36abf6e38c Add tests for pending dialog
Summary:
The benefits of having things nicely encapsulated.
Not super sophisticated, but better than nothing.

Reviewed By: jknoxville

Differential Revision: D17786832

fbshipit-source-id: 0b321e8a4e56188b0eab86515bd777ed3e3e8cb7
2019-10-08 00:23:28 -07:00
Pascal Hartig
5f5c80bee5 Factor out pending sheet as separate component
Summary: It's copied apart from the status message, so let's centralise it.

Reviewed By: jknoxville

Differential Revision: D17786691

fbshipit-source-id: d5f7a5dccf56b96a58a9c1fc61652d7f9d1786d3
2019-10-08 00:23:27 -07:00
Pascal Hartig
8346cedc77 Rename ShareSheet
Summary:
From the name it's not clear that this is actually a fork off the "Share File"
variant of this. I'm planning to bring the two together as they share most of
the code, but for now this makes it a bit clearer.

Reviewed By: jknoxville

Differential Revision: D17786570

fbshipit-source-id: 8def3301ee4f79741391dc7e0b6a33a5fd7aa2c3
2019-10-08 00:23:27 -07:00
Pascal Hartig
b6df1d1d6d HIG for export share sheet
Summary:
Following https://developer.apple.com/design/human-interface-guidelines/macos/buttons/push-buttons/,
the primary button should be highlighted and the affirmative action be to the right.

Clicked a few times on the wrong one myself.

Reviewed By: priteshrnandgaonkar

Differential Revision: D17762516

fbshipit-source-id: 6be35cfde26ca10142c2c98df30672c0f739c17e
2019-10-08 00:23:27 -07:00
Pascal Hartig
1a56371f3f HIG for cancelation buttons
Summary:
- Make sure it's "cancel" in all cases.
- Move cancel buttons to the left.
- Rename the callback to clarify purpose.

Reviewed By: jknoxville

Differential Revision: D17762466

fbshipit-source-id: 0f6a9d83ff0cab139f926fb5a512be4618471ee8
2019-10-08 00:23:26 -07:00
Pascal Hartig
a41625e176 Refactor ShareSheetExportFile
Summary:
Wanted to make a small change and found it a bit difficult to
follow, so I tried to make it a bit more TypeScript-y.

Logic should be unchanged.

Reviewed By: priteshrnandgaonkar

Differential Revision: D17762346

fbshipit-source-id: d0d8b2e25b532b7b10079907d6da86bdd878a75c
2019-10-08 00:23:26 -07:00
John Knox
44ab23557e Disable settings "Apply" button when no changes have been made
Summary: It's a bit nicer to be able to see if there are any changes made, and save restarting flipper when nothing has changed.

Reviewed By: passy

Differential Revision: D17738036

fbshipit-source-id: 3d7cdc5be1bf948094c3df54439625e5052a9a2f
2019-10-07 08:51:07 -07:00
John Knox
b50aef8f15 Restart after changing settings
Summary:
Gets flipper to restart when settings are updated.

In theory most settings should not need this, but the current only one does (android home) because the path is set at startup only, and this modifies the input to it.
It would be a bit awkward to modify the path more than once, but doable.

Reviewed By: passy

Differential Revision: D17737582

fbshipit-source-id: d4669dcc7acc95469f15783fc6a5ba6794750234
2019-10-07 08:51:06 -07:00
John Knox
729e74f2fc Switch to using settings for android sdk location
Summary: A settings screen has been added where android home can be set. This changes the downstream code to use this value rather than the `env.PATH` variable.

Reviewed By: passy

Differential Revision: D17713288

fbshipit-source-id: 51551652c9c2f468e1117c18785123348e4b4576
2019-10-07 08:51:06 -07:00
John Knox
85c0ec0d13 Persist settings in ${XDG_CONFIG_HOME}/flipper/settings
Summary:
Moves the settings state from electron local storage into a json file in the users configured config location.
Unless modified by the user, this will usually be `~/.config/flipper/settings.json`

Settings will now persist across re-installs, and can now be easily inspected and backed up.

Reviewed By: passy

Differential Revision: D17712687

fbshipit-source-id: 1e778063e41d0a1a86145817b9797bf0458121da
2019-10-07 08:51:05 -07:00
John Knox
eb64ff0832 Add settings UI
Summary:
Adds a simple UI for editing settings, a reducer and persistance config for the data.
These values aren't yet used for anything.

Reviewed By: passy

Differential Revision: D17684490

fbshipit-source-id: e76ac43ffa17d3606e59f4a1ccb940e8d9fbd9e8
2019-10-07 08:51:05 -07:00
John Knox
8c15547597 Add explicit dismiss button to feedback prompt
Summary:
You can already click the star icon in the title bar to dismiss, but according to feedback this isn't obvious: https://our.intern.facebook.com/intern/itsr?start_date=1561849200&end_date=1570402800&tab=4&all_tools=true

So adding an explicit dismiss button.

Reviewed By: passy

Differential Revision: D17788570

fbshipit-source-id: b0995e5abdaafc5bd6f93edb27dad703c81b8f2b
2019-10-07 08:37:15 -07:00
Pascal Hartig
e074898d46 Basic error handling
Summary:
Adds some very basic error handling. It's not great
because once you hit an error, you're basically stuck
and there's no retry yet, but it's still strictly
an improvement over being stuck with the looping
spinner, so I think it's worth shipping it in this state.

Reviewed By: jknoxville

Differential Revision: D17763467

fbshipit-source-id: b5b7996554dd1dce682fba87f96e3806432a475a
2019-10-07 08:12:10 -07:00
Pascal Hartig
ff76b17a5b Add metrics
Summary:
Add some usage and failure rate stats to the PluginInstaller. Small
typo fix and added a helper to the metrics utils to make simple
usage tracking a little more intuitive.

Reviewed By: jknoxville

Differential Revision: D17760511

fbshipit-source-id: 957031d428f3124435925415619b1555a0c2dc2a
2019-10-04 08:26:26 -07:00
Pascal Hartig
485898f5c7 Set key for SelectPluginSheet row
Summary: Getting a React warning because it previously didn't.

Reviewed By: jknoxville

Differential Revision: D17736486

fbshipit-source-id: 422e023abe0501804d5b447e365ff014969d6286
2019-10-03 09:14:26 -07:00
Pascal Hartig
1de1bbaf8a Prepare for TypeScript 3.7
Summary:
These are the only four errors currently happening when upgrading to the 3.7 beta.
Luckily, these are all forwards-compatible changes.

Reviewed By: jknoxville

Differential Revision: D17711797

fbshipit-source-id: 429036e90300c81848cc3252b67bb89871ff2e32
2019-10-02 08:35:39 -07:00
Pritesh Nandgaonkar
05328167c6 Add support for status bar
Summary:
This diff adds a status bar, which can be used to show the status messages, for example for Litho Support Form.
The logic for the status bar is as follows:

It maintains the array of the messages. At any point it shows the last pushed message. It will keep showing that message until it is being removed, once removed it will show second last message. The messages will be removed as and when its corresponding task/Promise is fulfilled.

Reviewed By: danielbuechele

Differential Revision: D17551495

fbshipit-source-id: 96b2f401599b9ee8a472607e6a2f027e63b3b807
2019-10-02 05:48:03 -07:00