theluyuan 38ba663466
Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
init
2025-09-02 14:49:16 +08:00

63 lines
1.6 KiB
TypeScript

import { GestureResponderEvent } from 'react-native';
import { IReduxState } from '../../../app/types';
import { isTestModeEnabled } from '../functions';
/**
* Describes the {@link TestHint}'s properties.
*
* A test hint is meant to resemble the lack of the ability to execute
* JavaScript by the mobile torture tests. They are used to expose some of
* the app's internal state that is not always expressed in a feasible manner by
* the UI.
*/
export type TestHintProps = {
/**
* The indicator which determines whether the test mode is enabled.
* {@link TestHint} Components are rendered only if this flag is set to
* {@code true}.
*/
_testModeEnabled: boolean;
/**
* The test hint's identifier string. Must be unique in the app instance
* scope.
*/
id: string;
/**
* The optional "on press" handler which can be used to bind a click handler
* to a {@link TestHint}.
*/
onPress?: (e?: GestureResponderEvent) => void;
/**
* The test hint's (text) value which is to be consumed by the tests.
*/
value: string;
};
/**
* Maps (parts of) the redux state to {@link TestHint}'s React {@code Component}
* props.
*
* @param {Object} state - The redux store/state.
* @private
* @returns {{
* _testModeEnabled: boolean
* }}
*/
export function _mapStateToProps(state: IReduxState) {
return {
/**
* The indicator which determines whether the test mode is enabled.
*
* @protected
* @type {boolean}
*/
_testModeEnabled: isTestModeEnabled(state)
};
}