Commit Graph

314 Commits

Author SHA1 Message Date
John Knox
d6f7d75e83 Remove sheet animation delay
Summary: I noticed every time you open a sheet it feels laggy and unresponsive. This removes the wait time to make it immediate.

Reviewed By: passy

Differential Revision: D17684407

fbshipit-source-id: f918bf8ca3bb0ef68c3fe01991c67d50f3967d68
2019-10-01 03:27:40 -07:00
Pascal Hartig
31f9d865b2 Fix screenshot taking and video recording for Windows
Summary: Turns out Windows really doesn't like colons in filenames. Sigh.

Reviewed By: jknoxville

Differential Revision: D17664236

fbshipit-source-id: 664885308815d862007c8a9a9d1278c426b4e756
2019-09-30 05:24:19 -07:00
Pascal Hartig
0039d5be4a Use 'open' module to open stuff
Summary:
Instead of our ad-hoc mechanism. There's quite a bit
of trickery involved to make this work reliably on Windows
so I'd rather take an off-the-shelf solution than reimplement this
myself.

Reviewed By: jknoxville

Differential Revision: D17628949

fbshipit-source-id: 98806b60a107231d9ee07b721ebb70f2cbd8aec1
2019-09-30 03:49:06 -07:00
Daniel Büchele
2c66e3d4d0 install dependencies
Summary:
In the previous implementation plugins were downloaded from npm, but dependencies weren't. This diff uses the `live-plugin-manager` which does mostly what we want. It install a package from NPM with all its dependencies.
live-plugin-manager puts the plugin and its dependencies in the same folder. We expect the plugins to be in `node_modules`. For this reason, we are installing the plugin into `$pluginName/node_modules` and move the plugin after the installation out of the `node_modules` folder.

* Fixed plugin loading path for thirdparty plugins.
* Disabled hot reloading for plugins in the flipper folder to prevent reloads when moving around files and installing dependencies here.
* an empty `.watchmanconfig` is created, because metro requires it
* tsx files are added to the list of supported extensions for metro

Reviewed By: passy

Differential Revision: D17570413

fbshipit-source-id: ecbedc60841b36188fec9c83da41ef1f27e5e155
2019-09-26 07:57:54 -07:00
Pritesh Nandgaonkar
8d4d642330 Attach Flipper Trace in the support form
Summary: This diff sets up Flipper to attach flipper trace to the support form. This diff adds a property named `exportResult` in the redux store. This will hold the export url or the path of the export, depending on the type of the flipper export. Once the exportResult is populated, we listen for this change and update the button style and fill the comment box.

Reviewed By: passy

Differential Revision: D17478491

fbshipit-source-id: 10dd5e130a9e3df5f41afde42b92b08959d9ed9e
2019-09-25 06:09:13 -07:00
John Knox
e871822a05 Use API for eligibility check
Summary: Change flipper from using the dodgy webview check that requires auth, to using the interngraph api for eligibility checking.

Reviewed By: passy

Differential Revision: D17498724

fbshipit-source-id: b81fd8b7b0bd36a7fcf73ba05d9885b61e420c61
2019-09-23 06:44:38 -07:00
Pritesh Nandgaonkar
84c5067210 Create Support Requests from Flipper
Summary: This diff adds an initial support to prefill the app information and the revision information. This diff also copies the workplace url in the clipboard.

Reviewed By: passy

Differential Revision: D16990925

fbshipit-source-id: 4f354e52de5fea07c2ea36336761d6963c27ef66
2019-09-20 11:39:05 -07:00
Daniel Büchele
a77faa5318 update PluginManager links
Summary: Adding Plugin Manager to menu bar and update wording in sidebar

Reviewed By: passy

Differential Revision: D17450840

fbshipit-source-id: 9426e6053f454a8e3776e9e0e061cd119f8dc7b5
2019-09-19 02:34:18 -07:00
Daniel Büchele
8c623867bd PluginManager
Summary: Adding the plugin installer to the plugin sheet as a second tab

Reviewed By: passy

Differential Revision: D17450842

fbshipit-source-id: 211c9f15ed2614a1dd46d974b86f50c825f81fb0
2019-09-19 02:34:18 -07:00
Daniel Büchele
108c49f572 Bookmark from TitleBar
Summary: Add action to bookmark current location

Reviewed By: passy

Differential Revision: D17419666

fbshipit-source-id: 69e845e802260c150ae2f17649cea05bea1ae4ec
2019-09-17 10:18:26 -07:00
Daniel Büchele
bd1fc342c8 Keyboard navigation
Summary: Adding keyboard navigation for bookmarks

Reviewed By: jknoxville

Differential Revision: D17419667

