Commit Graph

73 Commits

Author SHA1 Message Date
Anton Nikolaev
56361debb2 Differentiate insider builds from stable builds
Summary: Each build will have an embedded file specifying the target release channel for the build. This allows us to do some customisations, e.g. show "Insiders" label in the title and enable Sandy by default for insiders builds.

Reviewed By: jknoxville

Differential Revision: D25399045

fbshipit-source-id: 8e26d0754d0713ced823f86b30b54491d55b4d97
2020-12-08 12:38:02 -08:00
Michel Weststrate
3394f85fc7 Wire up usage tracking to Flipper core
Summary: Connect usage tracking to the Flipper core, individual elements will be wrapped in a next diff

Reviewed By: passy

Differential Revision: D25196284

fbshipit-source-id: 103e1d21d2f23fbbc21975fa85082811f6f53348
2020-12-03 04:15:44 -08:00
Michel Weststrate
f7c40c315c Update to Emotion 11
Summary: Per title

Reviewed By: passy

Differential Revision: D24994086

fbshipit-source-id: 84d83638ec518a39ea2d80f56b8c794c8b86a9d4
2020-11-18 06:52:03 -08:00
Michel Weststrate
45db64f0d0 Make sure that limited top-level exports are exposed from flipper-plugin
Summary: This prefixes APIs of `flipper-plugin`, that are used by Flipper, but should not be used by plugins directly, with `_`. Also added tests to make sure we are always intentional when extending the exposed APIs

Reviewed By: passy

Differential Revision: D24991700

fbshipit-source-id: ed3700efa188fca7f5a14d5c68250598cf011e42
2020-11-16 13:10:33 -08:00
John Knox
9d101263a0 Put PopoverProvider inside scope of Store Provider
Summary:
Many UI components (such as Button) rely on the redux store being present in the context.

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

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

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

Reviewed By: mweststrate

Differential Revision: D24922493

fbshipit-source-id: e15540ac49795875b1cf86d6c66ec0591dc374ef
2020-11-12 10:03:59 -08:00
Michel Weststrate
c02d5341f9 Enable Sandy by default if part of GK
Summary:
Inverted the condition of checking if Sandy is enabled, so by default it is enabled if user is part of the GK.

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

Reviewed By: jknoxville

Differential Revision: D24830075

fbshipit-source-id: d20dacd9e6c2dd2387a94b8a972252f29d0dab0e
2020-11-09 08:24:28 -08:00
Michel Weststrate
2b0e93a063 Introduce NUX element
Summary:
allow-large-files

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

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

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

Example usage:

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

Reviewed By: nikoant

Differential Revision: D24622276

