'use client'; import { bool, string } from 'prop-types'; import { RippleArea } from '../ripple/ripple-area'; import { ButtonLayoutProps } from './button-layout.types'; import useRippleEffect from '../ripple/hooks/useRippleEffect'; import React, { forwardRef, useId, useRef, useState } from 'react'; export const ButtonLayout = forwardRef( ({ centralRipple = false, variant, ...props }, ref) => { const [isActive, setIsActive] = useState(false), ripplesRef = useRef(null), buttonId = useId(), events = useRippleEffect(ripplesRef, setIsActive); const classes = props.className ? `m3 ${props.className} ${variant}${isActive ? ' is-active' : ''}` : `m3 ${variant}${isActive ? ' is-active' : ''}`; return ( ); }, ); ButtonLayout.propTypes = { variant: string, centralRipple: bool, children: string, };