RagSearchButton.tsx 1001 B

1234567891011121314151617181920212223242526272829303132333435
  1. import React, { useCallback } from 'react';
  2. import { NotAvailableForGuest } from '~/client/components/NotAvailableForGuest';
  3. import { useIsAiEnabled } from '~/stores-universal/context';
  4. import { useRagSearchModal } from '~/stores/rag-search';
  5. import styles from './RagSearchButton.module.scss';
  6. const RagSearchButton = (): JSX.Element => {
  7. const { data: isAiEnabled } = useIsAiEnabled();
  8. const { open: openRagSearchModal } = useRagSearchModal();
  9. const ragSearchButtonClickHandler = useCallback(() => {
  10. openRagSearchModal();
  11. }, [openRagSearchModal]);
  12. if (!isAiEnabled) {
  13. return <></>;
  14. }
  15. return (
  16. <NotAvailableForGuest>
  17. <button
  18. type="button"
  19. className={`btn btn-search ${styles['btn-rag-search']}`}
  20. onClick={ragSearchButtonClickHandler}
  21. data-testid="open-search-modal-button"
  22. >
  23. <span className="material-symbols-outlined">chat</span>
  24. </button>
  25. </NotAvailableForGuest>
  26. );
  27. };
  28. export default RagSearchButton;