📝 Added more details to import statuses

This commit is contained in:
2023-08-18 23:37:35 -04:00
parent a2ae4ce79d
commit 8c6890a044
2 changed files with 54 additions and 30 deletions

View File

@@ -6,6 +6,7 @@ import {
} from "../actions/fileops.actions"; } from "../actions/fileops.actions";
import "react-loader-spinner/dist/loader/css/react-spinner-loader.css"; import "react-loader-spinner/dist/loader/css/react-spinner-loader.css";
import Loader from "react-loader-spinner"; import Loader from "react-loader-spinner";
import { isUndefined } from "lodash";
interface IProps { interface IProps {
matches?: unknown; matches?: unknown;
@@ -35,6 +36,10 @@ export const Import = (props: IProps): ReactElement => {
const failedImportJobCount = useSelector( const failedImportJobCount = useSelector(
(state: RootState) => state.fileOps.failedImportJobCount, (state: RootState) => state.fileOps.failedImportJobCount,
); );
const lastQueueJob = useSelector(
(state: RootState) => state.fileOps.lastQueueJob,
);
const libraryQueueImportStatus = useSelector( const libraryQueueImportStatus = useSelector(
(state: RootState) => state.fileOps.IMSCallInProgress, (state: RootState) => state.fileOps.IMSCallInProgress,
); );
@@ -55,12 +60,12 @@ export const Import = (props: IProps): ReactElement => {
}, [isImportQueuePaused]); }, [isImportQueuePaused]);
const pauseIconText = ( const pauseIconText = (
<> <>
<i className="fa-solid fa-pause mr-2"></i> Pause Import <i className="fa-solid fa-pause mr-2"></i> Pause
</> </>
); );
const playIconText = ( const playIconText = (
<> <>
<i className="fa-solid fa-play mr-2"></i> Resume Import <i className="fa-solid fa-play mr-2"></i> Resume
</> </>
); );
return ( return (
@@ -100,35 +105,52 @@ export const Import = (props: IProps): ReactElement => {
<span>Start Import</span> <span>Start Import</span>
</button> </button>
</p> </p>
<div className="columns is-multiline is-half"> <table className="table">
<div className="column is-2 has-text-centered"> <thead>
<div className="box has-background-success-light"> <tr>
<span className="is-size-2 has-text-weight-bold"> <th>
{libraryQueueResults} <abbr title="Position">Completed Jobs</abbr>
</span> </th>
</div> <th>Failed Jobs</th>
</div> <th>
<div className="column is-2 has-text-centered"> <abbr title="Played">Queue Controls</abbr>
<div className="box has-background-danger"> </th>
<span className="is-size-2 has-text-weight-bold"> </tr>
{failedImportJobCount} </thead>
</span>
</div>
</div>
<div className="column"> <tbody>
<div className="content"> <tr>
<div className="control"> <th>
<button <div className="box has-background-success-light has-text-centered">
className="button is-warning is-light" <span className="is-size-2 has-text-weight-bold">
onClick={toggleImport} {libraryQueueResults}
> </span>
{!isImportQueuePaused ? pauseIconText : playIconText} </div>
</button> </th>
</div> <td>
</div> {!isUndefined(failedImportJobCount) && (
</div> <div className="box has-background-danger has-text-centered">
</div> <span className="is-size-2 has-text-weight-bold">
{failedImportJobCount}
</span>
</div>
)}
</td>
<td>
<div className="control">
<button
className="button is-warning is-light"
onClick={toggleImport}
>
{!isImportQueuePaused ? pauseIconText : playIconText}
</button>
</div>
</td>
</tr>
</tbody>
</table>
Imported <span className="has-text-weight-bold">{lastQueueJob}</span>
</section> </section>
</div> </div>
); );

View File

@@ -58,6 +58,7 @@ const initialState = {
libraryComics: [], libraryComics: [],
volumes: [], volumes: [],
librarySearchResultsFormatted: [], librarySearchResultsFormatted: [],
lastQueueJob: "",
librarySearchResultCount: 0, librarySearchResultCount: 0,
failedJobCount: 0, failedJobCount: 0,
libraryQueueResults: [], libraryQueueResults: [],
@@ -163,6 +164,7 @@ function fileOpsReducer(state = initialState, action) {
return { return {
...state, ...state,
librarySearchResultCount: action.completedJobCount, librarySearchResultCount: action.completedJobCount,
lastQueueJob: action.importResult.rawFileDetails.name,
recentComics: [...state.recentComics, action.importResult], recentComics: [...state.recentComics, action.importResult],
}; };
} }