fbshipit-source-id: 0265634f9ab50c32214b74f033f59482cd986f23
2020-11-06 08:23:42 -08:00
Edward Yerburgh
8a31e984b3 Use QPL-managed QPLCore and PigeonClient (#1612)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1612

* Use the QPL-managed QPLCore and PigeonClient.

**Facebook:**

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

Reviewed By: passy

Differential Revision: D24358369

fbshipit-source-id: 7f13d6c99d8ca6ebcd0e66bf0e5f25069370cce7
2020-10-26 02:29:09 -07:00
Michel Weststrate
02570136ce Fix ANT line-height leaking into legacy design
Summary:
Fixes layout issue that was caused by ANT line-heights leaking into the old design.

Introduced a `.flipperlegacy_design ` class at the `root` element of Flipper, so that it is easier in the future to bail out / add overrides for certain features in the old design.

Reviewed By: priteshrnandgaonkar

Differential Revision: D24135482

fbshipit-source-id: 40091ebbde71662f2ebea66577f7b727009ca9c6
2020-10-06 04:58:18 -07:00
Michel Weststrate
4e6ecac43e Load ant theme in classic Flipper as well
Summary: If a new code path uses some Ant design based components in classic flipper, they are unstyled before this diff. By making sure that the ant stylesheet is loaded we can safely 'leak' new UI elements into the old UI. For example when we use toasters, dialogs etc.

Reviewed By: cekkaewnumchai

Differential Revision: D24021751

fbshipit-source-id: 3b42d28f1c75e4df441170660027562264e879dd
2020-10-01 05:35:10 -07:00
Pritesh Nandgaonkar
7358711e07 Enable screenshot for physical devices
Summary: Uses idb to get screenshot for physical devices.

Reviewed By: jknoxville

Differential Revision: D24017656

fbshipit-source-id: 89ffd17259d6f94d03a1442ffb341b79797f260b
2020-09-30 10:10:27 -07:00
Michel Weststrate
2d2a8bd675 Introduce dark theme
Summary: Adds support for switching dark mode on the fly. Also added the option to apply certain settings without restarting Flipper, as that isn't needed in all cases.

Reviewed By: cekkaewnumchai

Differential Revision: D23625854

fbshipit-source-id: 82175ba10524daf1b48a65feec8c610460df9418
2020-09-17 04:05:09 -07:00
Chaiwat Ekkaewnumchai
1efb682737 Add Opt-in Switch to Sandy UI
Summary:
With the new design from vpileggi, this diff separated a new app UI to the current one.

This diffs show the toggle switch to enable Sandy UI for devs who are in `flipper_sandy` GK. When toggled, it will bring Sandy UI up.

Reviewed By: mweststrate

Differential Revision: D23599398

fbshipit-source-id: d85c707e0fe7726a418b3551cedb36e455fb7d14
2020-09-10 02:13:04 -07:00
Michel Weststrate
9785a03ebd Summary:
See D23051239

Since the crash reporter endpoint does not exist anymore, and no data was reported there, removing the corresponding code from Flipper as well.

This also fixes the last remaining startup warning as well :)

Reviewed By: priteshrnandgaonkar

Differential Revision: D23472612

