Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1/2 TextInput accessibilityErrorMessage (Talkback, Android) #33468

Closed
wants to merge 160 commits into from

Commits on Mar 4, 2022

  1. Configuration menu
    Copy the full SHA
    ad9dc3e View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2022

  1. draft

    fabOnReact committed Mar 6, 2022
    Configuration menu
    Copy the full SHA
    431a9d5 View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2022

  1. Configuration menu
    Copy the full SHA
    a4ef7a7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    60b6c9b View commit details
    Browse the repository at this point in the history
  3. applying same solution from PR 28952

    calling setError does not display an error if the TextInput is a
    controlled component.
    
    https://reactnative.dev/docs/textinput#value
    >The value to show for the text input. TextInput is a controlled component, which means the native value will be forced to match this value prop if provided. For most uses, this works great, but in some cases this may cause flickering - one common cause is preventing edits by keeping value the same. In addition to setting the same value, either set editable={false}, or set/update maxLength to prevent unwanted edits without flicker.
    
    ```javascript
    function ErrorExample(): React.Node {
      const [text, setText] = React.useState('');
      const [error, setError] = React.useState(null);
      return (
        <TextInput
          errorMessage={error}
          onChangeText={newText => {
            setText(newText);
            setError(newText === 'error' ? 'this input is invalid' : null);
          }}
          value={text}
        />
      );
    }
    ```
    
    The solution from pr facebook#28952
    fixes this issue and forces the update by invalidating the TextInput
    instance which triggers onAttachedToWindow()
    
    To be noticed that there is logic to trigger this updates in the
    ReactTextInputManager
    https://github.com/fabriziobertoglio1987/react-native/blob/60b6c9be8e811241039a6db5dc906a0e88e6ba82/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java#L1291-L1292
    
    The PR was previously accepted and could be an acceptable solution for
    this issue
    fabOnReact committed Mar 12, 2022
    Configuration menu
    Copy the full SHA
    fb30702 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f22e1f3 View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2022

  1. Configuration menu
    Copy the full SHA
    caab17c View commit details
    Browse the repository at this point in the history
  2. Android NDK: Module react_codegen_rncore depends on undefined modules…

    …: folly_json
    
    ```
      /home/fabrizio/Android/Sdk/ndk/21.4.7075529/build/core/build-binary.mk:651: Android NDK: Module react_codegen_rncore depends on undefined modules: folly_json
      /home/fabrizio/Android/Sdk/ndk/21.4.7075529/build/core/build-binary.mk:664: *** Android NDK: Note that old versions of ndk-build silently ignored this error case. If your project worked on those versions, the missing libraries were not needed and you can remove those dependencies from the module to fix your build. Alternatively, set APP_ALLOW_MISSING_DEPS=true to allow missing dependencies.    .  Stop.
    ```
    
    I applied solution in https://stackoverflow.com/a/48897133/7295772
    but now caused this error
    
    ```
      make: *** [/home/fabrizio/Android/Sdk/ndk/21.4.7075529/build/core/build-binary.mk:725: /home/fabrizio/.gradle/build/react-native-github/ReactAndroid/intermediates/cxx/Debug/83t124q6/obj/local/x86/libreact_codegen_rncore.so] Error 1
      make: *** Waiting for unfinished jobs....
    ```
    
    Full Logs
    
    ```
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':ReactAndroid:configureNdkBuildDebug[x86]'.
    > [CXX1405] error when building with ndkBuild using /home/fabrizio/Documents/sourcecode/opensource/react-native/ReactAndroid/src/main/jni/react/jni/Android.mk: Build command failed.
      Error while executing process /home/fabrizio/Android/Sdk/ndk/21.4.7075529/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/fabrizio/Documents/sourcecode/opensource/react-native/ReactAndroid/src/main/jni/react/jni/Android.mk NDK_GRADLE_INJECTED_IMPORT_PATH=/home/fabrizio/.gradle/build/react-native-github/ReactAndroid/.cxx/Debug/83t124q6/prefab/x86 APP_ABI=x86 NDK_ALL_ABIS=x86 NDK_DEBUG=1 APP_PLATFORM=android-21 NDK_OUT=/home/fabrizio/.gradle/build/react-native-github/ReactAndroid/intermediates/cxx/Debug/83t124q6/obj NDK_LIBS_OUT=/home/fabrizio/.gradle/build/react-native-github/ReactAndroid/intermediates/cxx/Debug/83t124q6/lib NDK_APPLICATION_MK=/home/fabrizio/Documents/sourcecode/opensource/react-native/ReactAndroid/src/main/jni/Application.mk THIRD_PARTY_NDK_DIR=/home/fabrizio/.gradle/build/react-native-github/ReactAndroid/third-party-ndk REACT_COMMON_DIR=/home/fabrizio/Documents/sourcecode/opensource/react-native/ReactAndroid/../ReactCommon REACT_GENERATED_SRC_DIR=/home/fabrizio/.gradle/build/react-native-github/ReactAndroid/generated/source REACT_SRC_DIR=/home/fabrizio/Documents/sourcecode/opensource/react-native/ReactAndroid/src/main/java/com/facebook/react APP_STL=c++_shared -j8 APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}
    
      /home/fabrizio/Android/Sdk/ndk/21.4.7075529/build/core/build-binary.mk:651: Android NDK: Module react_codegen_rncore depends on undefined modules: folly_json
      /home/fabrizio/Android/Sdk/ndk/21.4.7075529/build/core/build-binary.mk:664: *** Android NDK: Note that old versions of ndk-build silently ignored this error case. If your project worked on those versions, the missing libraries were not needed and you can remove those dependencies from the module to fix your build. Alternatively, set APP_ALLOW_MISSING_DEPS=true to allow missing dependencies.    .  Stop.
    ```
    
    ```
      ../ReactCommon/react/nativemodule/core/../../../react/renderer/core/RawValue.h:249: error: undefined reference to 'folly::dynamic::size() const'
      /home/fabrizio/.gradle/build/react-native-github/ReactAndroid/third-party-ndk/folly/folly/dynamic-inl.h:356: error: undefined reference to 'folly::dynamic::operator=(folly::dynamic&&)'
      ../ReactCommon/react/nativemodule/core/../../../react/renderer/core/RawValue.h:249: error: undefined reference to 'folly::dynamic::size() const'
      clang++: error: linker command failed with exit code 1 (use -v to see invocation)
      make: *** [/home/fabrizio/Android/Sdk/ndk/21.4.7075529/build/core/build-binary.mk:725: /home/fabrizio/.gradle/build/react-native-github/ReactAndroid/intermediates/cxx/Debug/83t124q6/obj/local/x86/libreact_codegen_rncore.so] Error 1
      make: *** Waiting for unfinished jobs....
    ```
    fabOnReact committed Mar 16, 2022
    Configuration menu
    Copy the full SHA
    06c4908 View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2022

  1. Revert "Android NDK: Module react_codegen_rncore depends on undefined…

    … modules: folly_json"
    
    This reverts commit 06c4908.
    fabOnReact committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    d1b6182 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3092ac8 View commit details
    Browse the repository at this point in the history
  3. restore original example

    fabOnReact committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    e521859 View commit details
    Browse the repository at this point in the history
  4. update example

    fabOnReact committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    f92f843 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d94f343 View commit details
    Browse the repository at this point in the history
  6. Error onBlur example

    fabOnReact committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    6bd7240 View commit details
    Browse the repository at this point in the history
  7. draft examples

    fabOnReact committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    202292a View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2820a95 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    b8846c9 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    bf75148 View commit details
    Browse the repository at this point in the history
  11. add errorMessage to ReactTextUpdate and maybeSetErrorMessage

    allow to display error message on TextInput triggered in a onChangeText
    callback. Fixes issue explained in:
    fabOnReact/react-native-notes#12 (comment)
    
    Related links:
    fabOnReact/react-native-notes#12 (comment)
    d3d54e1
    fabOnReact committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    5e9b4c3 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    97c2dff View commit details
    Browse the repository at this point in the history
  13. rename android_errorMessage to errorMessageAndroid

    Following same implementation used with underlineColorAndroid
    https://github.com/fabriziobertoglio1987/react-native/blob/15810e96d90e18dbd424666338fdec0127d403ed/Libraries/Components/TextInput/TextInput.js#L470
    https://github.com/fabriziobertoglio1987/react-native/blob/15810e96d90e18dbd424666338fdec0127d403ed/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js#L203
    
    While with other components (for example prop android_ripple), we use
    the android_ prefix to denote platform specific props.
    facebook#29157 (comment)
    https://github.com/fabriziobertoglio1987/react-native/blob/15810e96d90e18dbd424666338fdec0127d403ed/Libraries/Components/Pressable/Pressable.js#L177
    
    In the case of TextInput we already have Platform Logic that detects
    Android/iOS platform.
    https://github.com/fabriziobertoglio1987/react-native/blob/15810e96d90e18dbd424666338fdec0127d403ed/Libraries/Components/TextInput/TextInput.js#L1268
    
    For this reason TextInput component does not use android_ props and
    instead uses this naming convention underlineColorAndroid.
    
    To be noted that the prop underlineColorAndroid is passed to both iOS
    and Android version, while other props have platform specific logic for
    android and iOS.
    https://github.com/fabriziobertoglio1987/react-native/blob/15810e96d90e18dbd424666338fdec0127d403ed/Libraries/Components/TextInput/TextInput.js#L1334
    https://github.com/fabriziobertoglio1987/react-native/blob/15810e96d90e18dbd424666338fdec0127d403ed/Libraries/Components/TextInput/TextInput.js#L1293
    
    Example of a prop that have a specific value on Android and is different
    from iOS
    https://github.com/fabriziobertoglio1987/react-native/blob/15810e96d90e18dbd424666338fdec0127d403ed/Libraries/Components/TextInput/TextInput.js#L1271
    
    I decided to follow the same solution used in underlineColorAndroid.
    fabOnReact committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    31bfa40 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    394f794 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    3a8347a View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    f39e5f1 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    60bc4e3 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    3c48da3 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2022

  1. adding errorMessageAndroid to ParagraphAttributes (fabric AndroidText…

    …Input state)
    
    - remove errorMessage from ReactTextUpdate constructor
      mErrorMessage is set with buildReactTextUpdateFromState
    - errorMessage is part of the AndroidTextInputState.cpp field
      ParagraphAttributes.errorMessageAndroid
    - maybeSetErrorMessage is triggered from c++ state changes of text
    
    Relevant Links
    
    facebook#33468 (review)
    fabOnReact/react-native-notes#12 (comment)
    fabOnReact/react-native-notes#12 (comment)
    
    fabOnReact/react-native-notes#12 (comment)
    fabOnReact/react-native-notes#12 (comment)
    fabOnReact/react-native-notes#12 (comment)
    fabOnReact committed Mar 30, 2022
    Configuration menu
    Copy the full SHA
    aca0d99 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2022

  1. Configuration menu
    Copy the full SHA
    37f0004 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0708d07 View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2022

  1. using std::optional<std::string>

    rawProps collection has null value for the key. This is the special case which means that the prop was removed from the particular component instance and we have to reset it to some default value (which is not the same as sourceValue). Now the default value of the defaultValue (sic!) argument is a default value of the type of the value (which may be different from logical default value).
    
    fabOnReact/react-native-notes#12 (comment)
    fabOnReact/react-native-notes#12 (comment)
    fabOnReact committed Apr 1, 2022
    Configuration menu
    Copy the full SHA
    9df9484 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    17852df View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    add6198 View commit details
    Browse the repository at this point in the history
  4. adding Nullable flag

    fabOnReact committed Apr 1, 2022
    Configuration menu
    Copy the full SHA
    3d5100c View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2022

  1. Configuration menu
    Copy the full SHA
    53fe1c0 View commit details
    Browse the repository at this point in the history
  2. use value_or instead of pointer *paragraphAttributes.errorMessageAndroid

    >A pointer however, is a variable that stores the memory address as its value.
    >A pointer variable points to a data type (like int or string) of the same type, and is created with the * operator. The address of the variable you're working with is assigned to the pointer:
    https://www.w3schools.com/cpp/cpp_pointers.asp
    
    The solution was copied by allowFontScaling
    ```c++
      if (textAttributes.allowFontScaling.has_value()) {
        _textAttributes("allowFontScaling", *textAttributes.allowFontScaling);
      }
    ```
    https://github.com/fabriziobertoglio1987/react-native/blob/53fe1c0d12b7d711819d3b79aac6eb99568cf86d/ReactCommon/react/renderer/attributedstring/conversions.h#L868
    
    to solve the fat that folly::object() takes two parameters key and
    value. The value can not be of type std::optional<std::string>
    
    https://github.com/facebook/folly/blob/main/folly/docs/Dynamic.md
    
    conversion to string with
    folly::to<std::string>(paragraphAttributes.errorMessageAndroid) does not
    work.
    
    This solution first checks if paragraphAttributes.errorMessageAndroid is
    not null with method has_value and then used value_or("").
    fabOnReact committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    6c0f432 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0ee77ed View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2022

  1. Configuration menu
    Copy the full SHA
    84edc00 View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2022

  1. Configuration menu
    Copy the full SHA
    299eba6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    27dd208 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2e660d2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e1c8f54 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d4a390b View commit details
    Browse the repository at this point in the history
  6. rename prop in .xml files

    fabOnReact committed Apr 8, 2022
    Configuration menu
    Copy the full SHA
    f29a21c View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    79c5e4f View commit details
    Browse the repository at this point in the history
  8. adding comment

    fabOnReact committed Apr 8, 2022
    Configuration menu
    Copy the full SHA
    cc602e0 View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2022

  1. Paper maybeSetErrorMessage calls errorMessage on every prop updates

    maybeSetErrorMessage is called every time we change the errorMessageAndroid TextInput prop. This causes issues when triggering the errorMessage outside of onChangeText callback. Could not yet reproduce on fabric.
    fabOnReact committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    4ba33c3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6f69758 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4df9d95 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    99b4a24 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1365f50 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3a1ef4a View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    994089c View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2022

  1. fix annoucement delayed to next character

    Issue documented in comment facebook#33468 (comment)
    
    calling requestSendAccessibilityEvent fixes the issue
    the logic was taken from TextView#setError which calls notifyViewAccessibilityStateChangedIfNeeded
    https://github.com/aosp-mirror/platform_frameworks_base/blob/1ac46f932ef88a8f96d652580d8105e361ffc842/core/java/android/widget/TextView.java#L7284
    
    after some testing, calling the requestSendAccessibilityEvent on the
    parent view fixed the issue
    
    ```
    mParent.requestSendAccessibilityEvent(this, event)
    ```
    https://github.com/aosp-mirror/platform_frameworks_base/blob/1ac46f932ef88a8f96d652580d8105e361ffc842/core/java/android/view/View.java#L13710
    fabOnReact committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    eb33c93 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2022

  1. Configuration menu
    Copy the full SHA
    bb2df1f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    de50984 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7252c15 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    586af1f View commit details
    Browse the repository at this point in the history
  5. remove nested if

    fabOnReact committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    d1b6f67 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    56087d3 View commit details
    Browse the repository at this point in the history
  7. remove check on accessibilityErrorMessage != null

    the check caused the error to be announced twice
    fabOnReact committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    3d831a9 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    0513007 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2022

  1. Configuration menu
    Copy the full SHA
    425056d View commit details
    Browse the repository at this point in the history
  2. Pods update

    fabOnReact committed May 2, 2022
    Configuration menu
    Copy the full SHA
    ea9bb4c View commit details
    Browse the repository at this point in the history

