mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
2d80a248cd
Summary: Changelog: [Internal] Introduce native command `setNativeRefreshing`, it has the word Native in order to avoid name conflict with setRefreshing in Android implementation. Even this component is iOS only, it would make it easier to merge them in the future. Introduce `RCTRefreshableProtocol` and make `RCTRefreshControl` and `RCTPullToRefreshViewComponentView` to conform to the protocol so view manager can forward command to both, Paper and Fabric component. Reviewed By: mmmulani Differential Revision: D18475804 fbshipit-source-id: 4c19225784efc931b7b8f2d2671cc839bce429bf
65 lines
1.6 KiB
JavaScript
65 lines
1.6 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
* @flow
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
import type {DirectEventHandler, WithDefault} from '../../Types/CodegenTypes';
|
|
import type {ColorValue} from '../../StyleSheet/StyleSheetTypes';
|
|
import type {ViewProps} from '../View/ViewPropTypes';
|
|
import * as React from 'react';
|
|
|
|
import codegenNativeComponent from '../../Utilities/codegenNativeComponent';
|
|
import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
|
|
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
|
|
type NativeProps = $ReadOnly<{|
|
|
...ViewProps,
|
|
|
|
/**
|
|
* The color of the refresh indicator.
|
|
*/
|
|
tintColor?: ?ColorValue,
|
|
/**
|
|
* Title color.
|
|
*/
|
|
titleColor?: ?ColorValue,
|
|
/**
|
|
* The title displayed under the refresh indicator.
|
|
*/
|
|
title?: WithDefault<string, null>,
|
|
|
|
/**
|
|
* Called when the view starts refreshing.
|
|
*/
|
|
onRefresh?: ?DirectEventHandler<null>,
|
|
|
|
/**
|
|
* Whether the view should be indicating an active refresh.
|
|
*/
|
|
refreshing: boolean,
|
|
|}>;
|
|
|
|
type ComponentType = HostComponent<NativeProps>;
|
|
|
|
interface NativeCommands {
|
|
+setNativeRefreshing: (
|
|
viewRef: React.ElementRef<ComponentType>,
|
|
refreshing: boolean,
|
|
) => void;
|
|
}
|
|
|
|
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
supportedCommands: ['setNativeRefreshing'],
|
|
});
|
|
|
|
export default (codegenNativeComponent<NativeProps>('PullToRefreshView', {
|
|
paperComponentName: 'RCTRefreshControl',
|
|
}): HostComponent<NativeProps>);
|