import React, { ReactNode, RefObject, useState, useEffect, useRef, } from 'react'; import { Box, Loader } from '@wix/design-system'; import { CustomFieldModalState } from '@wix/bex-core'; import { observer } from 'mobx-react-lite'; const useElementWidth = ( initialWidth: number = 0, ): [number, RefObject] => { const [width, setWidth] = useState(initialWidth); const ref = useRef(null); useEffect(() => { if (ref.current) { setWidth(ref.current.clientWidth); } }, [ref.current]); return [width, ref]; }; export interface CustomFieldModalPrimaryButtonProps { state: CustomFieldModalState; content: ReactNode; } export const CustomFieldModalPrimaryButton = observer( (props: CustomFieldModalPrimaryButtonProps) => { const { state: { isSubmitting }, content, } = props; const [width, ref] = useElementWidth(); return (
{isSubmitting ? ( ) : ( content )}
); }, );