/* @flow */ import React, { Component } from 'react'; import { Text } from 'react-native'; import { connect } from '../../redux'; import type { TestHintProps } from './AbstractTestHint'; import { _mapStateToProps } from './AbstractTestHint'; /** * The Android version of TestHint. It will put the identifier, * as the 'accessibilityLabel'. * * FIXME The 'testID' attribute (which is used on iOS) does not work with * the react-native as expected, because is mapped to component's tag instead of * any attribute visible to the UI automation. Because of that it can not be * used to find the element. * On the other hand it's not possible to use 'accessibilityLabel' on the iOS * for the id purpose, because it will merge the value with any text content or * 'accessibilityLabel' values of it's children. So as a workaround a TestHint * class was introduced in 'jitsi-meet-torture' which will accept generic 'id' * attribute and then do the search 'under the hood' either by the accessibility * label or the id, depending on the participant's platform. On the client side * the TestHint class is to be the abstraction layer which masks the problem by * exposing id and value properties. */ class TestHint extends Component { /** * Renders the test hint on Android. * * @returns {ReactElement} */ render() { if (!this.props._testModeEnabled) { return null; } return ( { this.props.value } ); } } export default connect(_mapStateToProps)(TestHint);