fbshipit-source-id: 7ce9f6a0261cdfe197a7da9b28a86407299effec
2020-09-02 04:27:17 -07:00
Michel Weststrate
dd15cffa64 Introduced first class console to help users debugging issues (#1479)
Summary:
Handling issues typically start with: did you look at the Electron logs? Since Flipper is such an extensible tool, running in varying environments I think the console should be support as first class concept. Many errors are currently not shown to the user. This PR is a first attempt to fix that.

The implementation is based on https://github.com/samdenty/console-feed, which is used by quite some web based IDE like tools (like codesandbox), and offers a lot of goodies out of the box, like collapsing errors, objects, etc.

Edit: also added a counter keeping track of the amount of errors

N.B. no need to immediately review this diff, I'll import it to phabricator as soon as I can :)

## Changelog

changelog: Introduce 'Debug Logs' section to help users to troubleshoot issues or to provide more accurate reports.

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

Test Plan: ![Screenshot from 2020-08-18 15-29-55](https://user-images.githubusercontent.com/1820292/90526011-c9b22d80-e167-11ea-88cf-7b4e07918a96.png)

Reviewed By: jknoxville

Differential Revision: D23198103

Pulled By: passy

fbshipit-source-id: a2505f9fa59e10676a44ffa33312efe83c7be55d
2020-08-20 13:27:48 -07:00
Michel Weststrate
9c202a4a10 Introduce menu entry support
Summary:
[interesting] since it shows how Flipper APIs are exposed through sandy. However, the next diff is a much simpler example of that

This diff adds support for adding menu entries for sandy plugin (renamed keyboard actions to menus, as it always creates a menu entry, but not necessarily a keyboard shortcut)

```

  client.addMenuEntry(
    // custom entry
    {
      label: 'Reset Selection',
      topLevelMenu: 'Edit',
      handler: () => {
        selectedID.set(null);
      },
    },
    // based on built-in action (sets standard label, shortcut)
    {
      action: 'createPaste',
      handler: () => {
        console.log('creating paste');
      },
    },
  );
```

Most of this diff is introducing the concept of FlipperUtils, a set of static Flipper methods (not related to a device or client) that can be used from Sandy. This will for example be used to implement things as `createPaste` as well

Reviewed By: nikoant

Differential Revision: D22766990

fbshipit-source-id: ce90af3b700e6c3d9a779a3bab4673ba356f3933
2020-08-04 07:47:14 -07:00
Nicole Stiliyan Vukadinova
a37d48d67e Fix the inconsistency in the timestamps for markerStart and markerEnd
Summary: There was in inconsistency in the timestamps used for markerStart and markerEnd, resulting in negative duration being reported in the Scuba table.

Reviewed By: nubbel

Differential Revision: D22791255

fbshipit-source-id: a4a16c6583974a0423b12805fb8d1a22af44cf5c
2020-07-28 07:22:38 -07:00
John Knox
9ada27526c Change RatingButton to use Popover2
Summary:
The original Popover component doesn't work when the popover goes out of bounds of the current container, and overflow is not visible, which is the case in the title bar.

This changes it to use a new absolutely positioned one instead.

Reviewed By: mweststrate

Differential Revision: D22724110

fbshipit-source-id: f41b6d154ccb66a94b63533fe9c30d2a2c49f1db
2020-07-24 07:13:28 -07:00
Nicole Stiliyan Vukadinova
7d06571cfa Add marker start and end to App to measure the startup time for Flipper (#1398)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1398

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

Reviewed By: nubbel

Differential Revision: D22549700

fbshipit-source-id: 7553ba075e45f1a515922012d7db4fdefefcaa24
2020-07-23 07:32:53 -07:00
Anton Nikolaev
91d5c6c130 Import MacOS CA when Flipper running in dev mode
Summary:
By default Node.JS has its internal certificate storage and doesn't use the system store. Because of this, it's impossible to access ondemand / devserver which are signed using some internal self-issued FB certificates. These internal certificates are automatically installed to MacOS system store on FB machines, so here we're using "mac-ca" library to load them into Node.JS when Flipper is running in dev mode.

For production version of Flipper we don't need to do this, because production certs are issued by DigiCert which is already trusted by node.js.

Reviewed By: passy

Differential Revision: D21862620

fbshipit-source-id: f7276e255fae1c208cb68af6632a303661af883e
2020-06-03 11:58:13 -07:00
Pascal Hartig
1011042bdb Remove bugnub
Summary:
Good bye, sweet prince.
We've decided to remove the internal bugnub as its usage is quite low
and the experience is subpar. In the future, we'd rather reuse the
support form v2 and integrate it with our group.

Reviewed By: mweststrate

Differential Revision: D21300627

fbshipit-source-id: d3c7271efcee4ad22ec76394870902f2712e392d
2020-04-30 06:05:46 -07:00
Pascal Hartig
fc9ed65762 prettier 2
Summary:
Quick notes:

- This looks worse than it is. It adds mandatory parentheses to single argument lambdas. Lots of outrage on Twitter about it, personally I'm {emoji:1f937_200d_2642} about it.
- Space before function, e.g. `a = function ()` is now enforced. I like this because both were fine before.
- I added `eslint-config-prettier` to the config because otherwise a ton of rules conflict with eslint itself.

Close https://github.com/facebook/flipper/pull/915

Reviewed By: jknoxville

Differential Revision: D20594929

fbshipit-source-id: ca1c65376b90e009550dd6d1f4e0831d32cbff03
2020-03-24 09:38:11 -07:00
Anton Nikolaev
863f89351e Yarn workspaces
Summary:
1) moved "sonar/desktop/src" to "sonar/desktop/app/src", so "app" is now a separate package containing the core Flipper app code
2) Configured yarn workspaces with the root in "sonar/desktop": app, static, pkg, doctor, headless-tests. Plugins are not included for now, I plan to do this later.

Reviewed By: jknoxville

Differential Revision: D20535782

fbshipit-source-id: 600b2301960f37c7d72166e0d04eba462bec9fc1
2020-03-20 13:37:41 -07:00