Commits on May 3, 2022

  1. implementing iOS functionalities for facebook#30848 (comment)

    iOS has no standard pattern for the presentation of error states on text inputs, so I'd recommend we follow Android's pattern here. To do this, you'll need to implement a key press listener, and on change, detect if the field is now in an error state. If it is, you'll need to make a manual screen reader announcement of the error message, and append this message to the accessibilityValue for the field.
    fabOnReact committed May 3, 2022
    Configuration menu
    Copy the full SHA
    7f7b281 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ef89ba2 View commit details
    Browse the repository at this point in the history
  3. Revert "Pods update"

    This reverts commit ea9bb4c.
    fabOnReact committed May 3, 2022
    Configuration menu
    Copy the full SHA
    af8a0bd View commit details
    Browse the repository at this point in the history

Commits on May 5, 2022

  1. update Error example

    fabOnReact committed May 5, 2022
    Configuration menu
    Copy the full SHA
    29b99ba View commit details
    Browse the repository at this point in the history

Commits on May 20, 2022

  1. Configuration menu
    Copy the full SHA
    f70870e View commit details
    Browse the repository at this point in the history
  2. improving iOS solution announce screenreaderError

    reapply the previous solution after doing a reset of the branch
    changes deleted are saved in branch
    
    https://github.com/facebook/react-native/compare/main...fabriziobertoglio1987:text-input-errors-set-text-and-selection?expand=1
    
    Moving the head back to this commit
    facebook@29b99ba
    
    Reapply the solution for iOS announcing multiple times the errorMessage
    facebook@e0bdf61
    facebook@3467c5d
    
    A similar problem was also detected on Android and solved with a similar
    solution
    fabOnReact/react-native-notes#12 (comment)
    
    The reset was done to remove the changes to the implementation which
    would use codegen.setTextAndSelection() instead of adding the prop to
    c++
    
    Explained in detail here
    fabOnReact/react-native-notes#12 (comment)
    
    we have 2 types of data flow in the TextInput
    
    SCENARIO 1
    Javascript  <--->  Native Android/iOS
    
    JavaScript receives in callback like onChangeText updates on the value
    of the text and selection position, then decides with an onLayoutEffect
    callback to over-ride those updates with the value kept in internal
    state. This is how JavaScript TextInput component works.
    
    SCENARIO 2
    CPP <----> Native Android/iOS
    
    The state in CPP/Android/iOS keeps in sync.
    
    In this case, we don't receive any native update from Android/iOS on the
    value of the screenreaderError in Native side (not like for example the
    text value which is passed back to JavaScript with the _onChange
    callback).
    https://github.com/fabriziobertoglio1987/react-native/blob/f2e23215ca14c3c630aa931cdd114187589ac0fb/Libraries/Components/TextInput/TextInput.js#L1115
    
    For this reason, I don't think is a good idea including the
    screenreaderError in the setTextAndSelection.
    fabOnReact committed May 20, 2022
    Configuration menu
    Copy the full SHA
    bb4597e View commit details
    Browse the repository at this point in the history

