diff options
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/Dialog/index.web.tsx | 6 | ||||
-rw-r--r-- | src/components/Dialog/shared.tsx | 5 | ||||
-rw-r--r-- | src/components/dialogs/GifSelect.tsx | 14 | ||||
-rw-r--r-- | src/components/forms/TextField.tsx | 15 |
4 files changed, 24 insertions, 16 deletions
diff --git a/src/components/Dialog/index.web.tsx b/src/components/Dialog/index.web.tsx index 12bd8819b..1417e9e91 100644 --- a/src/components/Dialog/index.web.tsx +++ b/src/components/Dialog/index.web.tsx @@ -193,7 +193,7 @@ export function Inner({ onInteractOutside={preventDefault} onFocusOutside={preventDefault} onDismiss={close} - style={{display: 'flex', flexDirection: 'column'}}> + style={{height: '100%', display: 'flex', flexDirection: 'column'}}> {header} <View style={[gtMobile ? a.p_2xl : a.p_xl, contentContainerStyle]}> {children} @@ -227,10 +227,10 @@ export const InnerFlatList = React.forwardRef< web({maxHeight: '80vh'}), webInnerStyle, ]} - contentContainerStyle={[a.px_0, webInnerContentContainerStyle]}> + contentContainerStyle={[a.h_full, a.px_0, webInnerContentContainerStyle]}> <FlatList ref={ref} - style={[gtMobile ? a.px_2xl : a.px_xl, flatten(style)]} + style={[a.h_full, gtMobile ? a.px_2xl : a.px_xl, flatten(style)]} {...props} /> </Inner> diff --git a/src/components/Dialog/shared.tsx b/src/components/Dialog/shared.tsx index 40d040878..b5513b19c 100644 --- a/src/components/Dialog/shared.tsx +++ b/src/components/Dialog/shared.tsx @@ -5,7 +5,6 @@ import { View, type ViewStyle, } from 'react-native' -import type React from 'react' import {atoms as a, useTheme} from '#/alf' import {Text} from '#/components/Typography' @@ -28,6 +27,8 @@ export function Header({ <View onLayout={onLayout} style={[ + a.sticky, + a.top_0, a.relative, a.w_full, a.py_sm, @@ -61,7 +62,7 @@ export function HeaderText({ style?: StyleProp<TextStyle> }) { return ( - <Text style={[a.text_lg, a.text_center, a.font_bold, style]}> + <Text style={[a.text_lg, a.text_center, a.font_heavy, style]}> {children} </Text> ) diff --git a/src/components/dialogs/GifSelect.tsx b/src/components/dialogs/GifSelect.tsx index e18fdf2db..15c1ba26e 100644 --- a/src/components/dialogs/GifSelect.tsx +++ b/src/components/dialogs/GifSelect.tsx @@ -1,4 +1,4 @@ -import React, { +import { useCallback, useImperativeHandle, useMemo, @@ -119,7 +119,7 @@ function GifList({ [onSelectGif], ) - const onEndReached = React.useCallback(() => { + const onEndReached = useCallback(() => { if (isFetchingNextPage || !hasNextPage || error) return fetchNextPage() }, [isFetchingNextPage, hasNextPage, error, fetchNextPage]) @@ -172,7 +172,7 @@ function GifList({ </Button> )} - <TextField.Root> + <TextField.Root style={[!gtMobile && isWeb && a.flex_1]}> <TextField.Icon icon={Search} /> <TextField.Input label={_(msg`Search GIFs`)} @@ -206,11 +206,9 @@ function GifList({ renderItem={renderItem} numColumns={gtMobile ? 3 : 2} columnWrapperStyle={[a.gap_sm]} - contentContainerStyle={[ - native([a.px_xl, {minHeight: height}]), - web(a.h_full_vh), - ]} - style={[web(a.h_full_vh)]} + contentContainerStyle={[native([a.px_xl, {minHeight: height}])]} + webInnerStyle={[web({minHeight: '80vh'})]} + webInnerContentContainerStyle={[web(a.pb_0)]} ListHeaderComponent={ <> {listHeader} diff --git a/src/components/forms/TextField.tsx b/src/components/forms/TextField.tsx index 9993317d6..3d4caa93b 100644 --- a/src/components/forms/TextField.tsx +++ b/src/components/forms/TextField.tsx @@ -48,9 +48,11 @@ const Context = createContext<{ }) Context.displayName = 'TextFieldContext' -export type RootProps = React.PropsWithChildren<{isInvalid?: boolean}> +export type RootProps = React.PropsWithChildren< + {isInvalid?: boolean} & TextStyleProp +> -export function Root({children, isInvalid = false}: RootProps) { +export function Root({children, isInvalid = false, style}: RootProps) { const inputRef = useRef<TextInput>(null) const { state: hovered, @@ -85,7 +87,14 @@ export function Root({children, isInvalid = false}: RootProps) { return ( <Context.Provider value={context}> <View - style={[a.flex_row, a.align_center, a.relative, a.w_full, a.px_md]} + style={[ + a.flex_row, + a.align_center, + a.relative, + a.w_full, + a.px_md, + style, + ]} {...web({ onClick: () => inputRef.current?.focus(), onMouseOver: onHoverIn, |