diff --git a/awx/ui_next/src/screens/CredentialType/CredentialType.jsx b/awx/ui_next/src/screens/CredentialType/CredentialType.jsx
new file mode 100644
index 0000000000..1d5b2ecca3
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialType.jsx
@@ -0,0 +1,25 @@
+import React from 'react';
+import { Route, Switch, Redirect } from 'react-router-dom';
+
+import CredentialTypeDetails from './CredentialTypeDetails';
+import CredentialTypeEdit from './CredentialTypeEdit';
+
+function CredentialType() {
+ return (
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default CredentialType;
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypeAdd/CredentialTypeAdd.jsx b/awx/ui_next/src/screens/CredentialType/CredentialTypeAdd/CredentialTypeAdd.jsx
new file mode 100644
index 0000000000..4f3907e7bd
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypeAdd/CredentialTypeAdd.jsx
@@ -0,0 +1,14 @@
+import React from 'react';
+import { Card, PageSection } from '@patternfly/react-core';
+
+function CredentialTypeAdd() {
+ return (
+
+
+ Credentials Type Add
+
+
+ );
+}
+
+export default CredentialTypeAdd;
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypeAdd/index.js b/awx/ui_next/src/screens/CredentialType/CredentialTypeAdd/index.js
new file mode 100644
index 0000000000..47ad6341d0
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypeAdd/index.js
@@ -0,0 +1 @@
+export { default } from './CredentialTypeAdd';
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx b/awx/ui_next/src/screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx
new file mode 100644
index 0000000000..58543324b7
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypeDetails/CredentialTypeDetails.jsx
@@ -0,0 +1,12 @@
+import React from 'react';
+import { Card, PageSection } from '@patternfly/react-core';
+
+function CredentialTypeDetails() {
+ return (
+
+ Credential Type Details
+
+ );
+}
+
+export default CredentialTypeDetails;
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypeDetails/index.js b/awx/ui_next/src/screens/CredentialType/CredentialTypeDetails/index.js
new file mode 100644
index 0000000000..d2f8e7c13d
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypeDetails/index.js
@@ -0,0 +1 @@
+export { default } from './CredentialTypeDetails';
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypeEdit/CredentialTypeEdit.jsx b/awx/ui_next/src/screens/CredentialType/CredentialTypeEdit/CredentialTypeEdit.jsx
new file mode 100644
index 0000000000..9ccbf329d0
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypeEdit/CredentialTypeEdit.jsx
@@ -0,0 +1,12 @@
+import React from 'react';
+import { Card, PageSection } from '@patternfly/react-core';
+
+function CredentialTypeEdit() {
+ return (
+
+ Credential Type Edit
+
+ );
+}
+
+export default CredentialTypeEdit;
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypeEdit/index.js b/awx/ui_next/src/screens/CredentialType/CredentialTypeEdit/index.js
new file mode 100644
index 0000000000..8a35d6b6fd
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypeEdit/index.js
@@ -0,0 +1 @@
+export { default } from './CredentialTypeEdit';
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx b/awx/ui_next/src/screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx
new file mode 100644
index 0000000000..af9c5c0f11
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypeList/CredentialTypeList.jsx
@@ -0,0 +1,14 @@
+import React from 'react';
+import { Card, PageSection } from '@patternfly/react-core';
+
+function CredentialTypeList() {
+ return (
+
+
+ Credential Type List
+
+
+ );
+}
+
+export default CredentialTypeList;
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypeList/index.js b/awx/ui_next/src/screens/CredentialType/CredentialTypeList/index.js
new file mode 100644
index 0000000000..ed47b3615c
--- /dev/null
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypeList/index.js
@@ -0,0 +1 @@
+export { default } from './CredentialTypeList';
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypes.jsx b/awx/ui_next/src/screens/CredentialType/CredentialTypes.jsx
index c9bed43ad4..0f2c2efb0c 100644
--- a/awx/ui_next/src/screens/CredentialType/CredentialTypes.jsx
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypes.jsx
@@ -1,26 +1,48 @@
-import React, { Component, Fragment } from 'react';
+import React, { useState, useCallback } from 'react';
import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro';
-import {
- PageSection,
- PageSectionVariants,
- Title,
-} from '@patternfly/react-core';
+import { Route, Switch } from 'react-router-dom';
-class CredentialTypes extends Component {
- render() {
- const { i18n } = this.props;
- const { light } = PageSectionVariants;
+import CredentialTypeAdd from './CredentialTypeAdd';
+import CredentialTypeList from './CredentialTypeList';
+import CredentialType from './CredentialType';
+import Breadcrumbs from '../../components/Breadcrumbs';
- return (
-
-
- {i18n._(t`Credential Types`)}
-
-
-
- );
- }
+function CredentialTypes({ i18n }) {
+ const [breadcrumbConfig, setBreadcrumbConfig] = useState({
+ '/credential_types': i18n._(t`Credential Types`),
+ '/credential_types/add': i18n._(t`Create Credential Types`),
+ });
+
+ const buildBreadcrumbConfig = useCallback(
+ credentialTypes => {
+ if (!credentialTypes) {
+ return;
+ }
+ setBreadcrumbConfig({
+ '/credential_types': i18n._(t`Credential Types`),
+ '/credential_types/add': i18n._(t`Create Credential Types`),
+ [`/credential_types/${credentialTypes.id}`]: `${credentialTypes.name}`,
+ });
+ },
+ [i18n]
+ );
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
}
export default withI18n()(CredentialTypes);
diff --git a/awx/ui_next/src/screens/CredentialType/CredentialTypes.test.jsx b/awx/ui_next/src/screens/CredentialType/CredentialTypes.test.jsx
index 24373b0a50..468a55ac7a 100644
--- a/awx/ui_next/src/screens/CredentialType/CredentialTypes.test.jsx
+++ b/awx/ui_next/src/screens/CredentialType/CredentialTypes.test.jsx
@@ -4,15 +4,13 @@ import { mountWithContexts } from '../../../testUtils/enzymeHelpers';
import CredentialTypes from './CredentialTypes';
-describe('', () => {
+describe('', () => {
let pageWrapper;
let pageSections;
- let title;
beforeEach(() => {
pageWrapper = mountWithContexts();
pageSections = pageWrapper.find('PageSection');
- title = pageWrapper.find('Title');
});
afterEach(() => {
@@ -21,9 +19,7 @@ describe('', () => {
test('initially renders without crashing', () => {
expect(pageWrapper.length).toBe(1);
- expect(pageSections.length).toBe(2);
- expect(title.length).toBe(1);
- expect(title.props().size).toBe('2xl');
+ expect(pageSections.length).toBe(1);
expect(pageSections.first().props().variant).toBe('light');
});
});