1.4.3 • Published 7 months ago

@r0b0t3d/react-native-collapsible v1.4.3

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

@r0b0t3d/react-native-collapsible

Fully customizable collapsible views

alt text

Installation

yarn add @r0b0t3d/react-native-collapsible

Currently, I am using react-native-reanimated for animation. So you should install it as well

$ yarn add react-native-reanimated

Usage

import {
    CollapsibleFlatList,
    CollapsibleScrollView,
} from '@r0b0t3d/react-native-collapsible';

// ...
const MyComponent = () => {
    const { 
        collapse,   // <-- Collapse header
        expand,     // <-- Expand header
        scrollY,    // <-- Animated scroll position. In case you need to do some animation in your header or somewhere else
    } = useCollapsibleContext();

    return (
        <View>
            <CollapsibleHeaderContainer>
                <!-- Your header view -->
            </CollapsibleHeaderContainer>
            <CollapsibleFlatList
                data={data}
                renderItem={renderItem}
                persistHeaderHeight={55}
            />
        </View>
    )
}

export default withCollapsibleContext(MyComponent); // <-- wrap your component with `withCollapsibleContext`

Tips

1. Trigger scroll when scroll inside CollapsibleHeaderContainer

  • If your header doesn't contains touchable component, try pointerEvents="none"
<CollapsibleHeaderContainer>
    <View pointerEvents="none">
        <Text>Header</Text>
    </View>
</CollapsibleHeaderContainer>
  • If your header contains touchable componet, try to set pointerEvents="box-none" for every nested views that contains touchable, otherwise use pointerEvents="none"
<CollapsibleHeaderContainer>
    <View pointerEvents="box-none"> // <-- this is parent view
        <View pointerEvents="none"> // <-- this view doesn't contain touchable component
            <Text>Header</Text>
        </View>
        <View pointerEvents="box-none"> // <-- this view contain touchable component
            <View pointerEvents="none">
                <Text>Some text</Text>
            </View>
            <TouchableOpacity>
                <Text>Button</Text>
            </TouchableOpacity>
        </View>
    </View>
</CollapsibleHeaderContainer>

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

1.4.3

9 months ago

1.4.2

10 months ago

1.4.1

10 months ago

1.4.0

10 months ago

1.3.5-beta.1

10 months ago

1.3.5-beta.4

10 months ago

1.5.0-alpha.0

8 months ago

1.3.5-beta.5

10 months ago

1.5.0-alpha.1

8 months ago

1.3.5-beta.2

10 months ago

1.5.0-alpha.2

7 months ago

1.3.5-beta.3

10 months ago

1.3.5-beta.6

10 months ago

1.3.5-beta.7

10 months ago

1.3.5-alpha.0

1 year ago

1.3.4

1 year ago

1.3.5-beta.0

1 year ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.2.2

2 years ago

1.3.0

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.2

2 years ago

1.2.0-alpha.2

2 years ago

1.2.0-alpha.3

2 years ago

1.2.0-alpha.0

2 years ago

1.2.0-alpha.1

2 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

1.0.0-alpha.7

3 years ago

1.0.0-alpha.6

3 years ago

1.0.0-alpha.5

3 years ago

1.0.0-alpha.4

3 years ago

1.0.0-alpha.3

3 years ago

1.0.0-alpha.2

3 years ago

1.0.0-alpha.1

3 years ago

1.0.0-alpha.0

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago