Merge pull request #7745 from mabashian/convert-WFJTList-useRequest

Converts WorkflowJobTemplatesList to use useRequest in preparation for advanced search

Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
softwarefactory-project-zuul[bot] 2020-07-29 23:48:10 +00:00 committed by GitHub
commit b444d10369
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,10 +1,11 @@
import React, { useState, useEffect } from 'react';
import React, { useEffect, useCallback } from 'react';
import { useLocation } from 'react-router-dom';
import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro';
import { func, shape } from 'prop-types';
import { WorkflowJobTemplatesAPI } from '../../../../../../api';
import { getQSConfig, parseQueryString } from '../../../../../../util/qs';
import useRequest from '../../../../../../util/useRequest';
import PaginatedDataList from '../../../../../../components/PaginatedDataList';
import DataListToolbar from '../../../../../../components/DataListToolbar';
import CheckboxListItem from '../../../../../../components/CheckboxListItem';
@ -20,32 +21,33 @@ function WorkflowJobTemplatesList({
nodeResource,
onUpdateNodeResource,
}) {
const [count, setCount] = useState(0);
const [error, setError] = useState(null);
const [isLoading, setIsLoading] = useState(true);
const [workflowJobTemplates, setWorkflowJobTemplates] = useState([]);
const location = useLocation();
useEffect(() => {
(async () => {
setIsLoading(true);
setWorkflowJobTemplates([]);
setCount(0);
const {
result: { workflowJobTemplates, count },
error,
isLoading,
request: fetchWorkflowJobTemplates,
} = useRequest(
useCallback(async () => {
const params = parseQueryString(QS_CONFIG, location.search);
try {
const { data } = await WorkflowJobTemplatesAPI.read(params, {
role_level: 'execute_role',
});
setWorkflowJobTemplates(data.results);
setCount(data.count);
} catch (err) {
setError(err);
} finally {
setIsLoading(false);
}
})();
}, [location]);
const results = await WorkflowJobTemplatesAPI.read(params, {
role_level: 'execute_role',
});
return {
workflowJobTemplates: results.data.results,
count: results.data.count,
};
}, [location]),
{
workflowJobTemplates: [],
count: 0,
}
);
useEffect(() => {
fetchWorkflowJobTemplates();
}, [fetchWorkflowJobTemplates]);
return (
<PaginatedDataList
@ -76,19 +78,19 @@ function WorkflowJobTemplatesList({
isDefault: true,
},
{
name: i18n._(t`Organization (Name)`),
name: i18n._(t`Organization (name)`),
key: 'organization__name',
},
{
name: i18n._(t`Inventory (Name)`),
name: i18n._(t`Inventory (name)`),
key: 'inventory__name',
},
{
name: i18n._(t`Created By (Username)`),
name: i18n._(t`Created by (username)`),
key: 'created_by__username',
},
{
name: i18n._(t`Modified By (Username)`),
name: i18n._(t`Modified by (username)`),
key: 'modified_by__username',
},
]}