Massive/AppFab.tsx

32 lines
774 B
TypeScript
Raw Normal View History

2022-11-30 01:32:42 +00:00
import {ComponentProps, useMemo} from 'react'
import {FAB, useTheme} from 'react-native-paper'
2022-11-01 23:26:46 +00:00
import {CombinedDarkTheme, CombinedDefaultTheme} from './App'
2022-10-31 04:22:08 +00:00
import {lightColors} from './colors'
2022-07-08 02:59:19 +00:00
2022-12-29 00:57:19 +00:00
export default function AppFab(props: Partial<ComponentProps<typeof FAB>>) {
const {colors} = useTheme()
2022-11-30 01:32:42 +00:00
const fabColor = useMemo(
() =>
lightColors.map(color => color.hex).includes(colors.primary)
? CombinedDarkTheme.colors.background
: CombinedDefaultTheme.colors.background,
[colors.primary],
)
2022-07-15 06:06:33 +00:00
2022-07-08 02:59:19 +00:00
return (
2022-07-15 06:06:33 +00:00
<FAB
2022-07-08 02:59:19 +00:00
icon="add"
2023-01-01 05:01:38 +00:00
testID="add"
2022-09-25 04:32:49 +00:00
color={fabColor}
2022-07-15 06:06:33 +00:00
style={{
position: 'absolute',
right: 20,
bottom: 20,
backgroundColor: colors.primary,
2022-07-15 06:06:33 +00:00
}}
2022-09-26 01:38:25 +00:00
{...props}
2022-07-08 02:59:19 +00:00
/>
2022-10-31 04:22:08 +00:00
)
2022-07-08 02:59:19 +00:00
}