diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-08-30 16:18:21 -0700 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2023-08-30 16:18:21 -0700 |
commit | f9cab178b9ee2a0ccfde7e0e2cbabff7600de69c (patch) | |
tree | c8609bd39cad46a232153a3d3a598ed1b667a027 /src/view/com/util/layouts/TitleColumnLayout.tsx | |
parent | 9446c67880331452b3f79dabda183c23718edfa1 (diff) | |
parent | 59dcedeea25804188b3503dbf166fa794af20612 (diff) | |
download | voidsky-f9cab178b9ee2a0ccfde7e0e2cbabff7600de69c.tar.zst |
Merge branch 'ansh/app-812-add-custom-feed-discovery-to-onboarding' into main
Diffstat (limited to 'src/view/com/util/layouts/TitleColumnLayout.tsx')
-rw-r--r-- | src/view/com/util/layouts/TitleColumnLayout.tsx | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/view/com/util/layouts/TitleColumnLayout.tsx b/src/view/com/util/layouts/TitleColumnLayout.tsx new file mode 100644 index 000000000..49ad9fcdb --- /dev/null +++ b/src/view/com/util/layouts/TitleColumnLayout.tsx @@ -0,0 +1,69 @@ +import React from 'react' +import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' +import {usePalette} from 'lib/hooks/usePalette' +import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' + +interface Props { + testID?: string + title: JSX.Element + horizontal: boolean + titleStyle?: StyleProp<ViewStyle> + contentStyle?: StyleProp<ViewStyle> +} + +export function TitleColumnLayout({ + testID, + title, + horizontal, + children, + titleStyle, + contentStyle, +}: React.PropsWithChildren<Props>) { + const pal = usePalette('default') + const titleBg = useColorSchemeStyle(pal.viewLight, pal.view) + const contentBg = useColorSchemeStyle(pal.view, { + backgroundColor: pal.colors.background, + borderColor: pal.colors.border, + borderLeftWidth: 1, + }) + + const layoutStyles = horizontal ? styles2Column : styles1Column + return ( + <View testID={testID} style={layoutStyles.container}> + <View style={[layoutStyles.title, titleBg, titleStyle]}>{title}</View> + <View style={[layoutStyles.content, contentBg, contentStyle]}> + {children} + </View> + </View> + ) +} + +const styles2Column = StyleSheet.create({ + container: { + flexDirection: 'row', + height: '100%', + }, + title: { + flex: 1, + paddingHorizontal: 40, + paddingBottom: 80, + justifyContent: 'center', + }, + content: { + flex: 2, + paddingHorizontal: 40, + justifyContent: 'center', + }, +}) + +const styles1Column = StyleSheet.create({ + container: {}, + title: { + paddingHorizontal: 40, + paddingVertical: 40, + }, + content: { + paddingHorizontal: 40, + paddingVertical: 40, + }, +}) |