Commit Graph

21 Commits

Author SHA1 Message Date
Anton Kastritskiy
bc5ad749f7 fix console stack traces for errors from plugins
Summary:
We had our stack traces broken for a long time. They always pointed at the bundle.js file. With this change the stack traces **in the console** will be pointing at the actual source files. This will save a lot of time for engineers instead of manually looking for the source of errors.

Why this didn't work before?

When we were calling `console.error(error.toString())` the browser was not applying sourcemaps to the stacktrace as it interpreted as a random string. However, when you pass an actual instance of Error constructor, the sourcemaps will be applied and we get correct stack traces to the source files.

I looked at the code of the Logger and it is already handles the Error instances, so I think this should be fine also for the logs that go to scuba. CC passy

Reviewed By: LukeDefeo, passy

Differential Revision: D49275025

fbshipit-source-id: 2addc601f45622e35890d7d0e1992f4bca41a338
2023-09-14 09:40:09 -07:00
Michel Weststrate
50f50fa46c fall back to larger images if requested size is not available
Summary: This diff follows up on the previous one, by trying a larger icon size if the original requested icon size was missing.

Reviewed By: lblasa

Differential Revision: D46556076

fbshipit-source-id: 4a078088aa27390f247e39afeda4b1df261d8b30
2023-06-08 07:31:34 -07:00
Andrey Goncharov
b3307baafe Make isLoggedIn report user value instead of bool
Summary: It makes little sense to hide this info from developers. It was also requested by antonk52

Reviewed By: LukeDefeo

Differential Revision: D44631235

fbshipit-source-id: 1756c5ca2a95b2f815f8c4336621d3c057b704f2
2023-04-04 05:26:31 -07:00
Lorenzo Blasa
cb11b360fc Use theme colours
Summary:
Stacktrace component was not properly displaying on Light/Dark mode as it was using colours not from the theme.

This change addresses that.

Reviewed By: ivanmisuno

Differential Revision: D44537750

fbshipit-source-id: 1d95313bfc9b5ef386864fa230348b76dce6d648
2023-03-30 08:43:54 -07:00
Andrey Goncharov
35c145463a Limit notification length
Summary: See https://fb.workplace.com/groups/flippersupport/permalink/1593262167821102/

Reviewed By: antonk52

Differential Revision: D44459787

fbshipit-source-id: ef14e560c523fddf4f815d0faafa37e44dc416b8
2023-03-28 07:00:20 -07:00
Andrey Goncharov
ccbc4770f5 Log component stack if a component crashes
Summary: Currently, component crashes are missing component stack traces. Without them, crash bot reports are impossible to debug.

Reviewed By: ivanmisuno

Differential Revision: D44331421

fbshipit-source-id: 0ebd160b4f2f64db40dae29dd9fc350d8d28d802
2023-03-23 05:16:54 -07:00
Andrey Goncharov
10e415655c Fix table flickering without hiding content
Summary:
Followup of D39772453 (2437aeb3e9)
Fixes https://fb.workplace.com/groups/flippersupport/permalink/1518236858656967/

1. Stop using clientWidth and offsetWidth because they have rounding errors
2. Since step 1 did not resolve the issue entirely (for some weird reason I do not really have the capacity now to investigate - my bet it is a rounding error when you sum up doubles) set offset of the table to "scroll" instead of "auto". As a result, it starts rendering space for the scrollbars all the time, but since Flipper is a dev tool it should be fine

Reviewed By: antonk52

Differential Revision: D41839402

fbshipit-source-id: cf50eb1600b692d3970003fd1b45b953ee45e3df
2022-12-09 04:06:58 -08:00
Andrey Goncharov
d1158e2d02 Configure eslint to prevent imports from nested paths of externally provided modules
Summary: We have a list of modules that we do not bundle with the plugins, but provide externally to them from Flipper. For the mechanism to work correctly, we have to stop importing from nested paths of these modules.

Reviewed By: mweststrate

Differential Revision: D39776237

