import { useEffect } from 'react'
import debounce from 'lodash/debounce'


export function useFooterAutoWidth(props) {
  const { footerId, containerId } = props || {};

  const setFooterWidth = ()=>{
    const footerDom = document.getElementById(footerId);
    const formDom = document.getElementById(containerId);
    const formWidth = formDom?.getBoundingClientRect?.()?.width;
    if (footerDom && typeof formWidth === 'number') {
      footerDom.style.width = `${formWidth}px`;
    }
  }

  const debounceSetFooterWidth = debounce(()=>{
    setFooterWidth()
  }, 500, {
    leading: true,
  })

  useEffect(() => {
    setTimeout(()=>{
      setFooterWidth()
      const formDom = document.getElementById(containerId);
      if(ResizeObserver && formDom) {
        const resizeObserver = new ResizeObserver((entries) => {
          for (let entry of entries) {
            debounceSetFooterWidth()
          }
        });
        resizeObserver.observe(formDom);
      }
    },50)
  }, []);
}
