import React, { memo, forwardRef } from 'react';
import { Button } from '../../primitives/Button';
import type { IFabProps } from './types';
import { usePropsResolution } from '../../../hooks/useThemeProps';
import { OverlayContainer } from '@react-native-aria/overlays';
import { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';
import { extractInObject } from '../../../theme/tools/utils';
const Fab = ({ ...props }: IFabProps, ref: any) => {
/** Extracting Button Specific Props */
const [buttonProps, remainingProps] = extractInObject(props, [
'variant',
'_pressed',
'_hover',
'_text',
'_focus',
'_stack',
'_loading',
'_disabled',
'_spinner',
]);
const themeProps = usePropsResolution('FAB', remainingProps);
const {
label,
icon,
renderInPortal,
placement,
placementProps,
...newProps
} = themeProps;
const fabComponent = (
);
//TODO: refactor for responsive prop
if (useHasResponsiveProps(props)) {
return null;
}
return renderInPortal ? (
{fabComponent}
) : (
fabComponent
);
};
export default memo(forwardRef(Fab));