Summary: Added in D14209157, but the JavaScript no longer ever calls this method.
Reviewed By: jknoxville
Differential Revision: D21290792
fbshipit-source-id: df1969d83f0dc096a24977c15c27100d2f2bdfc0
Summary: Currently subdescriptors are *always* rendered. Allow them to return `nil` to signal that they don't need to be rendered.
Reviewed By: cuva
Differential Revision: D21157249
fbshipit-source-id: 68a83424efc50723e1ec71c069feef8e10037671
Summary:
Before this diff, Flipper showed *leaf* views created by ComponentKit, but not any intermediate views. Now we show both.
A new node type `SKComponentMountedView` is used for this purpose. Its descriptor `SKComponentMountedViewDescriptor` mostly delegates to its view's descriptor, but redirects back into ComponentKit for children.
Reviewed By: Andrey-Mishanin
Differential Revision: D21130997
fbshipit-source-id: b3c12ea7cc1200962b3ba7c269c48d68b1809948
Summary: Component classes do not reflect the source of the component anymore.
Reviewed By: fabiomassimo
Differential Revision: D20595754
fbshipit-source-id: 645a63f78ee6aaaf75ac0c1e08bf67229a3f906b
Summary: It took me a few tries to understand what this was for.
Reviewed By: jknoxville
Differential Revision: D20462208
fbshipit-source-id: f6dac7836409c8d4ec1ffb90a74f632624fb68f7
Summary:
- Avoid holding lock while calling out to `send:withParams:`; it's hard to reason about whether we could trigger deadlock.
- Remove unnecessary `lastInvalidateMessage` ivar; we already ensure that we send at most one invalidate batch per 500ms by using `invalidateMessageQueued`.
- Misc code style items
Reviewed By: Andrey-Mishanin
Differential Revision: D20462193
fbshipit-source-id: 80f61e5a7ce5021e16ebc19a2ec40adfc46f9b92
Summary: All current implementations of `CKComponentHostingViewProtocol` *contain* a `CKInspectableView`, so there is no need for the hosting view itself to conform. This also simplifies the Flipper plugin.
Reviewed By: d16r
Differential Revision: D20457822
fbshipit-source-id: 472f80f5bb2ee507862487d076cfb0e3de6416fa
Summary: Change compiler flag "-Wno-unguarded-availability" to "-Wunguarded-availability" in order to make build time safety check for unsafe newly introduced api without guarding it with available conditional.
Reviewed By: priteshrnandgaonkar
Differential Revision: D20335903
fbshipit-source-id: b4b0e492a9244233f1bc3b5ba2a63c6415c92bb4
Summary: Adding the new "Identity" section to CK components' description.
Reviewed By: cuva
Differential Revision: D19948738
fbshipit-source-id: cbd9bc9c77b6f6503e10cfc75581ef4b94dd0247
Summary:
React Native v0.62.0’s template still uses iOS 9 as deployment target, bumping it to 10 this late in the release cycle is probably not a good idea, so instead I made this tiny change to make it iOS 9 compatible again.
⚠️ I made this change on top of the `v0.32.2` **tag**, as `master` was giving me a build failure and in any case it would be better to release _just_ this change as a patch release so the RN `v0.62.0-rc.3` release can go out without having to test Flipper as thoroughly again.
## Changelog
Make FlipperKit compatible with iOS 9 again.
Pull Request resolved: https://github.com/facebook/flipper/pull/874
Test Plan:
- `pod install` with a Podfile that has iOS 9 as its deployment target passes again.
- Building the Flipper Sample works.
- Building with a RN application created with the `v0.62.0-rc.3` template works.
Reviewed By: priteshrnandgaonkar
Differential Revision: D20307073
Pulled By: passy
fbshipit-source-id: 0dd02dfb810b7382c52ca81b8f1322f807fb3f29
Summary:
Original diff broke OSS flipper. Need a new OSS release of CK first
Original commit changeset: 3e7564b25610
Reviewed By: kfirapps
Differential Revision: D20304743
fbshipit-source-id: 08a56359a42bc56b576d212e7cf642197a064076
Summary: Use `component.className` in sonar for the layout inspector.
Reviewed By: kfirapps
Differential Revision: D20184486
fbshipit-source-id: 3e7564b2561016ee59f3b1fc9d21313e068bacb3
Summary:
The target selector was broken on iOS. The overlay view which has the gesture recognizer, was never added to the window, due to which the gestures were not registered and the feature broke.
This diff adds the overlay view in the window object as the subview and then discards it in its view descriptor as otherwise we will capture all our touches in this view.
This was the most popular bug in our research trip and almost everyone reported it.
Reviewed By: fabiomassimo
Differential Revision: D20225594
fbshipit-source-id: af4041859d7e662152b2575d1eb258dd0c2d990e
Summary: Adding the new "Identity" section to CK root views' description.
Reviewed By: cuva
Differential Revision: D19948784
fbshipit-source-id: f5e7fe51afd387a476f6500db32b8b5149594007
Summary:
This diff fixes the warnings raised from FlipperKit. Also this diff updates the deployement target of FlipperKit to iOS 10. Even wilde assumes the min deployment OS version to be iOS 10. In layout plugin we use [UIAccessibiltyTraiTabBar](https://developer.apple.com/documentation/uikit/uiaccessibility/uiaccessibilitytraits/1648592-tabbar), which assumes iOS 10 and above.
Partially fixes https://github.com/facebook/flipper/issues/803
Still there are some warnings which are coming from the dependencies outside of Flipper.
Reviewed By: passy
Differential Revision: D19941558
fbshipit-source-id: 31809fedb9aa297bc318b5af72e29e8444f0142f
Summary:
This diff runs CLANGFORMAT lint on plugins. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Ran `arc lint -a --paths-cmd "find ./iOS/Plugins -type f" --verbose`
Reviewed By: passy
Differential Revision: D19942173
fbshipit-source-id: 8b975b0a344df073b02d69cd1f9ee5629af2799d
Summary: Fixes the broken Layout plugin in wilde. Before this fix it will just show an empty screen in the layout plugin.
Reviewed By: jknoxville
Differential Revision: D19621517
fbshipit-source-id: e10078248b95b93c6b9c87ccf4508628b6ad86bb
Summary: Using just the scope identifier for the root component is not sufficient when it doesn't have a scope. Solve this by prepending the scope root identifier to the parent identifier.
Reviewed By: fabiomassimo
Differential Revision: D19600721
fbshipit-source-id: d90f9ffd7ae369c76316cebc4ef792626a4584b7
Summary: This diff removes the margin property from the CKFlexboxComponetn style, as it was never working properly.
Reviewed By: Andrey-Mishanin
Differential Revision: D19251856
fbshipit-source-id: eb8e448a68d2e0ff3cd6726c40af0267fced96ea
Summary: In some cases this can cause a retain cycle.
Reviewed By: priteshrnandgaonkar
Differential Revision: D18297780
fbshipit-source-id: c60abdcaad9fd94c457647509aec0519042801e4
Summary:
- Introduce new base protocol `CKMountable`
- Contains Layout & Mount methods that have been extracted from `CKComponent`
- This will allows us to introduce a new lighter version of `CKComponent`, which doesn't rely on Scope/State/Controllers/etc
- Refactor `CKComponentLayout` to work with `CKMountable` instead of `CKComponent`, which will allows us to interop between `CKComponent` and a new type of components.
- Refactor the codebase to support this change
Reviewed By: kevin0571
Differential Revision: D17668253
fbshipit-source-id: 13db5ff4acb37b338e291ca2dd7d67cd25dbc6d2
Summary: Moving FlipperKitLayoutPlugin/FlipperKitPluginUtils/SKHighlightOverlay to shared folder, so Layout and WorkingRange plugins can depend on it
Reviewed By: kevin0571
Differential Revision: D17156396
fbshipit-source-id: 3f17371f2ab4818924d61e6cfb243f60ad1f2892
Summary: Size is passed as a prop to every `CKComponent` and `CKFlexboxChild`. It is useful to see where it was set exactly
Reviewed By: kevin0571
Differential Revision: D16688496
fbshipit-source-id: 5f8dc39a967ab2d7d89d6a37a8152aa6b59db220
Summary:
Live editing is now working faster.
We had an issue that it took about 5 seconds to see the view changed and 10 seconds to see tha value in the flipper, now it's done immidiately
Reviewed By: priteshrnandgaonkar
Differential Revision: D16500961
fbshipit-source-id: 742ce628a887bab06c1b883d9710c477af2508e7
Summary: objc_msgSend_stret isn't available when building for 64 bit devices so this line breaks. objc_msgSend is the correct function to call in 64 bit, but Flipper doesn't run for devices so its fine either way.
Reviewed By: jasonhotsauce
Differential Revision: D16502377
fbshipit-source-id: cfc20880bcccd086dc34fad74a6eef2c9a17cb17
Summary:
CKCenterLayoutComponent's options are now live editable
P.S. Now it takes some time to see the view changed and the new value of everything on flipper side
Reviewed By: kevin0571
Differential Revision: D16458390
fbshipit-source-id: a5344253641633dd8c985549c2d9bc6f64da1f74
Summary:
CKRatioLayoutComponent's ratio is now live editable
P.S. Now it takes some time to see the view changed and the new value of everything on flipper side
Reviewed By: kevin0571
Differential Revision: D16458380
fbshipit-source-id: 0f06426477b6747f6ad71716dc66e69316b23208
Summary:
CKFlexboxComponent's insets are now live editable
P.S. Now it takes some time to see the view changed and the new value of everything on flipper side
Reviewed By: kevin0571
Differential Revision: D16379743
fbshipit-source-id: 69bc9b7cb6b2103ff34b5c4489b240ac7562a85d
Summary:
CKInsetComponent's insets are now live editable
P.S. Now it takes some time to see the view changed and the new value of insets on flipper side
Reviewed By: kevin0571
Differential Revision: D16338109
fbshipit-source-id: 9c6648e72d55a09df9d715637e82901d1b5dcec8
Summary: Preparation for making components live editable
Reviewed By: kevin0571
Differential Revision: D16379961
fbshipit-source-id: d0ea3d753eb588fe7b55f2345124427b4a5a58b5
Summary: Theadsafe Data Storage for new insets in CKInsetComponent
Reviewed By: kevin0571
Differential Revision: D16338091
fbshipit-source-id: 3b77652a4d08cfebce115a606af3fc3440a1aca0
Summary:
Fixed bug with live editing
Previously if the meaining of the value was changed in flipper you receive back same value as it was
Now you see correct changed value
Reviewed By: priteshrnandgaonkar
Differential Revision: D16162141
fbshipit-source-id: 1a68ea64603171e952382c5093470d2cc12f7bbe
Summary: Added a possibility to search for the text not only in name and id of components but also in text for all components, that conforms to a protocol <SKTextSearchable>
Reviewed By: priteshrnandgaonkar
Differential Revision: D16108297
fbshipit-source-id: 31da4ac6762c487ef644d62c9576d9eff43e8cd4
Summary:
`/*` is the standard throughout open source code. For example, Firefox uses single /*: https://hg.mozilla.org/mozilla-central/file/21d22b2f541258d3d1cf96c7ba5ad73e96e616b5/gfx/ipc/CompositorWidgetVsyncObserver.cpp#l3
In addition, Rust considers `/**` to be a doc comment (similar to Javadoc) and having such a comment at the beginning of the file causes `rustc` to barf.
Note that some JavaScript tooling requires `/**`. This is OK since JavaScript files were not covered by the linter in the first place, but it would be good to have that tooling fixed too.
Reviewed By: zertosh
Differential Revision: D15640366
fbshipit-source-id: b4ed4599071516364d6109720750d6a43304c089
Summary: Importing the extensions fixes the fact that responds to selector was returned false for `sonar_additionalDataOverride` selector
Reviewed By: priteshrnandgaonkar
Differential Revision: D15535414
fbshipit-source-id: ab465a1aab36cccd2129c5b0c29a7872dfd65015
Summary:
This solves the watch tab crash discussed here D15266478, which got reverted.
Bug: [Here](diffusion/FBS/browse/master/xplat/sonar/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.mm;57c596a566bec49e343af51b93df65ed1377a2b9$338), when the node is `CKComponentRootView` the `[descriptor childForNode: node atIndex: i]` returns `SKComponentLayoutWrapper`. In the next iteration of the loop, node is `SKComponentLayoutWrapper`, the `[descriptor childForNode: node atIndex: i]` returns `CKComponentRootView`, and hence the infinite recursion
I also tested T44431259, it is not regressed.
Reviewed By: passy
Differential Revision: D15451821
fbshipit-source-id: 25f10112f5f52bb1fa964316a4c7e91a3b29156d
Summary: This resolves a crash related to the contents of certain CKComponents, which was apparently introduced by D15266478
Differential Revision: D15406260
fbshipit-source-id: efd1ad1a1bcb41451c56b74c240ad2dca069deb0
Summary:
BUG:
{F158264042}
Context: The code entered an infinite loop till it crashed. In the implementation of `- (SKSearchResultNode *)searchForQuery:(NSString *)query fromNode:(id)node withElementsAlreadyAdded:(NSMutableSet<NSString *> *)alreadyAdded`, we recurse through the child. In the case when the view was `CKRootComponent` it created a `SKComponentLayoutWrapper` in the call to `[descriptor childForNode: node atIndex: i];`. This wrapper's descriptor used to return the very same view from which it was created when it's children were asked. So this led to an infinite loop.
Reviewed By: kfirapps
Differential Revision: D15266478
fbshipit-source-id: 8035209746b7cb4b8773e2fcbdd4c0a148191304
Summary: Add the affiliates bit that the linter is checking for.
Reviewed By: jknoxville
Differential Revision: D15164826
fbshipit-source-id: 500ffe89ec0c2fd3acfbc374408d16a337cecfa4