FullTextSearchNotCoverAlert.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import type { JSX } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { useElasticsearchMaxBodyLengthToIndex } from '~/stores-universal/context';
  4. import { useSWRxCurrentPage } from '~/stores/page';
  5. export const FullTextSearchNotCoverAlert = (): JSX.Element => {
  6. const { t } = useTranslation();
  7. const { data: elasticsearchMaxBodyLengthToIndex } = useElasticsearchMaxBodyLengthToIndex();
  8. const { data } = useSWRxCurrentPage();
  9. const markdownLength = data?.revision?.body?.length;
  10. if (markdownLength == null || elasticsearchMaxBodyLengthToIndex == null || markdownLength <= elasticsearchMaxBodyLengthToIndex) {
  11. return <></>;
  12. }
  13. return (
  14. <div className="alert alert-warning">
  15. <strong>{t('Warning')}: {t('page_page.notice.not_indexed1')}</strong><br />
  16. <small
  17. // eslint-disable-next-line react/no-danger
  18. dangerouslySetInnerHTML={{
  19. __html: t('page_page.notice.not_indexed2', {
  20. threshold: `<code>ELASTICSEARCH_MAX_BODY_LENGTH_TO_INDEX=${elasticsearchMaxBodyLengthToIndex}</code>`,
  21. }),
  22. }}
  23. />
  24. </div>
  25. );
  26. };