xref: /MusicFree/src/components/base/fab.tsx (revision 5589cdf32b2bb0f641e5ac7bf1f6152cd6b9b70e)
1fe32deaaS猫头猫import React from 'react';
2fe32deaaS猫头猫import {Pressable, StyleSheet} from 'react-native';
3fe32deaaS猫头猫import rpx from '@/utils/rpx';
4fe32deaaS猫头猫import useColors from '@/hooks/useColors';
5fe32deaaS猫头猫import {iconSizeConst} from '@/constants/uiConst';
6*5589cdf3S猫头猫import Icon, {IIconName} from '@/components/base/icon.tsx';
7fe32deaaS猫头猫
8fe32deaaS猫头猫interface IFabProps {
9*5589cdf3S猫头猫    icon?: IIconName;
10fe32deaaS猫头猫    onPress?: () => void;
11fe32deaaS猫头猫}
12fe32deaaS猫头猫export default function Fab(props: IFabProps) {
13fe32deaaS猫头猫    const {icon, onPress} = props;
14fe32deaaS猫头猫
15fe32deaaS猫头猫    const colors = useColors();
16fe32deaaS猫头猫
17fe32deaaS猫头猫    return (
18fe32deaaS猫头猫        <Pressable
19fe32deaaS猫头猫            onPress={onPress}
20fe32deaaS猫头猫            style={[
21fe32deaaS猫头猫                styles.container,
22fe32deaaS猫头猫                {
23277c5280S猫头猫                    backgroundColor: colors.backdrop,
246cfecf1cS猫头猫                    shadowColor: colors.shadow,
25fe32deaaS猫头猫                },
26fe32deaaS猫头猫            ]}>
27fe32deaaS猫头猫            {icon ? (
28fe32deaaS猫头猫                <Icon
29fe32deaaS猫头猫                    name={icon}
30277c5280S猫头猫                    color={colors.text}
31fe32deaaS猫头猫                    size={iconSizeConst.normal}
32fe32deaaS猫头猫                />
33fe32deaaS猫头猫            ) : null}
34fe32deaaS猫头猫        </Pressable>
35fe32deaaS猫头猫    );
36fe32deaaS猫头猫}
37fe32deaaS猫头猫
38fe32deaaS猫头猫const styles = StyleSheet.create({
39fe32deaaS猫头猫    container: {
40fe32deaaS猫头猫        width: rpx(108),
41fe32deaaS猫头猫        height: rpx(108),
42fe32deaaS猫头猫        borderRadius: rpx(54),
43fe32deaaS猫头猫        position: 'absolute',
44fe32deaaS猫头猫        zIndex: 10010,
45fe32deaaS猫头猫        right: rpx(36),
46fe32deaaS猫头猫        bottom: rpx(72),
47fe32deaaS猫头猫        justifyContent: 'center',
48fe32deaaS猫头猫        alignItems: 'center',
49fe32deaaS猫头猫        shadowOffset: {
50fe32deaaS猫头猫            width: 0,
51fe32deaaS猫头猫            height: 5,
52fe32deaaS猫头猫        },
53fe32deaaS猫头猫        shadowOpacity: 0.34,
54fe32deaaS猫头猫        shadowRadius: 6.27,
55fe32deaaS猫头猫
56fe32deaaS猫头猫        elevation: 10,
57fe32deaaS猫头猫    },
58fe32deaaS猫头猫});
59