// admin/components/owner-rinpo-fab.jsx — single BR avatar for Owner (shared RinpoAvatarImage)

function OwnerRinpoFab({ badge, hidden }) {
  const [uiState, setUiState] = React.useState(
    (window.RinpoRuntime && window.RinpoRuntime.getState().uiState) || 'idle'
  );
  const [phoneOpen, setPhoneOpen] = React.useState(false);

  React.useEffect(() => {
    if (!window.RinpoRuntime) return undefined;
    return window.RinpoRuntime.subscribe(function (s) {
      setUiState(s.uiState || 'idle');
      setPhoneOpen(!!(s.open && s.surface === 'admin'));
    });
  }, []);

  if (!window.RinpoAssets || !window.RinpoAvatarImage) return null;
  if (hidden || phoneOpen) return null;

  const open = function () {
    if (window.RinpoRuntime) {
      window.RinpoRuntime.setState('greeting');
      window.RinpoRuntime.open({ tab: 'chat', source: 'avatar', surface: 'admin' });
    } else {
      location.hash = '#/rinpo';
    }
  };

  return (
    <RinpoAvatarImage
      variant="fab"
      badge={badge}
      showPill
      state={uiState}
      interactive
      className="rinpo-fab rinpo-fab--pulse owner-rinpo-fab"
      asButton
      onClick={open}
      ariaLabel="Open RINADS PHONE"
    />
  );
}

window.OwnerRinpoFab = OwnerRinpoFab;
