import { ViewStyle } from 'react-native' import { color } from '../../theme' /** * All screen keyboard offsets. */ export const offsets = { none: 0, } /** * The variations of keyboard offsets. */ export type KeyboardOffsets = keyof typeof offsets /** * All the variations of screens. */ export const presets = { /** * No scrolling. Suitable for full-screen carousels and components * which have built-in scrolling like FlatList. */ fixed: { outer: { backgroundColor: color.background, flex: 1, height: '100%', } as ViewStyle, inner: { justifyContent: 'flex-start', alignItems: 'stretch', height: '100%', width: '100%', } as ViewStyle, }, /** * Scrolls. Suitable for forms or other things requiring a keyboard. * * Pick this one if you don't know which one you want yet. */ scroll: { outer: { backgroundColor: color.background, flex: 1, height: '100%', } as ViewStyle, inner: { justifyContent: 'flex-start', alignItems: 'stretch' } as ViewStyle, }, } /** * The variations of screens. */ export type ScreenPresets = keyof typeof presets /** * Is this preset a non-scrolling one? * * @param preset The preset to check */ export function isNonScrolling(preset?: ScreenPresets) { // any of these things will make you scroll return !preset || !presets[preset] || preset === 'fixed' }