Commit Graph

7 Commits

Author SHA1 Message Date
Peter Argany 51e8e0b7e1 Fabric Picker styling support
Summary:
This adds support for `<Picker style={}/>` prop for text styling. It reuses most of conversion logic from BaseText. This means that it actually supports more styles than Paper Picker supported. (Paper picker only supported ~4 styles, this supports everything that Text supports, so 10+ styles).

The only tricky thing is that Picker supports multiple ways of setting text color. Both

      <Picker
        itemStyle={{color: '#008BD0'}} >
        <Picker.Item label="Java" value="java" />
        <Picker.Item label="JavaScript" value="js" />
      </Picker>

and

      <Picker>
        <Picker.Item label="Java" value="java" color={'#008BD0'} />
        <Picker.Item label="JavaScript" value="js" />
      </Picker>

technically work in Paper. I've decided to maintain this behaviour (since there's lots of product code callsites to both options).

Changelog: [iOS][Fabric] Fabric Picker support

Reviewed By: sammy-SC

Differential Revision: D23980319

fbshipit-source-id: e469a837e28af0ad97cf0e171df26ee19adff3ab
2020-10-13 11:19:29 -07:00
Peter Argany 251d5e1bbe Fabric Picker onChange event
Summary:
Implements `onChange` prop for `<Picker/>`.

Changelog: [iOS][Fabric] Fabric Picker support

Reviewed By: sammy-SC

Differential Revision: D23975689

fbshipit-source-id: 7aa81c203d420a8971e4309911a41ecfd377a318
2020-10-13 11:19:29 -07:00
Peter Argany c2e7ac1b35 Fabric picker item parsing
Summary:
This builds on previous diff to properly parse `<Picker.Item/>` into a cpp struct.

This fixes the dummy text and text color TODOs.

Changelog: [iOS][Fabric] Fabric Picker support

Reviewed By: sammy-SC

Differential Revision: D23964557

fbshipit-source-id: f42c6c9cf410bfc5e66ff078645b6378548481de
2020-10-13 11:19:29 -07:00
Peter Argany 38cb06cbd3 Initial commit for Fabric Picker
Summary:
This is a starting point for the handwritten Fabric Picker component. It is incomplete, and needs to be landed with the rest of the stack above it.

In general, this creates a new `ComponentView`, `ComponentDescriptor`, `ShadowNode`, `Props` and a few other boilerplate classes for Picker. A bunch of the logic in `ComponentView` was copied over from the Paper `RCTPicker` and `RCTPickerManager`.

What works in this diff:
- A `<Picker>` with items can be created in JS, and a corresponding `UIPicker` is created in native with placeholder text, default styling and the correct amount of items

What doesn't work yet (implemented in later diffs):
- Parsing items to use correct text and styling in native
- Events/commands

Reviewed By: sammy-SC

Differential Revision: D23941821

fbshipit-source-id: e049ca6004757fbd1361985644d5dbb8f53e1ce6
2020-10-13 11:19:29 -07:00
David Vacca 6e13ca3015 Integrate Android Picker into RN Tester OSS app
Summary:
This diff integrates AndroidPicker into RN Tester OSS app

changelog: [inernal] internal

Reviewed By: fkgozali

Differential Revision: D23199578

fbshipit-source-id: 7c34b0ee4887ffc15dbdffad464230b19f176fc8
2020-08-21 14:18:48 -07:00
David Vacca 7afb39d028 Move AndroidDialogPicker C++ files to make it compatible with RN OSS build system
Summary:
This diff moves AndroidDialogPicker C++ files to make it compatible with RN OSS build system.

changelog: [internal]

Reviewed By: fkgozali

Differential Revision: D23198857

fbshipit-source-id: 8fd4b7081f5f573946a6b9cd3fdc408488f91e13
2020-08-21 14:18:48 -07:00
David Vacca 3093010ea5 move fabric to ReactCommon/react/renderer
Summary:
This diff moves fabric C++ code from ReactCommon/fabric to ReactCommon/react/renderer
As part of this diff I also refactored components, codegen and callsites on CatalystApp, FB4A and venice

Script: P137350694

changelog: [internal] internal refactor

Reviewed By: fkgozali

Differential Revision: D22852139

fbshipit-source-id: f85310ba858b6afd81abfd9cbe6d70b28eca7415
2020-07-31 13:34:29 -07:00