fbshipit-source-id: 851f93d662b6071c3478dca5c9d20b9814e15c1b
2019-09-17 10:18:26 -07:00
Daniel Büchele
a72eac27a7 add flipper-plugin keyword to package.json
Summary: For plugins to be discoverable through NPM, they need to have `flipper-plugin` as a keyword. This adds this keyword to all existing plugins (although they are currently not distributed via NPM) and the webside/docs.

Reviewed By: passy

Differential Revision: D17395079

fbshipit-source-id: e42dd31ca39c3754cf729052ee783687748bafe8
2019-09-17 06:21:29 -07:00
Daniel Büchele
97b814d70e installed plugins
Summary: Checking `~/.flipper/thirdparty` for already installed plugins and displaying them on top of the table

Reviewed By: jknoxville

Differential Revision: D17394821

fbshipit-source-id: 65f392c8beaf72d9effcae9f47a60bcbb9194025
2019-09-17 06:21:29 -07:00
Daniel Büchele
f3326f8874 install/remove
Summary: Installing/removing plugins in/from `~/.flipper/thirdparty`.

Reviewed By: jknoxville

Differential Revision: D17394822

fbshipit-source-id: b62f62fa2415403e4377fba445e77534be87350d
2019-09-17 06:21:29 -07:00
Daniel Büchele
3b46eb82d8 NPM search
Summary: Using yarn's algolia index to search NPM packages with the tag `flipper-plugin`.

Reviewed By: jknoxville

Differential Revision: D17394823

fbshipit-source-id: d7c88ddf5d4ce017f2672755436ef3ae7ed4e7f0
2019-09-17 06:21:28 -07:00
Daniel Büchele
109e871a76 UI
Summary: Setting up a sheet to list plugins that can be installed from NPM

Reviewed By: jknoxville

Differential Revision: D17394824

fbshipit-source-id: 26c6ffea9de9cf3fe8488ea1a757eae7b7aaa7ef
2019-09-17 06:21:28 -07:00
Pritesh Nandgaonkar
e1e8760f12 Show the status message of uploading Flipper trace
Summary: This diff shows the status message of "Uploading Flipper Trace..." when we upload it.

Reviewed By: danielbuechele

Differential Revision: D17402445

fbshipit-source-id: ab2927de34ab5d7e49e7c7ea005d40816a0365bd
2019-09-17 04:12:04 -07:00
Daniel Büchele
01be3dc5d1 refactor screen recording
Summary:
moving logic for screen recordings to the respective devices, instead of having it in the button component.
This is part of my wider effort to unify our use of adb/adbkit and upgrade to the latest version of adbkit.

Reviewed By: passy

Differential Revision: D17318702

fbshipit-source-id: cff4459047d7a197ed6cb8ee8c290b4eaab41479
2019-09-13 05:28:29 -07:00
John Knox
9ee487cf43 Proactively ask users for feedback based on ITSREligibilityCheck
Summary:
Gets the rating popover to appear automatically after 30s for selected users, according to ITSR constraints.

The ITSR constraints are to stop it annoying people, such as only happening once a month, and global throttling.

Reviewed By: passy

Differential Revision: D17343435

fbshipit-source-id: c06aa10263a64249f7e2c48b8752c37e4314ac24
2019-09-12 08:21:30 -07:00
John Knox
d3be6357ef Send dismiss event when popover is closed
Summary: Dismissing the popover will stiop the user from being prompted for a while, so we only want to send this event when the user was proactively prompted in the first place - which is when we're using the eligibility check.

Reviewed By: passy

Differential Revision: D17343227

fbshipit-source-id: 95a071e34ce318fe49640c6ee9f68127957f390c
2019-09-12 08:21:29 -07:00
John Knox
25739aebc2 Only show rating button when user is eligible to rate
Summary:
Behind a gk.

This uses a hidden webview to check if a user is eligible for star ratings. This means you can practively ask the user, and makes sure you'll get an unbiased distribution.

Reviewed By: danielbuechele

Differential Revision: D17343118

fbshipit-source-id: fe7471416aef947ec10f4734e4136868ab5ab3e5
2019-09-12 08:21:29 -07:00
Pascal Hartig
99b4436ceb Only show update indicator in non-launcher environments
Summary:
I didn't update the render logic accordingly after figuring
out how the internal update endpoint works. This closes
that gap.

Reviewed By: danielbuechele

Differential Revision: D17316892

fbshipit-source-id: 1e6c4dd17b342b2a062cea90d763be01ed6fc1ec
2019-09-11 11:08:17 -07:00
Daniel Büchele
fbe8e92991 ExportDataPluginSheet
Summary: _typescript_

Reviewed By: passy

Differential Revision: D17284491