fbshipit-source-id: 06eae9bf9d5b11b48d2720bf592bfea749773847
2022-09-26 09:42:33 -07:00
Andrey Goncharov
2437aeb3e9 Fix AutoResizer flickering
Summary: https://github.com/bvaughn/react-virtualized/issues/773

Differential Revision: D39772453

fbshipit-source-id: 613b809201d7dca34a0322c0cc65468f2fba2b08
2022-09-23 12:08:09 -07:00
Andrey Goncharov
17ab7a86ef Use getRenderHost from flipper-frontned-core in flipper-ui-core
Summary: See D37139129

Reviewed By: lblasa

Differential Revision: D37236435

fbshipit-source-id: 927e9f741bfedb65165f5d24f0acfb775925cdc7
2022-06-20 12:18:40 -07:00
Muzammil Mahmood
ec6f732b09 Prevent TypeError exception on missing column.
Summary: Fix a TypeError exception in TableHead.tsx when an ordered column is not present in the row.

Reviewed By: aigoncharov

Differential Revision: D36497494

fbshipit-source-id: 18c961468fc2bc3cca16290fd9e6c973e5e18ebf
2022-05-20 02:54:00 -07:00
Simek
4b0091df0f fix Plugins table UI glitch in dark mode, add column name (#3332)
Summary:
Same as Settings modal, the Plugin Manager table used in Plugins modal includes the UI glitch in dark mode due to overflow setting. This PR fixes that and also adds missing column caption in "Install Plugins" table.

I have chosen `Action` as a title but this can be altered, I have no strong preference in there. The goal was to improve the clarity and also improve the context menu content (where user can show/hide columns).

## Changelog

* fix Plugins table UI glitch in dark mode, add column name

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

Test Plan:
The change has been testes by running the desktop Flipper app locally from source.

## Preview (before & after)
<img width="396" alt="Screenshot 2022-01-23 at 16 19 02" align="left" src="https://user-images.githubusercontent.com/719641/150685739-e2047e70-de14-4801-ac5a-0fc45a6ea476.png">
<img width="396" alt="Screenshot 2022-01-23 at 16 19 31" src="https://user-images.githubusercontent.com/719641/150685735-3de8b7a2-ea3f-489a-b1f8-7af73f0a5225.png">

Reviewed By: aigoncharov

Differential Revision: D33738705

Pulled By: lblasa

fbshipit-source-id: 704fe40f26d424c62a9bbc3e73132a0026f2e8b8
2022-01-24 03:56:59 -08:00
Andres Suarez
79023ee190 Update copyright headers from Facebook to Meta
Reviewed By: bhamodi

Differential Revision: D33331422

fbshipit-source-id: 016e8dcc0c0c7f1fc353a348b54fda0d5e2ddc01
2021-12-27 14:31:45 -08:00
Michel Weststrate
d9488f06ac Clean up flipper-ui-core deps
Summary: Noticed that flipper-ui-core bundled quite some unused / node based deps. No longer

Reviewed By: aigoncharov

Differential Revision: D33184489

fbshipit-source-id: a180f9b8f3eb00ffa6c91e0cca654d4b9b609692
2021-12-17 10:04:23 -08:00
Michel Weststrate
5df34a337c Unshare global types
Summary:
This diff adds `types` fields on the compiler config for every project. This way we can make sure that for example node types and packages are not available in flipper-ui-core. Without an explicit types field, all types would be shared between all packages, and implicitly included into the compilation of everything. For the same reason `types/index.d.ts` has been removed, we want to be intentional on which types are being used in which package.

This diff does most of the work, the next diff will fine tune the globals, and do some further cleanup.

As an alternative solution I first tried a `nohoist: **/node_modules/types/**` and make sure every package list explicitly the types used in package json, which works but is much more error prone, as for example two different react types versions in two packages will cause the most unreadable compiler error due to the types not being shared and not literally the same.

Reviewed By: lawrencelomax

Differential Revision: D33124441

fbshipit-source-id: c2b9d768f845ac28005d8331ef5fa1066c7e4cd7
2021-12-17 07:36:07 -08:00
Michel Weststrate
accef856fc Remove remaining Node imports from core
Summary:
Removed remaining path / fs imports from Flipper core.

`expand-tide` needed replacement too, but noticed that it never actually rewrites paths since all use cases were already using absolute paths, so removed it instead.

Reviewed By: aigoncharov

Differential Revision: D33017654

fbshipit-source-id: e12f66ef68b5f9e4279411c94445a2fb87249e9a
2021-12-13 05:48:17 -08:00
Michel Weststrate
2b2cbb1103 Move offline icon storage to app/
Summary:
This diff splits Facebook management into a ui-core and electron part:

* Cleaned up code and introduces a uniform Icon type to describe a requested icon
* Computing icon urls is done in the ui-core
* Introduced a RenderHost hook that can transform the request icon into a different url, in this case, a url to load icons from disk in production builds

For the browser UI, the urls are currently no rewritten since we have only dev builds (which always used only FB urls already). We could do the same rewrite in the future and download the static assets during build time. But for now this means that in the browser implementation we depend on normal browser caching, with the biggest downside that icons might not appear if the user has no internet connections.

With this change we lost our last usage of staticPath computations in ui-core

Reviewed By: aigoncharov

Differential Revision: D32767426

fbshipit-source-id: d573b6a373e649c7dacd380cf63a50c2dbbd9e70
2021-12-08 04:30:57 -08:00
Michel Weststrate
058785a509 Remove remaining process.env
Summary: Per title

Reviewed By: passy

Differential Revision: D32721205

fbshipit-source-id: 8e8a7fcac7d73f32d7fb59f852a8099cfe20e542
2021-12-08 04:30:56 -08:00
Andrey Goncharov
225a2a7e34 Refactor Stella plugin
Summary:
1. Replace old FileSelector with the new FileSelector
2. Remove showOpenDialog from FlipperLib

Reviewed By: mweststrate

Differential Revision: D32667103

fbshipit-source-id: be8da034c2695f83b397b6c7d35bc6aee78d66e5
2021-11-26 08:30:13 -08:00
Andrey Goncharov
2c7bc0a952 Remove fs.write from plugins
Summary:
1. Remove "fs.writeFile" from plugins
2. Remove "showSaveDialog" from "FlipperLib"
3. Add "exportFile" to "FlipperLib" and "RenderHost"

As we are going to use Flipper in a browser as well, instead of providing low-level abstraction like "showSaveDialog", we should provide more high-level ones like "exportFile". In browsers it does not make too much sense to expose "showSaveDialog" as there is not way to use the returned file path to write to it.
In the end, "exportFile" is going to trigger a file download for browsers and show the save dialog and write to the returned file path for Electron.

Reviewed By: mweststrate

Differential Revision: D32492149

fbshipit-source-id: 0673119bdb7670a5872f5982c7d82dfc44eb7906
2021-11-18 09:15:30 -08:00
Michel Weststrate
7e50c0466a Move app/src (mostly) to flipper-ui-core/src
Summary:
This diff moves all UI code from app/src to app/flipper-ui-core. That is now slightly too much (e.g. node deps are not removed yet), but from here it should be easier to move things out again, as I don't want this diff to be open for too long to avoid too much merge conflicts.

* But at least flipper-ui-core is Electron free :)
* Killed all cross module imports as well, as they where now even more in the way
* Some unit test needed some changes, most not too big (but emotion hashes got renumbered in the snapshots, feel free to ignore that)
* Found some files that were actually meaningless (tsconfig in plugins, WatchTools files, that start generating compile errors, removed those

Follow up work:
* make flipper-ui-core configurable, and wire up flipper-server-core in Electron instead of here
* remove node deps (aigoncharov)
* figure out correct place to load GKs, plugins, make intern requests etc., and move to the correct module
* clean up deps

Reviewed By: aigoncharov

Differential Revision: D32427722

fbshipit-source-id: 14fe92e1ceb15b9dcf7bece367c8ab92df927a70
2021-11-16 05:29:21 -08:00