Commits on May 23, 2022

  1. fix circleci failures

    if (oldProps.screenreaderError != newProps.screenreaderError) {
      ~~~~~~~~ ^
        /app/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/viewPropConversions.h:280:46: error: no member named 'screenreaderError' in 'facebook::react::ViewProps'
        if (oldProps.screenreaderError != newProps.screenreaderError) {
          ~~~~~~~~ ^
            /app/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/viewPropConversions.h:281:56: error: no member named 'screenreaderError' in 'facebook::react::ViewProps'
            builder.putString(VP_ACCESSIBILITY_LABEL, newProps.screenreaderError);
    
    https://app.circleci.com/pipelines/github/facebook/react-native/13468/workflows/1d3a4607-2b60-4e47-8524-16dec4eb9c83/jobs/255735
    https://app.circleci.com/pipelines/github/facebook/react-native/13468/workflows/1d3a4607-2b60-4e47-8524-16dec4eb9c83/jobs/255758
    fabOnReact committed May 23, 2022
    Configuration menu
    Copy the full SHA
    d96a284 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9a58e2e View commit details
    Browse the repository at this point in the history
  3. removing diffing in viewPropConversions

    Still not clear to me the logic behind this functionality, but could not
    trigger the viewPropsDiff method with TextInput onChangeText
    733f228
    
    The below method is triggered but did not have the time to further
    investigate, adding this diffing mechanism could be an improvement to
    add to the pr in the future
    https://github.com/fabriziobertoglio1987/react-native/blob/d96a2845fbb17dac390719c1613a108ec3987f62/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java#L45
    
    as already used on the iOS side of this functionalities
    https://github.com/facebook/react-native/pull/33468/files#diff-589692b2662a9e15ae1a961b98289ba4c4b0231d448e985066a29c68f617db5fR137-R148
    fabOnReact committed May 23, 2022
    Configuration menu
    Copy the full SHA
    9958dcd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ad56244 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    bb7b0c3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    195fb0b View commit details
    Browse the repository at this point in the history

Commits on May 24, 2022

  1. Configuration menu
    Copy the full SHA
    343eea1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    521c907 View commit details
    Browse the repository at this point in the history

Commits on May 25, 2022

  1. Configuration menu
    Copy the full SHA
    efba00c View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2022

  1. Rename screenreaderError to accessibilityErrorMessage

    grep "screenreader_error" **/*.xml
    grep "screenreaderError" **/*.(js|mm|m|cpp|h|java)
    bufdo %s/screenreaderError/accessibilityErrorMessage/gce
    bufdo %s/screenreader_error/accessibility_error_message/gce
    bufdo %s/mScreenreaderError/mAccessibilityErrorMessage/gce
    fabOnReact committed Jun 7, 2022
    Configuration menu
    Copy the full SHA
    dac4b96 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1d00ea8 View commit details
    Browse the repository at this point in the history
  3. draft solution Android accessibilityInvalid

    accessibilityInvalid will remove the accessibilityErrorMessage
    fabOnReact committed Jun 7, 2022
    Configuration menu
    Copy the full SHA
    6bac85e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    54aca18 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8e06f08 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ee964b6 View commit details
    Browse the repository at this point in the history
  7. fix flow circleci error

    fabOnReact committed Jun 7, 2022
    Configuration menu
    Copy the full SHA
    0e5ad7c View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    8670b13 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    d801b87 View commit details
    Browse the repository at this point in the history
  10. update Example

    fabOnReact committed Jun 7, 2022
    Configuration menu
    Copy the full SHA
    53d8464 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cabb212 View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2022

  1. set accessibilityValue to text value if there is no error

    when deleting text, the accessibilityValue is not set to the value of
    the text. For example
    
    Erro => Erro
    Error => Error, the new text is Error (announcing error)
    Erro => Erro
    Err => nothing (should be Err)
    Er => nothing (should be Er)
    E => nothing (should be E)
    
    when we move focus out/back, the announcement is Erro, even if the
    text is (E, Er or Err)
    
    after the fix
    
    Erro => Erro
    Error => Error, the new text is Error (announcing error)
    Erro => Erro
    Err => Err
    Er => Er
    E => E
    fabOnReact committed Jun 8, 2022
    Configuration menu
    Copy the full SHA
    318a964 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2022

  1. Configuration menu
    Copy the full SHA
    f1a8b00 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    aefa74c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    086dce7 View commit details
    Browse the repository at this point in the history
  4. handle different scenarios

    - errorMessage does not change => the errorMessage should update with
      the new text value
      This is fixed by adding check on the text value change
    - errorMessage is cleared (null) => accessibilityValue is reset to text
      value
    fabOnReact committed Jun 9, 2022
    Configuration menu
    Copy the full SHA
    ddd7f53 View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2022

  1. minor change

    fabOnReact committed Jun 10, 2022
    Configuration menu
    Copy the full SHA
    9f1e465 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1574fc4 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2022

  1. iOS - Exception thrown while executing UI block: - RCTUITextView setA…

    …ccessibilityErrorMessage:]: unrecognized selector sent to instance (Paper)
    
    <image src="https://user-images.githubusercontent.com/24992535/173279577-98f1e7e2-dda8-4c25-b834-cb8b7933a522.jpeg" width="300" />
    fabOnReact committed Jun 13, 2022
    Configuration menu
    Copy the full SHA
    3b5acf3 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2022

  1. Configuration menu
    Copy the full SHA
    f978045 View commit details
    Browse the repository at this point in the history
  2. include attributedText.string and avoid 2 announcements

    1) include the UITextField text value in the error message
       (accessibilityValue)
    2) avoid repeating error 2 times (on Error and then again Errore)
    
    Still not working, when we stop invoking setAccessibilityErrorMessage,
    the accessibilityValue does not update anymore.
    We should find the onChangeText callback to update the
    accessibilityValue in that callback every time the text is edited.
    fabOnReact committed Jun 14, 2022
    Configuration menu
    Copy the full SHA
    037089f View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2022

  1. Paper iOS - update accessibilityValue onChangeText

    Moving logic to RCTBaseTextInputView method setAttributedText
    responsible to update text onChangeText on Paper iOS.
    
    On every character type the accessibilityValue is set to the text value
    or the text value + error message.
    fabOnReact committed Jun 16, 2022
    Configuration menu
    Copy the full SHA
    04f5e14 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f594d51 View commit details
    Browse the repository at this point in the history
  3. fix the following scenarios iOS Paper

    1) Erro => Error
       The user types Error. Currently the Screenreader on iOS announces
       Error, The new text is Error.
       But the correct behaviour is r, The new text is Error
    2) Error => Erro
       The user deletes 1 char from the previous example. The Screenreader
       would announce Erro.
    
    Issue 1) and 2) are caused by calling UIAccessibilityPostNotification to
    trigger the voiceover announcement with the entire TextInput text value,
    instead of using just the last char of the TextInput text.
    
    3) Outside of onChangeText, the TextInput accessibilityValue should be
       set to the entire TextInput value ("Error" and not "r").
    
    Point 3) is accomplished by setting the accessibilityValue to the
    value TextInput text ("Error" and not "r") + the error message.
    fabOnReact committed Jun 16, 2022
    Configuration menu
    Copy the full SHA
    582b1e8 View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2022

  1. Configuration menu
    Copy the full SHA
    e4a95c6 View commit details
    Browse the repository at this point in the history
  2. iOS - apply Paper improvements to Fabric

    1)The error is announced, but not with the character onChangeText
    2)The error is announced multiple times
    
    Test Case of this changes
    fabOnReact/react-native-notes#12 (comment)
    fabOnReact committed Jun 17, 2022
    Configuration menu
    Copy the full SHA
    b53ed9d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8cd7f42 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2022

  1. Configuration menu
    Copy the full SHA
    dce9b91 View commit details
    Browse the repository at this point in the history
  2. Implement solution for multiline textinput

    - Copy solution for Singleline textinput to multiline
    - Rewrite of the fix that avoids to trigger the errorMessage announcement two times
      Error => Errore would trigger two announcement, while only one should
      trigger
      * caching of prev and currentErrorMessage
      * if the currentErrorMessage is nil and different from the
        previousErrorMessage => update accessibilityValue and trigger a
        VoiceOver annoucement for the last character of the text value.
        VoiceOver announces only the last char when typing.
    facebook#33468 (review)
    fabOnReact committed Jun 20, 2022
    Configuration menu
    Copy the full SHA
    90aa959 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3c4296f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3f3312d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9858e54 View commit details
    Browse the repository at this point in the history
  6. rm update accessibilityValue in RCTBaseTextInputView

    setting accessibilityValue to nil is enought to fix this regression. This logic has to be removed
    setting accessibilityValue to nil and triggering announcement for the
    last char is enough to avoid on Paper iOS:
    - double announcement of the error
    - correct accessibilityValue is not announced when
      setAccessibilityErrorMessage is not called (no error passed to the
      component)
    https://developer.apple.com/documentation/uikit/uiaccessibilityelement/1619583-accessibilityvalue?language=objc
    
    replace this with
    ```objc
    BOOL errorMessageRemoved = currentScreenreaderError == nil && ![currentScreenreaderError isEqualToString: previousScreenreaderError];
    ```
    facebook#33468 (comment)
    
    nil check not required
    facebook#33468 (comment)
    fabOnReact committed Jun 20, 2022
    Configuration menu
    Copy the full SHA
    16d7d4d View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2022

  1. Configuration menu
    Copy the full SHA
    99b39d5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    34c5526 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    933aa3c View commit details
    Browse the repository at this point in the history
  4. implementing strict check in setAttributed string

    - avoid repeating accessibility error multiple times
    - only trigger logic when accessibilityValue is nil
    facebook#33468 (comment)
    fabOnReact committed Jun 21, 2022
    Configuration menu
    Copy the full SHA
    30f3f96 View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2022

  1. implement previousScreenreaderError check on Fabric

    implement same solution from Paper, the solution is implemented to avoid
    a second error message onChangeText
    fabOnReact committed Jun 22, 2022
    Configuration menu
    Copy the full SHA
    de3c2f3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ce5e52a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b2a6964 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9a3117b View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2022

  1. fix duplicated VoiceOver announcements

    a regression that was already documented in the following posts
    facebook#30859 (comment)
    facebook#30859 (comment)
    fabOnReact committed Jun 23, 2022
    Configuration menu
    Copy the full SHA
    596df4d View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2022

  1. update accessibilityValue onChangeText

    1) adding check on text value change
    fixes the following scenario:
    - we trigger the error
      Error => Error, The new text is Error
    - we change the text, but we keep the same error
      before fix
      Errorere => Error, The new text is Error
      after fix
      Errorere => Errorere, The new text is Error
    
    This was caused by missing check between old/new text
    
    2) change accessibilityErrorMessage outside of onChangeText callback
    we update the value of accessibilityErrorMessage from a button without
    triggering onChangeText. We remove the value of the
    accessibilityErrorMessage or we set accessibilityInvalid to false
    - setAttributedString does not trigger, the accessibilityValue is not
      updated in that callback
    - accessibilityValue does not update
      we update the accessibilityValue with onChangeText
      (setAttributedString) because that callback has the new type text
      so we announce the last typed characted
      but this callback does not trigger in this case, because we update
      outside of onChangeText
    - fix => set accessibilityValue to the last text value and if
      onChangeText triggers, we updated accessibilityValue again
    fabOnReact committed Jun 24, 2022
    Configuration menu
    Copy the full SHA
    f5a3bb6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    84786a2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c8790a1 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2022

  1. Configuration menu
    Copy the full SHA
    f4acead View commit details
    Browse the repository at this point in the history
  2. minor changes

    fabOnReact committed Jul 28, 2022
    Configuration menu
    Copy the full SHA
    63fd956 View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2022

  1. Configuration menu
    Copy the full SHA
    5e5e2c0 View commit details
    Browse the repository at this point in the history
  2. avoid reiterate prop documentation in the docblock

    No need to reiterate in the type of the prop in the docblock, since the type is already defined and will be presumably extracted for any reference documentation purposes.
    facebook#33468 (comment)
    fabOnReact committed Aug 12, 2022
    Configuration menu
    Copy the full SHA
    cb0c506 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d85c90a View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2022

  1. Configuration menu
    Copy the full SHA
    7d0c4db View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a92e7f6 View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2022

  1. Configuration menu
    Copy the full SHA
    114b4e0 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2022

  1. Configuration menu
    Copy the full SHA
    011178c View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2022

  1. Configuration menu
    Copy the full SHA
    9c48846 View commit details
    Browse the repository at this point in the history
  2. minor change

    The below tasks were part of the rebase/retest
    
    "Adding conversion logic for accessibilityErrorMessage in AndroidTextInputProps.cpp causes error com.facebook.react.uiapp null pointer dereference (link).
    Check how other props are implemented (underlineColorAndroid)
           Use rg in terminal to make sure you include files added to gitignore
    Read the implementation of convertRawProp
    Add conversion to conversions.h
    Read other classes in that folder
    Try to add logic from attributedtext (ParagraphAttribute) without changing TextInputProp
    Try to move logic to AccessibilityProps"	"https://www.icloud.com/iclouddrive/0e4zx_DEQrjC6s2uDVLTLXYPQ#null_pointer_dereference
    https://github.com/fabriziobertoglio1987/react-native/blob/a92e7f621ac8da36299ce6c7a82f2cbe11fd9f9a/ReactCommon/react/renderer/core/propsConversions.h#L113"
    "The app crashed with RawProps.cpp:92: function at: assertion failed (parser_ && "The object is not parsed. `parse` must be called before `at`.")' (link). The issue is solved after removing the changes to the attributedstring, but the error message is not displayed on ChangeText. The error initially seems triggered by conversions fromRawValue, RawProps, convertRawProp
    The error could be caused by a missing value in ParagraphAttributes[accessibilityErrorMessage]. Try to add a default value."	"https://github.com/fabriziobertoglio1987/react-native/blob/a92e7f621ac8da36299ce6c7a82f2cbe11fd9f9a/ReactCommon/react/renderer/core/propsConversions.h#L92
    https://www.icloud.com/iclouddrive/0e4zx_DEQrjC6s2uDVLTLXYPQ#null_pointer_dereference
    https://github.com/fabriziobertoglio1987/react-native/tree/a92e7f621ac8da36299ce6c7a82f2cbe11fd9f9a/ReactCommon/react/renderer/attributedstring"
    "check commit history main branch
    rebase on the latest main branch"
    "The error could have been experienced and solved in the past with other functionalities.
    Review video of adberrors and search (discord, GitHub) for info
    Update the information logged in react_native_assert statement, debug and understand reason app crashes
    Search Discord discussions (link)
    Search Github discussions
    Record a complete video of the adb logcat and search online/discord for information"	https://github.com/fabriziobertoglio1987/react-native/blob/a92e7f621ac8da36299ce6c7a82f2cbe11fd9f9a/ReactCommon/react/renderer/core/RawProps.cpp#L90
    
    facebook#33468 (comment)
    fabOnReact committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    9829e68 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    869dd49 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b43c547 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    043b24a View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2022

  1. Configuration menu
    Copy the full SHA
    6c9e233 View commit details
    Browse the repository at this point in the history
  2. trigger onChangeText accessibilityErrorMessage with props instead of

    state
    
    In the below example we update onChangeText the backgroundColor of the
    TextInput.
    
    TextInput React component is built on top of Android EditText.
    The Android EditText renders Text using Android TextView.
    EditText inherits from TextView, and it somehow a TextView with
    additional functionalities.
    
    onChangeText does not update all the props of the EditText.
    Props/State updates are triggered with ReactTextInputManager method
    updateState.
    https://github.com/facebook/react-native/blob/6c9e233c6f2d479e6b296aaa14cda45d0cf6f1a5/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java#L1300
    
    This updates are two categories:
    
    - props sent from React.
    
    The diffing of this props is done using a
    caching mechanism on Fabric TextLayoutManagerMapBuffer. The
    TextLayoutManagerMapBuffer adds a ReactBackgroundColorSpan responsible
    in the example below to change the backgroundColor from green to red
    when the text is Error. It is triggered onChangeText.
    
    https://github.com/fabriziobertoglio1987/react-native/blob/043b24a1f22518e2eef221fb3b5372356fa2776b/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java#L152
    
    The View Props diffing for accessibility actions, hint and other View
    props is done with ReactMapBufferPropSetter.kt and other classes, but
    not for EditText props
    https://github.com/fabriziobertoglio1987/react-native/blob/043b24a1f22518e2eef221fb3b5372356fa2776b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactMapBufferPropSetter.kt#L29
    
    accessibilityErrorMessage triggers Node.setError (corresponds to
    EditText.setError but for accessibility only), for this reason the prop
    belongs to TextInput and not View.
    
    - TextAttributes
      My first interpretation was that this attributes belong to the underlining TextView
      implementation in the EditText
      EditText ===> Input for typing
      TextView ===> Display the text on the screen
      Props like fontWeight don't belong to EditText, which only handles the
      input, but to TextView which renders it
      But I must have misintepreted
    - ParagraphAttributes ===> I tought this belong only to EditText, but I
      was wrong. For ex. textBreakStrategy could be used also in a TextView
    
    The summary is we will not trigger this update using the state, as the
    value is retrieve from the props.
    ```javascript
    function AccessibilityErrorWithButtons(): React.Node {
      const [text, setText] = React.useState('');
      const [error, setError] = React.useState(null);
      const [accessibilityInvalid, setAccessibilityInvalid] = React.useState(false);
      return (
        <View>
          <RNTesterBlock>
            <TextInput
              accessibilityInvalid={accessibilityInvalid}
              onChangeText={newText => {
                setText(newText);
                if (newText === 'Error') {
                  setAccessibilityInvalid(true);
                } else {
                  setAccessibilityInvalid(false);
                }
              }}
              value={text}
              style={{backgroundColor: accessibilityInvalid ? "red" : "green"}}
            />
            <Button
              onPress={() => {
                setError('This error is set with Button onPress callback');
              }}
              title="Press to set an accessibilityErrorMessage to a non-empty value"
            />
            <Button
              onPress={() => setAccessibilityInvalid(!accessibilityInvalid)}
              title={`Press to set accessibilityInvalid to ${
                accessibilityInvalid ? 'false' : 'true'
              }`}
            />
            <Button
              onPress={() => setError('')}
              title={'Press to set an empty error message'}
            />
          </RNTesterBlock>
        </View>
      );
    }
    ```
    fabOnReact committed Nov 5, 2022
    Configuration menu
    Copy the full SHA
    2818fa4 View commit details
    Browse the repository at this point in the history
  3. this update is triggered with textInputRef.setTextAndSelection(newText,

    startSelectionPosition, endSelectionPosition)
    
    The update may clear the errorMessage EditText
    This could be work around by saving the nodeInfo.getError() in instance
    variable of EditText, retrieve it and add it to the getReactTextUpdate()
    
    but I believe setTextAndSelection is expected to clear the error message
    fabOnReact committed Nov 5, 2022
    Configuration menu
    Copy the full SHA
    c3ee8f9 View commit details
    Browse the repository at this point in the history
  4. fabric does not use ReactTextUpdate to announce errorMessage onChange…

    …Text, but paper still use this API to announce it
    fabOnReact committed Nov 5, 2022
    Configuration menu
    Copy the full SHA
    5d43830 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    46e3d06 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    af2c906 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    b1b8bf0 View commit details
    Browse the repository at this point in the history
  8. change .cpp default value

    fabOnReact committed Nov 5, 2022
    Configuration menu
    Copy the full SHA
    f0d0186 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2022

  1. Configuration menu
    Copy the full SHA
    b006276 View commit details
    Browse the repository at this point in the history
  2. replace readwrite with assign

    @lunaleaps The RCTTextInputComponentView.mm is the iOS Fabric Component for TextInput. Creates an instance _backedTextInput of type [BackedTextInputViewProtocol](https://github.com/facebook/react-native/blob/f0d0186ebad7312cdcd54b74d8d47e47bd4d741b/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h#L20) using RCTUITextView or RCTUITextField constructors.
    https://github.com/facebook/react-native/blob/f0d0186ebad7312cdcd54b74d8d47e47bd4d741b/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm#L78
    
    BackedTextInputViewProtocol, RCTUITextView and RCTUITextField headers should match (currently they don't, accessibilityErrorMessage type differs in RCTBackedTextInputViewProtocol).
    Sorry for the mistake. I'm rebasing, building, testing and pushing the commit soon. Thanks
    https://stackoverflow.com/questions/2255861/property-retain-assign-copy-nonatomic-in-objective-c
    fabOnReact committed Dec 1, 2022
    Configuration menu
    Copy the full SHA
    9d1adec View commit details
    Browse the repository at this point in the history
  3. remove pressed state

    fabOnReact committed Dec 1, 2022
    Configuration menu
    Copy the full SHA
    e4094c9 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2022

  1. fix error: auto property synthesis will not synthesize property 'acce…

    …ssibilityErrorMessage' declared in protocol 'RCTBackedTextInputViewProtocol'
    
    <details><summary>The warning in RCTUITextView</summary>
    <p>
    
    <img width="1920" alt="Screenshot 2022-12-05 at 9 58 55 PM" src="https://user-images.githubusercontent.com/24992535/205741525-af675e23-cd59-46d6-964a-f3885fc4456e.png">
    
    </p>
    </details>
    
    <details><summary>Adding the missing in the header accessibilityErrorMessage in RCTUITextView</summary>
    <p>
    
    <img width="1920" alt="Screenshot 2022-12-05 at 9 59 25 PM" src="https://user-images.githubusercontent.com/24992535/205741611-8a75b6e6-7585-481d-885c-bb79ed7216f9.png">
    
    </p>
    </details>
    
    <details><summary>The header accessibilityErrorMessage from RCTBackedTextInputViewProtocol</summary>
    <p>
    
    <img width="1920" alt="Screenshot 2022-12-05 at 10 05 36 PM" src="https://user-images.githubusercontent.com/24992535/205742616-350279a9-06e7-4669-bc16-1fff033923ac.png">
    
    </p>
    </details>
    
    <details><summary>The warning disappears after adding header in RCTUITextView</summary>
    <p>
    
    <img width="1920" alt="Screenshot 2022-12-05 at 10 02 51 PM" src="https://user-images.githubusercontent.com/24992535/205742140-309968e0-9133-4c32-b7d8-d003fcf7ffd7.png">
    
    </p>
    </details>
    fabOnReact committed Dec 5, 2022
    Configuration menu
    Copy the full SHA
    ca6d811 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bd826f4 View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2022

  1. Configuration menu
    Copy the full SHA
    1f9c10e View commit details
    Browse the repository at this point in the history
  2. adding type null or String

    fabOnReact committed Dec 14, 2022
    Configuration menu
    Copy the full SHA
    61b049e View commit details
    Browse the repository at this point in the history
  3. fix flow errors circleci

    fabOnReact committed Dec 14, 2022
    Configuration menu
    Copy the full SHA
    29a13b6 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2023

  1. Configuration menu
    Copy the full SHA
    e19d492 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2023

  1. Configuration menu
    Copy the full SHA
    085730f View commit details
    Browse the repository at this point in the history
  2. updating example

    fabOnReact committed Jan 20, 2023
    Configuration menu
    Copy the full SHA
    f51645e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f138da4 View commit details
    Browse the repository at this point in the history

Commits on Jan 23, 2023

  1. Configuration menu
    Copy the full SHA
    e3f2d68 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    954a58f View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2023

  1. Configuration menu
    Copy the full SHA
    27b963b View commit details
    Browse the repository at this point in the history