From 6ca8423f680db3d5145b8676cacf8c956e27b074 Mon Sep 17 00:00:00 2001 From: Robb Hamilton Date: Wed, 17 Jul 2019 17:00:19 -0400 Subject: [PATCH] Migrate icons to PF4 components and upgrade Font Awesome --- .../descriptors/status/phase.spec.tsx | 4 +-- .../components/resource-quota.spec.tsx | 14 ++++---- .../components/utils/download-button.spec.tsx | 2 +- .../views/monitoring.view.ts | 2 +- frontend/package.json | 2 +- .../formik-fields/InputSearchField.tsx | 4 ++- .../import/image-search/SearchResults.tsx | 7 ++-- .../import/image-search/SearchStatus.tsx | 5 ++- .../components/topology/TopologySideBar.scss | 5 +-- .../modals/modal-resource-launcher.tsx | 3 +- .../public/components/_build-pipeline.scss | 12 ++----- .../public/components/_icon-and-text.scss | 3 -- frontend/public/components/_image-stream.scss | 4 +-- frontend/public/components/_quota.scss | 4 --- frontend/public/components/_toggle-play.scss | 6 ++-- frontend/public/components/build-pipeline.tsx | 25 +++++++++---- .../public/components/catalog/_catalog.scss | 4 --- frontend/public/components/chargeback.tsx | 4 ++- .../cluster-settings/cluster-operator.tsx | 17 +++++---- .../cluster-settings/cluster-settings.tsx | 24 ++++++++----- .../components/configmap-and-secret-data.tsx | 5 +-- .../components/custom-resource-definition.tsx | 7 ++-- frontend/public/components/edit-yaml.jsx | 3 +- frontend/public/components/factory/list.tsx | 3 +- .../components/image-stream-timeline.tsx | 5 +-- frontend/public/components/image-stream.tsx | 8 ++--- .../public/components/masthead-toolbar.jsx | 4 +-- .../public/components/modals/_modals.scss | 2 ++ .../public/components/modals/delete-modal.jsx | 4 +-- .../modals/delete-namespace-modal.jsx | 4 +-- .../public/components/modals/taints-modal.tsx | 7 ++-- .../components/modals/tolerations-modal.tsx | 5 +-- frontend/public/components/monitoring.tsx | 36 ++++++++++++------- .../public/components/monitoring/metrics.tsx | 15 +++++--- frontend/public/components/namespace.jsx | 3 +- .../clusterserviceversion.tsx | 3 +- .../descriptors/spec/affinity.tsx | 17 ++++----- .../descriptors/spec/index.tsx | 4 +-- .../descriptors/spec/match-expressions.tsx | 5 +-- .../descriptors/status/index.tsx | 4 +-- .../descriptors/status/phase.tsx | 3 +- .../install-plan.tsx | 10 +++--- .../subscription.tsx | 9 +++-- .../public/components/overview/_overview.scss | 5 +-- .../overview/_project-overview.scss | 4 +-- .../components/overview/project-overview.tsx | 3 +- frontend/public/components/pod-exec.jsx | 3 +- frontend/public/components/resource-quota.jsx | 24 ++++++++----- frontend/public/components/routes.tsx | 6 ++-- .../components/secrets/create-secret.tsx | 9 ++--- .../components/sidebars/resource-sidebar.jsx | 14 +++++--- .../public/components/software-details.jsx | 28 +-------------- .../public/components/source-to-image.tsx | 3 +- frontend/public/components/start-guide.tsx | 3 +- frontend/public/components/terminal.jsx | 3 +- .../components/utils/_name-value-editor.scss | 11 +++--- .../components/utils/_number-spinner.scss | 4 +-- .../public/components/utils/close-button.jsx | 3 +- .../components/utils/copy-to-clipboard.tsx | 3 +- .../components/utils/download-button.tsx | 3 +- frontend/public/components/utils/dropdown.jsx | 8 ++--- .../public/components/utils/list-input.tsx | 5 +-- .../public/components/utils/log-window.jsx | 3 +- .../components/utils/name-value-editor.jsx | 15 ++++---- .../components/utils/number-spinner.tsx | 5 +-- .../public/components/utils/resource-log.jsx | 11 +++--- frontend/public/components/utils/selector.tsx | 3 +- .../public/components/utils/status-icon.tsx | 2 +- frontend/public/style.scss | 12 +++---- frontend/public/style/_common.scss | 22 +++++++----- frontend/public/style/_overrides.scss | 5 +++ frontend/public/style/_status.scss | 27 -------------- frontend/public/style/_vars.scss | 7 +--- .../public/style/mixin/_font-awesome.scss | 9 +++++ frontend/public/vendor.scss | 4 +-- frontend/yarn.lock | 7 +++- 76 files changed, 312 insertions(+), 279 deletions(-) delete mode 100644 frontend/public/style/_status.scss create mode 100644 frontend/public/style/mixin/_font-awesome.scss diff --git a/frontend/__tests__/components/operator-lifecycle-manager/descriptors/status/phase.spec.tsx b/frontend/__tests__/components/operator-lifecycle-manager/descriptors/status/phase.spec.tsx index 05706ae55edb..88bb247def58 100644 --- a/frontend/__tests__/components/operator-lifecycle-manager/descriptors/status/phase.spec.tsx +++ b/frontend/__tests__/components/operator-lifecycle-manager/descriptors/status/phase.spec.tsx @@ -15,7 +15,7 @@ describe(Phase.displayName, () => { wrapper.setProps({status}); expect(wrapper.find('.co-error').exists()).toBe(true); - expect(wrapper.find('.fa.fa-ban').exists()).toBe(true); + expect(wrapper.find('[data-test-id="ban-icon"]').exists()).toBe(true); }); it('renders status text', () => { @@ -24,6 +24,6 @@ describe(Phase.displayName, () => { expect(wrapper.find('.co-error').exists()).toBe(false); expect(wrapper.text()).toContain(status); - expect(wrapper.find('.fa.fa-ban').exists()).toBe(false); + expect(wrapper.find('[data-test-id="ban-icon"]').exists()).toBe(false); }); }); diff --git a/frontend/__tests__/components/resource-quota.spec.tsx b/frontend/__tests__/components/resource-quota.spec.tsx index 779ae8994117..2adb81414315 100644 --- a/frontend/__tests__/components/resource-quota.spec.tsx +++ b/frontend/__tests__/components/resource-quota.spec.tsx @@ -7,37 +7,37 @@ describe(ResourceQuotaTableRow.displayName, () => { it('renders usageIconClass with empty UsageIcon', () => { wrapper = shallow(); - expect(wrapper.find('i').hasClass('co-resource-quota-empty')).toBe(true); + expect(wrapper.hasClass('co-resource-quota-empty')).toBe(true); }); it('renders usageIconClass with almost empty UsageIcon', () => { wrapper = shallow(); - expect(wrapper.find('i').hasClass('pficon-resources-almost-empty')).toBe(true); + expect(wrapper.hasClass('co-resource-quota-almost-empty')).toBe(true); }); it('renders usageIconClass with almost empty UsageIcon', () => { wrapper = shallow(); - expect(wrapper.find('i').hasClass('pficon-resources-almost-empty')).toBe(true); + expect(wrapper.hasClass('co-resource-quota-almost-empty')).toBe(true); }); it('renders usageIconClass with almost full UsageIcon', () => { wrapper = shallow(); - expect(wrapper.find('i').hasClass('pficon-resources-almost-full')).toBe(true); + expect(wrapper.hasClass('co-resource-quota-almost-full')).toBe(true); }); it('renders usageIconClass with almost full UsageIcon', () => { wrapper = shallow(); - expect(wrapper.find('i').hasClass('pficon-resources-almost-full')).toBe(true); + expect(wrapper.hasClass('co-resource-quota-almost-full')).toBe(true); }); it('renders usageIconClass with full UsageIcon', () => { wrapper = shallow(); - expect(wrapper.find('i').hasClass('pficon pficon-resources-full')).toBe(true); + expect(wrapper.hasClass('co-resource-quota-full')).toBe(true); }); it('renders usageIconClass with warning UsageIcon', () => { wrapper = shallow(); - expect(wrapper.find('i').hasClass('pficon-warning-triangle-o')).toBe(true); + expect(wrapper.hasClass('co-resource-quota-exceeded')).toBe(true); }); }); diff --git a/frontend/__tests__/components/utils/download-button.spec.tsx b/frontend/__tests__/components/utils/download-button.spec.tsx index 4939dd842854..d4bfc9cf0c06 100644 --- a/frontend/__tests__/components/utils/download-button.spec.tsx +++ b/frontend/__tests__/components/utils/download-button.spec.tsx @@ -32,7 +32,7 @@ describe(DownloadButton.displayName, () => { it('renders "Downloading..." if download is in flight', (done) => { spyAndExpect(spyOn(coFetch, 'coFetch'))(Promise.resolve()).then(() => { - expect(wrapper.find('button').text().trim()).toEqual('Downloading...'); + expect(wrapper.find('button').text().trim()).toContain('Downloading...'); done(); }); diff --git a/frontend/integration-tests/views/monitoring.view.ts b/frontend/integration-tests/views/monitoring.view.ts index cf0e373d70d0..8dc38e511cb0 100644 --- a/frontend/integration-tests/views/monitoring.view.ts +++ b/frontend/integration-tests/views/monitoring.view.ts @@ -14,7 +14,7 @@ export const detailsHeadingRuleIcon = $('.co-m-nav-title .co-m-resource-alertrul export const detailsHeadingSilenceIcon = $('.co-m-nav-title .co-m-resource-silence'); export const detailsSubHeadings = $$('.co-m-pane__body h2'); export const labels = $$('.co-m-label'); -export const expiredSilenceIcon = $('.co-m-pane__details .fa-ban'); +export const expiredSilenceIcon = $('.co-m-pane__details [data-test-id="ban-icon"]'); export const ruleLink = $('.co-m-pane__details .co-resource-item__resource-name'); export const silenceComment = $$('.co-m-pane__details dd').get(-2); export const firstAlertsListLink = $$('.co-resource-list__item a.co-resource-item').first(); diff --git a/frontend/package.json b/frontend/package.json index 38f705918ad6..43be7e64d963 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -67,6 +67,7 @@ ] }, "dependencies": { + "@fortawesome/fontawesome-free": "^5.9.0", "@patternfly/patternfly": "2.17.2", "@patternfly/react-charts": "4.4.16", "@patternfly/react-core": "3.67.4", @@ -80,7 +81,6 @@ "core-js": "2.x", "d3": "^5.9.2", "file-saver": "1.3.x", - "font-awesome": "4.7.x", "formik": "2.0.1-rc.1", "fuzzysearch": "1.0.x", "history": "4.x", diff --git a/frontend/packages/dev-console/src/components/formik-fields/InputSearchField.tsx b/frontend/packages/dev-console/src/components/formik-fields/InputSearchField.tsx index a45d68a21a03..26f2fc17ff4c 100644 --- a/frontend/packages/dev-console/src/components/formik-fields/InputSearchField.tsx +++ b/frontend/packages/dev-console/src/components/formik-fields/InputSearchField.tsx @@ -2,6 +2,8 @@ import * as React from 'react'; import cx from 'classnames'; import { useField } from 'formik'; import { ControlLabel, FormControl, FormGroup, HelpBlock, InputGroup } from 'patternfly-react'; +import { SearchIcon } from '@patternfly/react-icons'; + import { SearchInputFieldProps } from './field-types'; import { getValidationState } from './field-utils'; @@ -35,7 +37,7 @@ const InputSearchField: React.FC = ({ onClick={() => onSearch(field.value)} disabled={!field.value} > -