diff options
Diffstat (limited to 'src/view/com/util/forms/Button.tsx')
-rw-r--r-- | src/view/com/util/forms/Button.tsx | 11 |
1 files changed, 10 insertions, 1 deletions
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}) |