fbshipit-source-id: d19a98dd5e6b0ee7d1ac81acfbc814b229894ecb
2019-09-11 03:04:55 -07:00
Daniel Büchele
e1b0af0f4b LocationsButton
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17284485

fbshipit-source-id: 7de710e7302413bc4735f0b0e31770c045a84fe6
2019-09-11 03:04:54 -07:00
Daniel Büchele
fe6813042c DevicesButton
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17284473

fbshipit-source-id: 2a0586dc3147338c8335eadb4dcbe158e8f1dc97
2019-09-11 03:04:54 -07:00
Daniel Büchele
f2812aff7a BugReporterDialog
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17284465

fbshipit-source-id: 1c874b320ca76455576b0a2b4db6e007e4e27e4b
2019-09-11 03:04:54 -07:00
Daniel Büchele
ded9d863f0 MainSidebar
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17282353

fbshipit-source-id: 51c7a31dbbbc528952aa182f689f1f9862f10a38
2019-09-11 03:04:53 -07:00
Daniel Büchele
bf6ca07d09 PluginDebugger
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17282352

fbshipit-source-id: 7f285156d1dd0468ebc607dc359cc1f30cfe2831
2019-09-11 03:04:53 -07:00
Daniel Büchele
0e6ba5c4e2 RatingButton
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17282354

