From 9b19a95e638b2a5379560b5ffb27c423ad9a2e4e Mon Sep 17 00:00:00 2001 From: Logan Rosen Date: Thu, 22 Jun 2023 12:40:32 -0400 Subject: Bump @types/react to ^18 and adjust types (#889) --- src/view/com/util/forms/Button.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/view/com/util/forms/Button.tsx') diff --git a/src/view/com/util/forms/Button.tsx b/src/view/com/util/forms/Button.tsx index 6a5f19f99..8049d2243 100644 --- a/src/view/com/util/forms/Button.tsx +++ b/src/view/com/util/forms/Button.tsx @@ -6,6 +6,7 @@ import { TextStyle, Pressable, ViewStyle, + PressableStateCallbackType, } from 'react-native' import {Text} from '../text/Text' import {useTheme} from 'lib/ThemeContext' @@ -26,6 +27,14 @@ export type ButtonType = | 'secondary-light' | 'default-light' +// Augment type for react-native-web (see https://github.com/necolas/react-native-web/issues/1684#issuecomment-766451866) +declare module 'react-native' { + interface PressableStateCallbackType { + hovered?: boolean + focused?: boolean + } +} + // TODO: Enforce that button always has a label export function Button({ type = 'primary', @@ -139,7 +148,7 @@ export function Button({ ) const getStyle = React.useCallback( - state => { + (state: PressableStateCallbackType) => { const arr = [typeOuterStyle, styles.outer, style] if (state.pressed) { arr.push({opacity: 0.6}) -- cgit 1.4.1