RagSearchButton.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  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="growi-custom-icons fs-4 align-middle lh-1">knowledge_assistant</span>
  24. </button>
  25. </NotAvailableForGuest>
  26. );
  27. };
  28. export default RagSearchButton;