fbshipit-source-id: 6d65a2735973cb46c133f2e38574d457e2aa484a
2019-09-11 03:04:53 -07:00
Daniel Büchele
ac120aa59c [strict[ ScreenCaptureButton
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17282357

fbshipit-source-id: 6ddd912978faa30195f59971f19d29d3ea79342b
2019-09-11 03:04:52 -07:00
Daniel Büchele
7e833b1d70 ShareSheet
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17282355

fbshipit-source-id: 37c47c068c5f49d10da949e628f6e9b397aabf7b
2019-09-11 03:04:52 -07:00
Daniel Büchele
a3af4a1cb1 UserAccount
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17282356

fbshipit-source-id: 66008627a7a4d5fce453a5b094051cd7767634d6
2019-09-11 03:04:52 -07:00
John Knox
bd35768590 Auto-focus on comment box and submit with enter key
Reviewed By: passy

Differential Revision: D17284726

fbshipit-source-id: 75c76b204668a9fcd770e68dbccad278dc81d8e4
2019-09-10 10:40:04 -07:00
John Knox
9624c803a1 Render predefined comments
Summary: These strings be provided by the api.

Reviewed By: passy

Differential Revision: D17282133

fbshipit-source-id: a818f915c0a21f84894a6073d2cc08669647caaa
2019-09-10 06:46:10 -07:00
John Knox
ce51458eb8 Say thanks :)
Summary: And also increase the time-to-disappear from 1s to 1.5s.

Reviewed By: passy

Differential Revision: D17281904

fbshipit-source-id: df0f3e1a40949f5a518bf05d89b6ac0ecf92c5bb
2019-09-10 05:37:19 -07:00
John Knox
8fff3fcf59 Apply some styles
Summary: It looks a lot better now, but the input is only single line, so entering more than one line would not be good right now.

Reviewed By: danielbuechele

Differential Revision: D17210091

fbshipit-source-id: 9313b6a67731cfa944394962cdc09be915a07720
2019-09-06 08:32:48 -07:00
John Knox
be22cc711a Use API to get prompt values
Summary: To keep it in sync with the JS implementation.

Reviewed By: danielbuechele

Differential Revision: D17208786

fbshipit-source-id: 8d89f33bfef22317266a0ad1e0c5689540d54f9e
2019-09-06 08:32:48 -07:00
John Knox
612cfd81ae Change feedback to use ITSR
Summary:
This isn't ready to release yet, it's still behind a GK so noone will see it.
There has been no styling applied to the popover so it looks bad but is fully functional.

What it also doesn't have yet:
* Get the prompt text from the API (including the predefined selectable comments)
* Check with the server whether it should pop up proactively, it's completely passive at the moment.

Reviewed By: passy

Differential Revision: D17206158

fbshipit-source-id: f1734f3d6bc555c860ebbaad7515d4675e1700cb
2019-09-06 08:32:48 -07:00
Benjamin Elo
4e71d9b1ea Removed flow-types file
Summary: This completes the navigation plugin ts migration by removing the flow types file.

Reviewed By: passy

Differential Revision: D17181605

fbshipit-source-id: b4931d28664e990c37dea229a7fe3f52685e5ee7
2019-09-05 05:49:30 -07:00
Daniel Büchele
89f20e4f02 fix z-index
Summary: z-index for titlebar was not high enough to cover the modal sheet

Reviewed By: jknoxville

Differential Revision: D17165223

fbshipit-source-id: 5ae30b6e55a1f69d653db509a08a8aa80a6f10fd
2019-09-04 10:06:02 -07:00
Pritesh Nandgaonkar
61c033daaf Set up the infra to show the static screen
Summary:
This makes the implementation of static view generic. Right now the only non-plugin view which is shown is the WelcomeScreen. The implementation it is hardcoded. I want to make it generic, so that we can show the bug request screen too.

This diff sets the default value of the `staticView` to `WelcomeScreen`, which will be set to null when the `selectedDevice` is set. And viceversa, it will be assigned back to `WelcomScreen`, when the `selectedDevice` is set to `null`

Reviewed By: danielbuechele

Differential Revision: D16965734

fbshipit-source-id: 69d700184f44d4e5ab531f5f8fc0e23bafa07e72
2019-09-03 08:42:50 -07:00
Benjamin Elo
8269d128d6 Migrate util/indexedDB to TypeScript
Summary: Migrated indexedDB.js to indexedDB.tsx

Reviewed By: danielbuechele

Differential Revision: D17133611

fbshipit-source-id: 819eccc12c8cbacee5e9cdf8fbfce4f5fbb08813
2019-09-02 04:13:37 -07:00
Daniel Büchele
5868946818 certificate provider
Summary: _typescript_

Reviewed By: passy

Differential Revision: D17096517

fbshipit-source-id: a6e69e8b9a82fe76bb1de51a3a93182f35f40b3f
2019-08-28 20:34:59 -07:00
Chaiwat Ekkaewnumchai
f9fa80d93b Expand/Collapse Plugin Sidebar v1
Summary:
* Change the way to determine recently used plugins
* Show all plugins if there are just a few hidden plugins
  * Not all of plugins in client list can be showed, so checking happens when rendering
* Add action to clear the history internally (for testing) (not sure if needed)

Reviewed By: danielbuechele

Differential Revision: D16965302

fbshipit-source-id: 6efeedac8c0fad7e89a96e7fc5ba9101d3516fe7
2019-08-23 04:42:06 -07:00
Daniel Büchele
0ec48d4fc9 index
Summary:
This converts the index file to TypeScript which is used as an export for all plugins. Alongside, I had to fix a couple of errors in various files to make sure everything works correctly.

For plugins using flow, we define an interface which uses the type definition for FlipperPlugin and types all UI components as `any`.

Reviewed By: passy

Differential Revision: D16936890

fbshipit-source-id: dacd9a63a82b9f0bbb530b06072186874cba7b6f
2019-08-22 10:02:27 -07:00
Benjamin Elo
7def9bb681 Moved screenshot functions into Device's class.
Summary:
I have moved the screenshot functions from ScreenCaptureButtons to the Device classes. I have slightly rewritten them so that they return a Promise which resolves to a Buffer. The Buffer can then be saved to a file or converted to a data Blob.

I have removed streaming and simply loaded the image into memory. Once the image is in memory it can be manipulated for various tasks i.e. written to a file, or displayed in the app.

iOS screenshots had to be rewritten. I now save the image to a temp folder, load it into the apps memory, and then remove the temp image.

Reviewed By: jknoxville

Differential Revision: D16939901

fbshipit-source-id: 3e39a5aeda8d48829ac5a8ff912a98f110341c07
2019-08-22 05:28:33 -07:00
Pascal Hartig
263b47f82f Add x-platform update indicator
Summary: Use the new multi-platform update endpoint to indicate when new updates are available for Linux or Windows.

Reviewed By: danielbuechele

Differential Revision: D16939899

fbshipit-source-id: 11c1dc0d4fd19362a1163c613a7b7116c5edf996
2019-08-22 02:32:56 -07:00
Chaiwat Ekkaewnumchai
ea7578aa16 Expand/Collapse Sidebar V0
Summary:
- Show all or show 5 LRU plugins
- Update when close/reopen app, collapse sidebar, or expand sidebar

Reviewed By: danielbuechele

Differential Revision: D16917950

fbshipit-source-id: 1e7edc86945162ea14e1cdaa89aa47d3defa4c7d
2019-08-21 08:50:34 -07:00
Chaiwat Ekkaewnumchai
afd7634fd6 Add Button to Expand or Collapse Left Panel
Summary:
- Add `show more` and `show less` button to expand and collapse
- The element to show depends on its usage rank from Flipper dashboard (manually copied)

Reviewed By: danielbuechele

Differential Revision: D16917952

fbshipit-source-id: fc37d5c640be33794694e302341fa08849b8f97f
2019-08-21 08:50:33 -07:00
Daniel Büchele
d0da0d66a5 main folder
Summary: _typescript_

Reviewed By: passy

Differential Revision: D16762117

fbshipit-source-id: b6ee32e0bb3fc686fc69cfccab703e2ef4989571
2019-08-15 03:33:06 -07:00