react-native#UIManager TypeScript Examples
The following examples show how to use
react-native#UIManager.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ContextMenuButton.tsx From react-native-ios-context-menu with MIT License | 6 votes |
dismissMenu = () => {
if(!LIB_ENV.isContextMenuButtonSupported) return;
UIManager.dispatchViewManagerCommand(
findNodeHandle(this.nativeRef),
RNIContextMenuButtonCommands.dismissMenu,
[]
);
};
Example #2
Source File: App.tsx From react-native-template with MIT License | 6 votes |
(function setup() {
// Log environement variables
console.log(BuildConfig)
// React Navigation, optimize memory usage.
enableScreens()
// Initialize sentry SDK (DSN string must be inserted in BuildConfig environment files).
const { SENTRY_DSN } = BuildConfig
if (typeof SENTRY_DSN === "string" && SENTRY_DSN.length > 0) {
Sentry.init({
dsn: SENTRY_DSN,
})
}
// Layout animation
if (Platform.OS === "android") {
if (UIManager.setLayoutAnimationEnabledExperimental) {
UIManager.setLayoutAnimationEnabledExperimental(true)
}
}
// Mirage – API Mocking
if (BuildConfig.MOCK_EXAMPLE_API === "YES") {
makeMirage()
__DEV__ && console.log("Mirage Configured")
}
})()
Example #3
Source File: RNIContextMenuButton.ts From react-native-ios-context-menu with MIT License | 5 votes |
RNIContextMenuButtonCommands: RNIContextMenuButtonCommandIDMap = Platform.select({
ios: () => ((UIManager as any)[viewName])?.Commands,
default: () => ({})
})()
Example #4
Source File: MaskedViewNative.tsx From nlw2-proffy with MIT License | 5 votes |
isMaskedViewAvailable =
UIManager.getViewManagerConfig('RNCMaskedView') != null
Example #5
Source File: NativeViewManagerAdapter.native.tsx From nlw2-proffy with MIT License | 5 votes |
/**
* A drop-in replacement for `requireNativeComponent`.
*/
export function requireNativeViewManager<P = any>(viewName: string): React.ComponentType<P> {
if (__DEV__) {
const { NativeUnimoduleProxy } = NativeModules;
if (!NativeUnimoduleProxy.viewManagersNames.includes(viewName)) {
const exportedViewManagerNames = NativeUnimoduleProxy.viewManagersNames.join(', ');
console.warn(
`The native view manager required by name (${viewName}) from NativeViewManagerAdapter isn't exported by @unimodules/react-native-adapter. Views of this type may not render correctly. Exported view managers: [${exportedViewManagerNames}].`
);
}
}
// Set up the React Native native component, which is an adapter to the universal module's view
// manager
const reactNativeViewName = `ViewManagerAdapter_${viewName}`;
const ReactNativeComponent = requireNativeComponent<NativeExpoComponentProps>(
reactNativeViewName
);
const reactNativeUIConfiguration = (UIManager.getViewManagerConfig
? UIManager.getViewManagerConfig(reactNativeViewName)
: UIManager[reactNativeViewName]) || {
NativeProps: {},
directEventTypes: {},
};
const reactNativeComponentPropNames = [
'children',
...ViewPropTypesKeys,
...Object.keys(reactNativeUIConfiguration.NativeProps),
...Object.keys(reactNativeUIConfiguration.directEventTypes),
];
// Define a component for universal-module authors to access their native view manager
function NativeComponentAdapter(props, ref) {
// TODO: `omit` may incur a meaningful performance cost across many native components rendered
// in the same update. Profile this and write out a partition function if this is a bottleneck.
const nativeProps = pick(props, reactNativeComponentPropNames);
const proxiedProps = omit(props, reactNativeComponentPropNames);
return <ReactNativeComponent {...nativeProps} proxiedProperties={proxiedProps} ref={ref} />;
}
NativeComponentAdapter.displayName = `Adapter<${viewName}>`;
return React.forwardRef(NativeComponentAdapter);
}
Example #6
Source File: InitialWindow.native.ts From nlw2-proffy with MIT License | 5 votes |
RNCSafeAreaProviderConfig = UIManager.getViewManagerConfig(
'RNCSafeAreaProvider',
) as any
Example #7
Source File: Animation.tsx From RNChallenge_2 with MIT License | 5 votes |
export function enableAnimation() {
if (Platform.OS === 'android') {
UIManager.setLayoutAnimationEnabledExperimental &&
UIManager.setLayoutAnimationEnabledExperimental(true);
}
}
Example #8
Source File: CardField.tsx From stripe-react-native with MIT License | 4 votes |
CardField = forwardRef<CardFieldInput.Methods, Props>(
(
{
onCardChange,
onFocus,
onBlur,
cardStyle,
placeholders,
postalCodeEnabled,
...props
},
ref
) => {
const inputRef = useRef<any>(null);
const onCardChangeHandler = useCallback(
(event: NativeSyntheticEvent<CardFieldInput.Details>) => {
const card = event.nativeEvent;
const data: CardFieldInput.Details = {
last4: card.last4,
expiryMonth: card.expiryMonth,
expiryYear: card.expiryYear,
complete: card.complete,
brand: card.brand,
validExpiryDate: card.validExpiryDate,
validNumber: card.validNumber,
validCVC: card.validCVC,
};
if (card.hasOwnProperty('postalCode')) {
data.postalCode = card.postalCode || '';
}
if (card.hasOwnProperty('number') || card.hasOwnProperty('cvc')) {
data.number = card.number || '';
data.cvc = card.cvc || '';
if (__DEV__ && onCardChange && card.complete) {
console.warn(
`[stripe-react-native] ⚠️ WARNING: You've enabled \`dangerouslyGetFullCardDetails\`, meaning full card details are being returned. Only do this if you're certain that you fulfill the necessary PCI compliance requirements. Make sure that you're not mistakenly logging or storing full card details! See the docs for details: https://stripe.com/docs/security/guide#validating-pci-compliance`
);
}
}
onCardChange?.(data);
},
[onCardChange]
);
const onFocusHandler = useCallback(
(event) => {
const { focusedField } = event.nativeEvent;
if (focusedField) {
focusInput(inputRef.current);
onFocus?.(focusedField);
} else {
onBlur?.();
}
},
[onFocus, onBlur]
);
const focus = () => {
UIManager.dispatchViewManagerCommand(
findNodeHandle(inputRef.current),
'focus' as any,
[]
);
};
const blur = () => {
UIManager.dispatchViewManagerCommand(
findNodeHandle(inputRef.current),
'blur' as any,
[]
);
};
const clear = () => {
UIManager.dispatchViewManagerCommand(
findNodeHandle(inputRef.current),
'clear' as any,
[]
);
};
useImperativeHandle(ref, () => ({
focus,
blur,
clear,
}));
useLayoutEffect(() => {
const inputRefValue = inputRef.current;
if (inputRefValue !== null) {
registerInput(inputRefValue);
return () => {
unregisterInput(inputRefValue);
if (currentlyFocusedInput() === inputRefValue) {
inputRefValue.blur();
}
};
}
return () => {};
}, [inputRef]);
return (
<CardFieldNative
ref={inputRef}
onCardChange={onCardChangeHandler}
onFocusChange={onFocusHandler}
postalCodeEnabled={postalCodeEnabled ?? true}
cardStyle={{
backgroundColor: cardStyle?.backgroundColor,
borderColor: cardStyle?.borderColor,
borderWidth: cardStyle?.borderWidth,
borderRadius: cardStyle?.borderRadius,
cursorColor: cardStyle?.cursorColor,
fontSize: cardStyle?.fontSize,
placeholderColor: cardStyle?.placeholderColor,
textColor: cardStyle?.textColor,
textErrorColor: cardStyle?.textErrorColor,
fontFamily: cardStyle?.fontFamily,
}}
placeholders={{
number: placeholders?.number,
expiration: placeholders?.expiration,
cvc: placeholders?.cvc,
postalCode: placeholders?.postalCode,
}}
{...props}
/>
);
}
)
Example #9
Source File: CardForm.tsx From stripe-react-native with MIT License | 4 votes |
CardForm = forwardRef<CardFormView.Methods, Props>(
(
{
onFormComplete,
cardStyle,
// isUserInteractionEnabled = true,
// postalCodeEnabled = true,
// onFocus,
// onBlur,
placeholders,
...props
},
ref
) => {
const inputRef = useRef<any>(null);
const onFormCompleteHandler = useCallback(
(event: NativeSyntheticEvent<CardFormView.Details>) => {
const card = event.nativeEvent;
const data: CardFormView.Details = {
last4: card.last4,
expiryMonth: card.expiryMonth,
expiryYear: card.expiryYear,
complete: card.complete,
brand: card.brand,
country: card.country,
postalCode: card.postalCode,
};
if (card.hasOwnProperty('number') || card.hasOwnProperty('cvc')) {
data.number = card.number || '';
data.cvc = card.cvc || '';
if (__DEV__ && onFormComplete && card.complete) {
console.warn(
`[stripe-react-native] ⚠️ WARNING: You've enabled \`dangerouslyGetFullCardDetails\`, meaning full card details are being returned. Only do this if you're certain that you fulfill the necessary PCI compliance requirements. Make sure that you're not mistakenly logging or storing full card details! See the docs for details: https://stripe.com/docs/security/guide#validating-pci-compliance`
);
}
}
onFormComplete?.(data);
},
[onFormComplete]
);
const focus = () => {
UIManager.dispatchViewManagerCommand(
findNodeHandle(inputRef.current),
'focus' as any,
[]
);
};
const blur = () => {
UIManager.dispatchViewManagerCommand(
findNodeHandle(inputRef.current),
'blur' as any,
[]
);
};
useImperativeHandle(ref, () => ({
focus,
blur,
}));
const onFocusHandler = useCallback((event) => {
const { focusedField } = event.nativeEvent;
if (focusedField) {
focusInput(inputRef.current);
// onFocus?.(focusedField);
} else {
// onBlur?.();
}
}, []);
useLayoutEffect(() => {
const inputRefValue = inputRef.current;
if (inputRefValue !== null) {
registerInput(inputRefValue);
return () => {
unregisterInput(inputRefValue);
if (currentlyFocusedInput() === inputRefValue) {
inputRefValue.blur();
}
};
}
return () => {};
}, [inputRef]);
return (
<CardFormNative
ref={inputRef}
onFormComplete={onFormCompleteHandler}
cardStyle={{
backgroundColor: cardStyle?.backgroundColor,
borderColor: cardStyle?.borderColor,
borderWidth: cardStyle?.borderWidth,
borderRadius: cardStyle?.borderRadius,
cursorColor: cardStyle?.cursorColor,
fontSize: cardStyle?.fontSize,
placeholderColor: cardStyle?.placeholderColor,
textColor: cardStyle?.textColor,
textErrorColor: cardStyle?.textErrorColor,
fontFamily: cardStyle?.fontFamily,
// disabledBackgroundColor: cardStyle?.disabledBackgroundColor,
// type: cardStyle?.type,
}}
// isUserInteractionEnabledValue={isUserInteractionEnabled}
placeholders={{
number: placeholders?.number,
expiration: placeholders?.expiration,
cvc: placeholders?.cvc,
postalCode: placeholders?.postalCode,
}}
onFocusChange={onFocusHandler}
// postalCodeEnabled={postalCodeEnabled}
{...props}
/>
);
}
)