Add a design system (#34)

* Add theming system

* Add standard Button control and update RadioButtons

* Unify radiobutton with design system

* Update debug screen to have multiple views

* Add ToggleButton

* Update error controls to use design system

* Add typography to <Text> element

* Move DropdownButton into the design system

* Clean out old code

* Move Text into design system

* Add 'inverted' color palette

* Move LoadingPlaceholder into the design system
This commit is contained in:
Paul Frazee 2022-12-28 14:06:01 -06:00 committed by GitHub
parent cc63660982
commit 7e31645e9a
78 changed files with 1431 additions and 375 deletions

View file

@ -2,9 +2,9 @@ import React from 'react'
import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native'
import {IconProp} from '@fortawesome/fontawesome-svg-core'
import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
import {Text} from './Text'
import {Text} from './text/Text'
import {UserGroupIcon} from '../../lib/icons'
import {colors} from '../../lib/styles'
import {usePalette} from '../../lib/hooks/usePalette'
export function EmptyState({
icon,
@ -15,16 +15,23 @@ export function EmptyState({
message: string
style?: StyleProp<ViewStyle>
}) {
const pal = usePalette('default')
return (
<View style={[styles.container, style]}>
<View style={styles.iconContainer}>
{icon === 'user-group' ? (
<UserGroupIcon size="64" style={styles.icon} />
) : (
<FontAwesomeIcon icon={icon} size={64} style={styles.icon} />
<FontAwesomeIcon
icon={icon}
size={64}
style={[styles.icon, pal.textLight]}
/>
)}
</View>
<Text style={styles.text}>{message}</Text>
<Text type="body1" style={[pal.textLight, styles.text]}>
{message}
</Text>
</View>
)
}
@ -40,12 +47,9 @@ const styles = StyleSheet.create({
icon: {
marginLeft: 'auto',
marginRight: 'auto',
color: colors.gray3,
},
text: {
textAlign: 'center',
color: colors.gray5,
paddingTop: 16,
fontSize: 16,
},
})