import React from 'react'; import { useTranslation } from 'next-i18next'; import PropTypes from 'prop-types'; import { useAdminSocket } from '~/features/admin/states/socket-io'; import { SocketEventName } from '~/interfaces/websocket'; import LabeledProgressBar from '../Common/LabeledProgressBar'; class RebuildIndexControls extends React.Component { constructor(props) { super(props); this.state = { total: 0, current: 0, }; } componentDidMount() { this.initWebSockets(); } initWebSockets() { const { socket } = this.props; if (socket != null) { socket.on(SocketEventName.AddPageProgress, (data) => { this.setState({ total: data.totalCount, current: data.count, }); }); socket.on(SocketEventName.FinishAddPage, (data) => { this.setState({ total: data.totalCount, current: data.count, }); }); } } renderProgressBar() { const { isRebuildingProcessing, isRebuildingCompleted } = this.props; const { total, current } = this.state; const showProgressBar = isRebuildingProcessing || isRebuildingCompleted; if (!showProgressBar) { return null; } const header = isRebuildingCompleted ? 'Completed' : 'Processing..'; return (
{t('full_text_search_management.rebuild_description_1')}
{t('full_text_search_management.rebuild_description_2')}