@rh-support/troubleshoot 1.0.47-beta.47 → 1.0.47-beta.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,7 +33,7 @@ export function CaseInformation(props) {
33
33
  React.createElement(CaseHostname, { inlineEditable: true }),
34
34
  React.createElement("div", { className: "form-group" }, !canEditDescription ? (React.createElement(React.Fragment, null,
35
35
  React.createElement("label", { htmlFor: "case-description" },
36
- React.createElement(Trans, null, "Descriptions")),
36
+ React.createElement(Trans, null, "Description")),
37
37
  React.createElement(MoreOrLess, { maxHeight: 600, appStickyHeaderRef: navBarRef },
38
38
  React.createElement("pre", { id: "case-description" },
39
39
  React.createElement("div", { dangerouslySetInnerHTML: linkifiedDescription(description) }))))) : (React.createElement(MoreOrLess, { maxHeight: 600, appStickyHeaderRef: navBarRef },
@@ -1 +1 @@
1
- {"version":3,"file":"Fts.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Fts.tsx"],"names":[],"mappings":"AAaA,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,iBAAS,GAAG,CAAC,KAAK,EAAE,MAAM,eA8KzB;kBA9KQ,GAAG;;;AAiLZ,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"Fts.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Fts.tsx"],"names":[],"mappings":"AAkBA,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,iBAAS,GAAG,CAAC,KAAK,EAAE,MAAM,eAkLzB;kBAlLQ,GAAG;;;AAqLZ,eAAe,GAAG,CAAC"}
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { InlineEdit, LoadingIndicator, TextAreaAutosize, ToastNotification, usePrevious } from '@rh-support/components';
11
11
  import { useCanEditCase } from '@rh-support/react-context';
12
- import { isFtsEditableOnEditPage, showFtsOnCaseViewEditPage, showFtsOnCreateCasePage } from '@rh-support/utils';
12
+ import { isFtsEditableOnEditPage, PreviousCaseTypes, showFtsOnCaseViewEditPage, showFtsOnCreateCasePage, } from '@rh-support/utils';
13
13
  import isEmpty from 'lodash/isEmpty';
14
14
  import isEqual from 'lodash/isEqual';
15
15
  import React, { useEffect, useState } from 'react';
@@ -26,13 +26,15 @@ const defaultProps = {
26
26
  function Fts(props) {
27
27
  const { t } = useTranslation();
28
28
  const caseUpdateError = useCaseUpdateErrorMessage();
29
- const { fts, contactInfo24x7, caseNumber, severity, entitlementSla } = useCaseSelector((state) => ({
29
+ const { fts, contactInfo24x7, caseNumber, severity, entitlementSla, caseType } = useCaseSelector((state) => ({
30
30
  fts: state.caseDetails.fts,
31
31
  caseNumber: state.caseDetails.caseNumber,
32
32
  contactInfo24x7: state.caseDetails.contactInfo24x7,
33
33
  severity: state.caseDetails.severity,
34
34
  entitlementSla: state.caseDetails.entitlementSla,
35
+ caseType: state.caseDetails.caseType,
35
36
  }), isEqual);
37
+ const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
36
38
  const caseDispatch = useCaseDispatch();
37
39
  const oldFts = usePrevious(fts);
38
40
  const onCaseDetailsChange = (caseDetails) => {
@@ -125,7 +127,7 @@ function Fts(props) {
125
127
  });
126
128
  if (isEmpty(caseNumber) && !showFtsOnCreateCasePage(entitlementSla, severity))
127
129
  return React.createElement(React.Fragment, null);
128
- if (!isEmpty(caseNumber) && !showFtsOnCaseViewEditPage(entitlementSla, severity))
130
+ if (!isEmpty(caseNumber) && (isIdea || !showFtsOnCaseViewEditPage(entitlementSla, severity)))
129
131
  return React.createElement(React.Fragment, null);
130
132
  // To disable save button if field is empty or is updating
131
133
  const isSaveDisabled = contactInfo24X7State === contactInfo24x7 || isFtsContactUpdating;
@@ -87,7 +87,7 @@ export default function SupportTypeSelectorPage() {
87
87
  icon: React.createElement(DocumentationIcon, null),
88
88
  oldSupportType: t(PreviousCaseTypes.USAGE_DOCUMENTATION_HELP),
89
89
  supportTypeHeading: t(NewCaseTypes.USAGE_DOCS_HELP),
90
- supportTypeDescription: t('Get product help, or log a content issue'),
90
+ supportTypeDescription: t('Suggest or request an update to content'),
91
91
  },
92
92
  {
93
93
  id: 5,
@@ -4,15 +4,16 @@
4
4
  import { AlertGroup } from '@patternfly/react-core';
5
5
  import React, { useContext } from 'react';
6
6
  import { RouteContext } from '../../context/RouteContext';
7
- import { hideSideBarClusterIdRuleToast } from '../../reducers/RouteConstNTypes';
7
+ import { hideSideBarClusterIdRuleToast, showSideBarCriticalSolutionsToast } from '../../reducers/RouteConstNTypes';
8
8
  import { ResubmitToast } from '../SubmitCase/ResubmitToast';
9
9
  import ClusterRecommendationToast from './ClusterRecommendationToast';
10
10
  import CriticalSolutionsToast from './CriticalSolutionsToast';
11
11
  const AlertToastWrapper = ({ submitCaseAndNavigate }) => {
12
12
  const { routeState: { activeSection }, } = useContext(RouteContext);
13
13
  const hideClusterIdReportModal = hideSideBarClusterIdRuleToast.includes(activeSection);
14
+ const showClusterRecommendation = showSideBarCriticalSolutionsToast.includes(activeSection);
14
15
  return (React.createElement(AlertGroup, { isToast: true },
15
- React.createElement(CriticalSolutionsToast, null),
16
+ showClusterRecommendation && React.createElement(CriticalSolutionsToast, null),
16
17
  !hideClusterIdReportModal && React.createElement(ClusterRecommendationToast, null),
17
18
  React.createElement(ResubmitToast, { submitCaseAndNavigate: submitCaseAndNavigate })));
18
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitCase.d.ts","sourceRoot":"","sources":["../../../../src/components/SubmitCase/SubmitCase.tsx"],"names":[],"mappings":"AAyBA,MAAM,CAAC,OAAO,UAAU,UAAU,gBAwPjC"}
1
+ {"version":3,"file":"SubmitCase.d.ts","sourceRoot":"","sources":["../../../../src/components/SubmitCase/SubmitCase.tsx"],"names":[],"mappings":"AA2BA,MAAM,CAAC,OAAO,UAAU,UAAU,gBA+QjC"}
@@ -3,7 +3,7 @@ import { ActionList, ActionListItem, Button, Text, TextVariants } from '@pattern
3
3
  import CheckCircleIcon from '@patternfly/react-icons/dist/js/icons/check-circle-icon';
4
4
  import { AlertMessage, AlertType, useFetch } from '@rh-support/components';
5
5
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
6
- import { getConfigField, getRedhatDotComHost, PCM_CONFIG_FIELD_TYPE } from '@rh-support/utils';
6
+ import { getConfigField, getRedhatDotComHost, PCM_CONFIG_FIELD_TYPE, PreviousCaseTypes } from '@rh-support/utils';
7
7
  import find from 'lodash/find';
8
8
  import isEmpty from 'lodash/isEmpty';
9
9
  import isEqual from 'lodash/isEqual';
@@ -11,6 +11,8 @@ import React, { useContext, useEffect, useState } from 'react';
11
11
  import { Trans, useTranslation } from 'react-i18next';
12
12
  import { Link } from 'react-router-dom';
13
13
  import { useCaseSelector } from '../../context/CaseContext';
14
+ import { ClusterRecommendationsContext } from '../../context/ClusterRecommendationsContext';
15
+ import { RulesStateContext } from '../../context/RulesContext';
14
16
  import { TCStateContext } from '../../context/TopContentContext';
15
17
  import { getIrtForSLAAndSeverity, getOrtForSLAAndSeverity } from '../../reducers/CaseHelpers';
16
18
  import RouteUtils from '../../utils/routeUtils';
@@ -18,14 +20,15 @@ import ClusterRecommendations from '../Recommendations/ClusterRecommendations';
18
20
  import InsightsResults from '../Recommendations/InsightsResults';
19
21
  import { RemoteRiderBanner } from '../RemoteRider/RemoteRiderBanner';
20
22
  import FileUploader from '../shared/fileUpload/FileUploader';
21
- import { isUploadingAttachment } from '../shared/fileUpload/reducer/AttachmentHelper';
23
+ import { isUploadedAndAnalyzed, isUploadingAttachment } from '../shared/fileUpload/reducer/AttachmentHelper';
22
24
  import { AttachmentStateContext } from '../shared/fileUpload/reducer/AttachmentReducerContext';
23
25
  import Suggestions from '../Suggestions/Suggestions';
24
26
  export default function SubmitCase() {
25
- const { entitlementSla, severity, caseNumber, version, versionsDetails, addNotifiedUserError, isCreatingCase, caseCreationError, caseCreationErrorMessage, selectedAccountDetails, } = useCaseSelector((state) => ({
27
+ const { entitlementSla, severity, caseNumber, caseType, version, versionsDetails, addNotifiedUserError, isCreatingCase, caseCreationError, caseCreationErrorMessage, selectedAccountDetails, } = useCaseSelector((state) => ({
26
28
  entitlementSla: state.caseDetails.entitlementSla,
27
29
  severity: state.caseDetails.severity,
28
30
  caseNumber: state.caseDetails.caseNumber,
31
+ caseType: state.caseDetails.caseType,
29
32
  version: state.caseDetails.version,
30
33
  versionsDetails: state.versionsDetails,
31
34
  addNotifiedUserError: state.addNotifiedUserError,
@@ -34,7 +37,10 @@ export default function SubmitCase() {
34
37
  caseCreationErrorMessage: state.caseCreationErrorMessage,
35
38
  selectedAccountDetails: state.selectedAccountDetails,
36
39
  }), isEqual);
40
+ const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
37
41
  const { topContentState: { topContent }, } = useContext(TCStateContext);
42
+ const { rulesState } = useContext(RulesStateContext);
43
+ const { clusterRecommendationsState: { clusterRecommendations }, } = useContext(ClusterRecommendationsContext);
38
44
  const { attachmentState } = useContext(AttachmentStateContext);
39
45
  const [isRemoteRiderBannerVisible, setIsRemoteRiderBannerVisible] = useState(true);
40
46
  const { globalMetadataState: { loggedInUser, loggedInUsersAccount, pcmConfig }, } = useContext(GlobalMetadataStateContext);
@@ -69,7 +75,9 @@ export default function SubmitCase() {
69
75
  const showRemoteRiderBanner = isRemoteRiderBannerVisible &&
70
76
  !loggedInUser.data.isInternal &&
71
77
  showRemoteRiderTermsInline &&
72
- !selectedAccountDetails.data.remoteSessionTermsAcked;
78
+ !selectedAccountDetails.data.remoteSessionTermsAcked &&
79
+ !isIdea;
80
+ const viewCaseDisabled = attachmentState.caseFiles.selectedLocalFiles.every((localFile) => !isUploadedAndAnalyzed(localFile));
73
81
  return (React.createElement(React.Fragment, null,
74
82
  React.createElement(AlertMessage, { className: "push-top", title: t('Failed to add user.'), variant: AlertType.DANGER, show: addNotifiedUserError }),
75
83
  React.createElement(AlertMessage, { className: "push-top", variant: AlertType.DANGER, show: caseCreationError, title: t("Sorry, we're experiencing an error"), isInline: true },
@@ -83,20 +91,19 @@ export default function SubmitCase() {
83
91
  React.createElement(CheckCircleIcon, { size: "lg" }),
84
92
  ' ',
85
93
  React.createElement(Text, { className: "pf-u-ml-md pf-u-mb-0", component: TextVariants.h1 },
86
- React.createElement(Trans, null, "We\u2019ve added your case to our queue"))),
94
+ React.createElement(Trans, null, "We've added your case to our queue"))),
87
95
  React.createElement("div", { className: "pf-u-mt-sm" },
88
96
  React.createElement(Trans, null, "Case number:"),
89
97
  "\u00A0",
90
- React.createElement(Link, { to: `/case/${caseNumber}`, "data-tracking-id": "get-support-queued-case-number" }, caseNumber)))) : (React.createElement(React.Fragment, null,
98
+ React.createElement(Link, { to: `/case/${caseNumber}`, "data-tracking-id": "get-support-queued-case-number", className: viewCaseDisabled ? 'case-link-disabled' : '' }, caseNumber)))) : (React.createElement(React.Fragment, null,
91
99
  React.createElement("div", { className: "submit-page-title" },
92
100
  React.createElement(CheckCircleIcon, { size: "lg" }),
93
101
  ' ',
94
102
  React.createElement(Text, { component: TextVariants.h1 },
95
103
  React.createElement(Trans, null, "We\u2019ve added your case to our queue"))),
96
- React.createElement("a", { href: getCaseURL(), target: "_blank", rel: "noopener noreferrer", "data-tracking-id": "get-support-case-number" },
104
+ React.createElement(React.Fragment, null,
97
105
  React.createElement(Trans, null, "Case number: "),
98
- " ",
99
- caseNumber)))),
106
+ React.createElement("a", { href: getCaseURL(), target: "_blank", rel: "noopener noreferrer", "data-tracking-id": "get-support-case-number", className: viewCaseDisabled ? 'case-link-disabled' : '' }, caseNumber))))),
100
107
  React.createElement("p", null,
101
108
  !versionsDetails.isFetching &&
102
109
  !versionsDetails.isFetching &&
@@ -123,13 +130,15 @@ export default function SubmitCase() {
123
130
  React.createElement(ActionListItem, null,
124
131
  React.createElement(Button, { component: "a", href: `${getRedhatDotComHost(Env.getEnvName())}/wapps/ugc/protected/personalInfo.html`, target: "_blank", variant: "secondary", "data-tracking-id": "get-support-update-info" }, "Update info")),
125
132
  React.createElement(ActionListItem, null,
126
- React.createElement(Button, { className: "pf-u-ml-md", component: (props) => React.createElement(Link, Object.assign({}, props, { to: `/case/${caseNumber}` })), href: getCaseURL(), variant: "primary", "data-tracking-id": "get-support-view-case" }, "View case"))))),
133
+ React.createElement(Button, { className: "pf-u-ml-md", component: (props) => React.createElement(Link, Object.assign({}, props, { to: `/case/${caseNumber}` })), href: getCaseURL(), variant: "primary", "data-tracking-id": "get-support-view-case", isDisabled: viewCaseDisabled }, "View case"))))),
127
134
  !isEmpty(attachmentState.caseFiles.selectedLocalFiles) && (React.createElement(FileUploader, { idToUploadTo: caseNumber, isSessionId: false, isSecureSupport: loggedInUsersAccount.data.secureSupport })),
128
135
  React.createElement("div", null,
129
- !isEmpty(topContent.data) && (React.createElement(Text, { className: "pf-u-mt-2xl pf-u-font-weight-light", component: TextVariants.h2 },
136
+ (!isEmpty(topContent.data) || !rulesState.EARules.rules || !clusterRecommendations) &&
137
+ !isIdea && (React.createElement(Text, { className: "pf-u-mt-2xl pf-u-font-weight-light", component: TextVariants.h2 },
130
138
  React.createElement(Trans, null, "Troubleshoot this case"))),
131
- React.createElement(InsightsResults, { isDisplayOnMain: true }),
139
+ React.createElement("div", { className: isIdea ? 'pf-u-mt-lg' : '' },
140
+ React.createElement(InsightsResults, { isDisplayOnMain: true })),
132
141
  React.createElement(ClusterRecommendations, { showClusterRecommendationsModal: false }),
133
- !isEmpty(topContent.data) && (React.createElement(Suggestions, { title: "Product recommendations", showTitleDescription: true, showMax: 6 }))),
134
- !isEmpty(attachmentState.caseFiles.selectedLocalFiles) && (React.createElement(FileUploader, { idToUploadTo: caseNumber, isSessionId: false, isSecureSupport: loggedInUsersAccount.data.secureSupport }))))));
142
+ !isEmpty(topContent.data) && (React.createElement("div", { className: "pf-u-mt-lg" },
143
+ React.createElement(Suggestions, { title: isIdea ? t('Search recommendations') : t('Product recommendations'), showTitleDescription: true, showMax: 6 }))))))));
135
144
  }
@@ -44,7 +44,7 @@ export default function Suggestions(props) {
44
44
  return (React.createElement("div", null,
45
45
  showTitleDescription && (React.createElement("div", { className: "card card-support" },
46
46
  !isTCSearchEnabled && (React.createElement(Trans, null,
47
- React.createElement("h3", { className: "card-heading popular-solutions" }, props.title ? 'Product recommendations' : 'Popular solutions and docs'))),
47
+ React.createElement("h3", { className: "card-heading popular-solutions" }, props.title ? props.title : 'Popular solutions and docs'))),
48
48
  isTCSearchEnabled && (React.createElement("div", { className: "card-body" },
49
49
  React.createElement(TopContentSearch, { topContentData: topContent.data, topContentResultsWrapperRef: accordionRef, onSearch: onSearchChange, dataTrackingId: "top-content-filter-troubleshoot", enableEventTracking: true }))))),
50
50
  React.createElement("pfe-accordion", { ref: accordionRef }, map(filteredTC.slice(0, maxTC), (sug, index) => {
@@ -1 +1 @@
1
- {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAcA,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,eAiDzC;kBAjDQ,mBAAmB;;;AAoD5B,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAcA,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,eAmDzC;kBAnDQ,mBAAmB;;;AAsD5B,eAAe,mBAAmB,CAAC"}
@@ -33,11 +33,11 @@ function TroubleshootSection(props) {
33
33
  React.createElement(OpenShiftClusterId, null))),
34
34
  React.createElement("section", null,
35
35
  React.createElement("header", null,
36
- React.createElement("h3", null,
36
+ topContent.data.length > 0 && (React.createElement("h3", null,
37
37
  React.createElement(Trans, null,
38
38
  "Because you selected",
39
39
  ' ',
40
- React.createElement("p", { className: "pf-u-font-weight-bold selected-product-suggestion" }, product))),
40
+ React.createElement("p", { className: "pf-u-font-weight-bold selected-product-suggestion" }, product)))),
41
41
  React.createElement(LoadingDots, { show: topContent.isFetching }),
42
42
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading suggestions') } }, canShowTopContent && !isEmpty(version) && React.createElement(Suggestions, null)),
43
43
  !isCreatingCase && React.createElement(ClusterRecommendations, { className: "push-top" }))),
@@ -1 +1 @@
1
- {"version":3,"file":"FileLister.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileLister.tsx"],"names":[],"mappings":"AA0BA,OAAO,EAAiB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGxE,eAAO,MAAM,qBAAqB,2FAAyC,CAAC;AAiB5E,UAAU,MAAM;IACZ,kBAAkB,EAAE,UAAU,EAAE,CAAC;IACjC,UAAU,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACtG,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACtE,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,eAgQ/C"}
1
+ {"version":3,"file":"FileLister.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileLister.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAiB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGxE,eAAO,MAAM,qBAAqB,2FAAyC,CAAC;AAiB5E,UAAU,MAAM;IACZ,kBAAkB,EAAE,UAAU,EAAE,CAAC;IACjC,UAAU,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACtG,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACtE,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,eAiR/C"}
@@ -2,10 +2,13 @@ import { pcm } from '@cee-eng/hydrajs';
2
2
  import { Button, ButtonVariant, Label, Progress, ProgressMeasureLocation } from '@patternfly/react-core';
3
3
  import { CircularProgressbar } from '@rh-support/components';
4
4
  import { humanizeSize } from '@rh-support/utils';
5
- import { capitalize, isEmpty } from 'lodash';
5
+ import capitalize from 'lodash/capitalize';
6
+ import isEmpty from 'lodash/isEmpty';
7
+ import isEqual from 'lodash/isEqual';
6
8
  import map from 'lodash/map';
7
9
  import React from 'react';
8
10
  import { Trans, useTranslation } from 'react-i18next';
11
+ import { useCaseSelector } from '../../../context/CaseContext';
9
12
  import { isAnalysingFile, isAnalysisFailed, isFileDeleted, isUploadAborted, isUploadedAndAnalysisFailed, isUploadedAndAnalysisSkipped, isUploadedAndAnalyzed, isUploadFailed, isUploading, isUploadingAttachment, isUploadingOnCase, isUploadingOnSession, isUploadOnTrack, isVerifyingUpload, shouldHideDescription, } from './reducer/AttachmentHelper';
10
13
  import { FileStatusHelper } from './reducer/FileStatusHelper';
11
14
  export const CaseDiagnosticsStatus = pcm.preCase.diag.CaseDiagnosticsStatus;
@@ -32,10 +35,21 @@ export default function FileLister(props) {
32
35
  props.onFileEdit &&
33
36
  props.onFileEdit(editedLocalFile, indexToEdit, { description: editedLocalFile.description.trim() });
34
37
  };
38
+ const { summary } = useCaseSelector((state) => ({
39
+ summary: state.caseDetails.summary,
40
+ }), isEqual);
35
41
  // To retry file upload
36
42
  const onRetry = (index) => () => {
37
43
  props.onRetry && props.onRetry(index);
38
44
  };
45
+ const sosReportErrorText = (errorText) => {
46
+ const isSummaryEmpty = isEmpty(summary === null || summary === void 0 ? void 0 : summary.trim());
47
+ if (isSummaryEmpty) {
48
+ return t('please detail your issue summary first');
49
+ }
50
+ else
51
+ return errorText;
52
+ };
39
53
  const onRetryAnalysis = (index) => () => {
40
54
  props.onRetryAnalysis && props.onRetryAnalysis(index);
41
55
  };
@@ -124,9 +138,11 @@ export default function FileLister(props) {
124
138
  React.createElement(Trans, null, "Try analyzing again.")))),
125
139
  isUploadFailed(localFile.uploadProgress.uploadStatus) && (React.createElement("span", { className: "text-danger" },
126
140
  React.createElement(Trans, null,
127
- "Upload Failed, ",
128
- localFile.uploadProgress.uploadErrorMessage,
129
- ". "),
141
+ "Upload Failed,",
142
+ ' ',
143
+ sosReportErrorText(localFile.uploadProgress.uploadErrorMessage),
144
+ ".",
145
+ ' '),
130
146
  React.createElement(Button, { onClick: onRetry(index), isInline: true, variant: ButtonVariant.link },
131
147
  React.createElement(Trans, null, "Try again"))))));
132
148
  })),
@@ -25,5 +25,6 @@ export declare const showSideBarEARuleWidgetSections: AppRouteSections[];
25
25
  export declare const showSideBarClusterIdRuleWidgetSections: AppRouteSections[];
26
26
  export declare const showSideBarFileRecommendationSections: AppRouteSections[];
27
27
  export declare const hideSideBarClusterIdRuleToast: AppRouteSections[];
28
+ export declare const showSideBarCriticalSolutionsToast: AppRouteSections[];
28
29
  export declare const hiddengetSupportSections: AppRouteSections[];
29
30
  //# sourceMappingURL=RouteConstNTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RouteConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/RouteConstNTypes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,eAAe;CAAG;AACnC,oBAAY,gBAAgB;IACxB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC9B;AAED,eAAO,MAAM,0BAA0B,oBAAiC,CAAC;AACzE,eAAO,MAAM,mCAAmC,oBAI/C,CAAC;AACF,eAAO,MAAM,kCAAkC,oBAO9C,CAAC;AAEF,eAAO,MAAM,+BAA+B,oBAK3C,CAAC;AAEF,eAAO,MAAM,sCAAsC,oBAIlD,CAAC;AAEF,eAAO,MAAM,qCAAqC,oBAAgE,CAAC;AAEnH,eAAO,MAAM,6BAA6B,oBAA0D,CAAC;AAErG,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAKtD,CAAC"}
1
+ {"version":3,"file":"RouteConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/RouteConstNTypes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,eAAe;CAAG;AACnC,oBAAY,gBAAgB;IACxB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC9B;AAED,eAAO,MAAM,0BAA0B,oBAAiC,CAAC;AACzE,eAAO,MAAM,mCAAmC,oBAI/C,CAAC;AACF,eAAO,MAAM,kCAAkC,oBAO9C,CAAC;AAEF,eAAO,MAAM,+BAA+B,oBAM3C,CAAC;AAEF,eAAO,MAAM,sCAAsC,oBAIlD,CAAC;AAEF,eAAO,MAAM,qCAAqC,oBAAgE,CAAC;AAEnH,eAAO,MAAM,6BAA6B,oBAA0D,CAAC;AACrG,eAAO,MAAM,iCAAiC,oBAA+B,CAAC;AAE9E,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAKtD,CAAC"}
@@ -26,6 +26,7 @@ export const showSidebarRecommendationsSections = [
26
26
  export const showSideBarEARuleWidgetSections = [
27
27
  AppRouteSections.DESCRIBE_MORE,
28
28
  AppRouteSections.DESCRIBE_IDEA,
29
+ AppRouteSections.TROUBLESHOOT,
29
30
  AppRouteSections.MANAGEMENT,
30
31
  AppRouteSections.GET_SUPPORT,
31
32
  ];
@@ -36,6 +37,7 @@ export const showSideBarClusterIdRuleWidgetSections = [
36
37
  ];
37
38
  export const showSideBarFileRecommendationSections = [AppRouteSections.DESCRIBE_MORE, AppRouteSections.MANAGEMENT];
38
39
  export const hideSideBarClusterIdRuleToast = [AppRouteSections.REVIEW, AppRouteSections.SUBMIT_CASE];
40
+ export const showSideBarCriticalSolutionsToast = [AppRouteSections.SUMMARIZE];
39
41
  export const hiddengetSupportSections = [
40
42
  AppRouteSections.TROUBLESHOOT,
41
43
  AppRouteSections.DESCRIBE_MORE,
@@ -130,7 +130,7 @@ export function getAppRouteConfugurations(isCaseCreate, isIdea, product) {
130
130
  [AppRouteSections.DESCRIBE_IDEA]: Object.assign(Object.assign({}, defaultRouteConfiguration), { title: 'Idea information', stepName: 'Describe more', nextButtonLabel: 'Submit', disableOtherSections: false, previousSection: isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.GET_SUPPORT, nextSection: isOpenshift ? null : AppRouteSections.SUBMIT_CASE, futureSections: [], hideAside: isOpenshift ? true : false }),
131
131
  [AppRouteSections.MANAGEMENT]: Object.assign(Object.assign({}, defaultRouteConfiguration), { title: 'Case management', stepName: 'Management', previousSection: AppRouteSections.DESCRIBE_MORE, nextSection: AppRouteSections.REVIEW, futureSections: [AppRouteSections.REVIEW] }),
132
132
  [AppRouteSections.REVIEW]: Object.assign(Object.assign({}, defaultRouteConfiguration), { title: 'Preview case', stepName: 'Review', nextButtonLabel: 'Submit', previousSection: AppRouteSections.MANAGEMENT, nextSection: AppRouteSections.SUBMIT_CASE, futureSections: [] }),
133
- [AppRouteSections.SUBMIT_CASE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { title: 'Case has been submitted', stepName: 'Submit', disableOtherSections: true, hideAside: false, showBackToSection: false, previousSection: null, showOpenCaseButton: false, showNewIssueButton: false, backToSection: AppRouteSections.GET_SUPPORT, backToSectionLabel: 'Back to open case', nextSection: null, futureSections: [] }),
133
+ [AppRouteSections.SUBMIT_CASE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { title: 'Case has been submitted', stepName: 'Submit', disableOtherSections: true, hideAside: false, previousSection: null, showOpenCaseButton: false, showNewIssueButton: false, showBackToSection: true, backToSection: AppRouteSections.SUMMARIZE, backToSectionLabel: 'Back to open case', nextSection: null, futureSections: [] }),
134
134
  };
135
135
  return appRouteConfugurations;
136
136
  }
@@ -1186,339 +1186,6 @@ div.support-grid-case-details.support-case {
1186
1186
  }
1187
1187
  }
1188
1188
 
1189
- /* Case details grid */
1190
- &.support-case {
1191
- display: -ms-flexbox;
1192
- display: flex;
1193
- -ms-flex-direction: row;
1194
- flex-direction: row;
1195
- margin-bottom: 0;
1196
-
1197
- @media (min-width: 992px) {
1198
- -ms-flex-direction: row;
1199
- flex-direction: row;
1200
- }
1201
-
1202
- .grid-main {
1203
- padding: 0rem;
1204
- min-height: 75vh;
1205
- width: 100%;
1206
- background-color: #f0f0f0;
1207
-
1208
- .grid-main-section {
1209
- padding: 1rem;
1210
- background-color: #fff;
1211
-
1212
- .case-overview-header {
1213
- padding: 0.5rem;
1214
-
1215
- header {
1216
- display: -ms-flexbox;
1217
- display: flex;
1218
- -ms-flex-direction: column;
1219
- flex-direction: column;
1220
- -ms-flex-align: center;
1221
- align-items: center;
1222
- margin-bottom: 0.6rem;
1223
-
1224
- .case-ID {
1225
- .fake-disable {
1226
- cursor: not-allowed;
1227
- border-color: #d1d1d1;
1228
- color: #8d8d8d;
1229
- }
1230
- }
1231
-
1232
- .pf-c-switch {
1233
- display: -ms-flexbox;
1234
- display: flex;
1235
- align-items: center;
1236
- }
1237
-
1238
- .pf-c-switch__label {
1239
- padding-left: 0.6rem;
1240
- font-size: 15px;
1241
-
1242
- & .pf-m-on {
1243
- color: #06c;
1244
- }
1245
- }
1246
-
1247
- & > * {
1248
- width: 100%;
1249
- margin-bottom: 1rem;
1250
- }
1251
- }
1252
-
1253
- .case-details-header-secondary {
1254
- display: -ms-flexbox;
1255
- display: flex;
1256
- -ms-flex-direction: column;
1257
- flex-direction: column;
1258
-
1259
- .case-support-level a {
1260
- font-size: initial;
1261
- }
1262
-
1263
- .pf-c-button {
1264
- font-size: 15px;
1265
- margin-left: auto;
1266
-
1267
- svg {
1268
- margin-left: 6px;
1269
- font-size: 14px;
1270
- vertical-align: -0.12em;
1271
- }
1272
- }
1273
-
1274
- & > * {
1275
- width: 100%;
1276
- }
1277
-
1278
- & > *:first-child {
1279
- margin-bottom: 0.5rem;
1280
- }
1281
-
1282
- & > *:last-child {
1283
- text-align: left;
1284
- }
1285
- }
1286
- }
1287
-
1288
- .case-overview-main {
1289
- display: -ms-flexbox;
1290
- display: flex;
1291
- -ms-flex-direction: row;
1292
- flex-direction: row;
1293
- -ms-flex-pack: justify;
1294
- justify-content: space-between;
1295
- -ms-flex-wrap: wrap;
1296
- flex-wrap: wrap;
1297
-
1298
- & > * {
1299
- margin: 9px;
1300
- flex-basis: 100%;
1301
-
1302
- &:last-child {
1303
- padding-left: 0;
1304
- }
1305
-
1306
- &:last-child {
1307
- margin-bottom: 0;
1308
- padding-right: 0;
1309
- }
1310
-
1311
- & > h3 {
1312
- font-size: 14px;
1313
- }
1314
-
1315
- & > *:not(h3) {
1316
- font-size: 14px;
1317
- line-height: 2;
1318
- }
1319
-
1320
- @media (min-width: 768px) {
1321
- flex-basis: 45%;
1322
- }
1323
-
1324
- @media (min-width: 1200px) {
1325
- flex: 1 1 auto;
1326
- }
1327
- }
1328
-
1329
- .account > *:nth-child(2) {
1330
- display: -ms-flexbox;
1331
- display: flex;
1332
- -ms-flex-align: center;
1333
- align-items: center;
1334
-
1335
- .add-remove-bookmark {
1336
- padding: 0px 12px;
1337
- }
1338
- }
1339
- }
1340
-
1341
- .case-overview-secondary {
1342
- .form-group {
1343
- margin-bottom: 0;
1344
- }
1345
- }
1346
-
1347
- label {
1348
- font-size: 14px;
1349
- }
1350
-
1351
- @media (min-width: 768px) {
1352
- padding: 2rem 1.8rem;
1353
-
1354
- .case-overview-header {
1355
- padding: 0;
1356
-
1357
- header {
1358
- -ms-flex-direction: row;
1359
- flex-direction: row;
1360
- -ms-flex-align: center;
1361
- align-items: center;
1362
- -ms-flex-pack: justify;
1363
- justify-content: space-between;
1364
-
1365
- .pf-c-switch {
1366
- margin-left: auto;
1367
- }
1368
-
1369
- & > * {
1370
- width: initial;
1371
- margin-bottom: 0;
1372
- }
1373
- }
1374
-
1375
- .case-details-header-secondary {
1376
- -ms-flex-direction: row;
1377
- flex-direction: row;
1378
- -ms-flex-align: center;
1379
- align-items: center;
1380
- -ms-flex-pack: justify;
1381
- justify-content: space-between;
1382
-
1383
- & > * {
1384
- width: initial;
1385
- }
1386
-
1387
- & > *:first-child {
1388
- width: initial;
1389
- margin-bottom: 0;
1390
- }
1391
- }
1392
- }
1393
- }
1394
- }
1395
-
1396
- @media (min-width: 1200px) {
1397
- -ms-flex: 1 1 auto;
1398
- flex: 1 1 auto;
1399
- }
1400
- }
1401
-
1402
- .grid-aside {
1403
- display: -ms-flexbox;
1404
- display: flex;
1405
- -ms-flex-direction: column;
1406
- flex-direction: column;
1407
- padding: 0;
1408
- max-width: 300px;
1409
-
1410
- .grid-aside-content {
1411
- padding: 1rem 1.5rem !important;
1412
- height: 100%; // Warning: removing this will make the sidebar's content sticky
1413
- min-width: 300px;
1414
-
1415
- @media (min-width: 992px) {
1416
- min-width: 400px;
1417
- }
1418
-
1419
- @media (min-width: 1200px) {
1420
- min-width: 500px;
1421
- }
1422
-
1423
- @media (min-width: 1450px) {
1424
- min-width: 550px;
1425
- }
1426
-
1427
- @media (min-width: 2000px) {
1428
- min-width: 600px;
1429
- }
1430
-
1431
- & > * {
1432
- margin: 1rem 0 2rem;
1433
- }
1434
- }
1435
-
1436
- .sidebar-header {
1437
- background-color: #dedede;
1438
- border-top: 1px solid #ccc;
1439
- border-bottom: 1px solid #ccc;
1440
-
1441
- button {
1442
- display: -ms-flexbox;
1443
- display: flex;
1444
- align-items: center;
1445
- width: 100%;
1446
- padding: 1.8rem 1.5rem;
1447
- font-weight: 500;
1448
-
1449
- span {
1450
- font-size: 1rem;
1451
- }
1452
-
1453
- &:hover,
1454
- &:focus {
1455
- background-color: darken(#dedede, 5%);
1456
- }
1457
- }
1458
- }
1459
-
1460
- .sidebar-content {
1461
- background-color: #f0f0f0;
1462
- }
1463
-
1464
- &.sidebar-collapsed {
1465
- button:first-of-type {
1466
- margin-bottom: 0.4rem;
1467
- padding: 1.8rem 1.5rem;
1468
- background-color: #dedede;
1469
- border-top: 1px solid #ccc;
1470
- border-bottom: 1px solid #ccc;
1471
- }
1472
-
1473
- button.sidebar-section-toggle-btn {
1474
- padding: 1.6rem 1.5rem;
1475
- color: #494c50;
1476
-
1477
- &:hover,
1478
- &:focus {
1479
- background-color: #dedede;
1480
- }
1481
- }
1482
- }
1483
-
1484
- @media (min-width: 992px) {
1485
- max-width: 400px;
1486
- }
1487
-
1488
- @media (min-width: 1200px) {
1489
- -ms-flex: 0 1 auto;
1490
- flex: 0 1 auto;
1491
- max-width: 500px;
1492
- }
1493
-
1494
- @media (min-width: 1450px) {
1495
- max-width: 550px;
1496
- }
1497
-
1498
- @media (min-width: 2000px) {
1499
- -ms-flex: 0 1 auto;
1500
- flex: 0 1 auto;
1501
- max-width: 600px;
1502
- }
1503
- }
1504
-
1505
- .pf-c-expandable-section__toggle {
1506
- width: 100%;
1507
- text-align: left;
1508
- background-color: #f0f0f0;
1509
- border: 1px solid #d2d2d2;
1510
- padding: 0.8rem 1rem;
1511
- font-size: 16px;
1512
- }
1513
-
1514
- button:not(.close),
1515
- button:not(.pf-c-expandable-section__toggle),
1516
- .pf-c-button,
1517
- .btn.btn-app {
1518
- font-size: 14px;
1519
- }
1520
- }
1521
-
1522
1189
  form h2,
1523
1190
  form h3,
1524
1191
  form h4,
@@ -1635,11 +1302,16 @@ div.support-grid-case-details.support-case {
1635
1302
  grid-template-rows: 1fr auto;
1636
1303
  grid-template-areas:
1637
1304
  'main'
1638
- 'main';
1305
+ 'nav';
1639
1306
  min-height: 100vh;
1640
1307
  margin-bottom: -2.5rem;
1641
1308
  padding: 0;
1642
1309
 
1310
+ /* Layout - progress section */
1311
+ .grid-progress {
1312
+ grid-area: progress;
1313
+ }
1314
+
1643
1315
  .grid-main {
1644
1316
  -ms-grid-row: 1;
1645
1317
  -ms-grid-column: 1;
@@ -1650,7 +1322,7 @@ div.support-grid-case-details.support-case {
1650
1322
  & > .grid-main-section.grid-main-active-section {
1651
1323
  padding: 1.5rem;
1652
1324
  outline: none;
1653
- min-height: 100vh;
1325
+ min-height: 80vh;
1654
1326
 
1655
1327
  & > header {
1656
1328
  margin-bottom: 2rem;
@@ -1663,7 +1335,30 @@ div.support-grid-case-details.support-case {
1663
1335
  }
1664
1336
 
1665
1337
  .grid-navigation {
1666
- display: none;
1338
+ -ms-grid-row: 2;
1339
+ -ms-grid-column: 1;
1340
+ grid-area: nav;
1341
+ position: -webkit-sticky;
1342
+ position: sticky;
1343
+ bottom: 0;
1344
+ display: -webkit-box;
1345
+ display: -ms-flexbox;
1346
+ display: flex;
1347
+ padding: 1rem;
1348
+ background-color: #fff;
1349
+ border: 1px solid #d9d9d9;
1350
+ border-bottom: initial;
1351
+ border-left: initial;
1352
+ z-index: 999;
1353
+
1354
+ /* Layout - navigation section */
1355
+ button:first-child {
1356
+ margin-right: 1em;
1357
+ }
1358
+
1359
+ button:last-child:not(.btn-primary) {
1360
+ margin-left: auto;
1361
+ }
1667
1362
  }
1668
1363
 
1669
1364
  .grid-aside {
@@ -1717,15 +1412,15 @@ div.support-grid-case-details.support-case {
1717
1412
  }
1718
1413
  }
1719
1414
 
1720
- /* Medium devices */
1415
+ /* Medium devices - add progress */
1721
1416
  @media (min-width: 768px) {
1722
1417
  -ms-grid-columns: 85px 2fr;
1723
1418
  grid-template-columns: 85px 2fr;
1724
1419
  -ms-grid-rows: 1fr auto;
1725
1420
  grid-template-rows: 1fr auto;
1726
1421
  grid-template-areas:
1727
- 'main main'
1728
- 'main main';
1422
+ 'main'
1423
+ 'nav';
1729
1424
 
1730
1425
  .grid-main {
1731
1426
  -ms-grid-row: 1;
@@ -1740,11 +1435,13 @@ div.support-grid-case-details.support-case {
1740
1435
  }
1741
1436
 
1742
1437
  .grid-navigation {
1743
- display: none;
1438
+ -ms-grid-row: 2;
1439
+ -ms-grid-column: 2;
1440
+ padding: 1rem 2rem;
1744
1441
  }
1745
1442
  }
1746
1443
 
1747
- /* Large devices */
1444
+ /* Large devices - add aside */
1748
1445
  @media (min-width: 992px) {
1749
1446
  -ms-grid-columns: 85px auto 33%;
1750
1447
  grid-template-columns: 85px auto 33%;
@@ -1762,13 +1459,13 @@ div.support-grid-case-details.support-case {
1762
1459
  .grid-aside {
1763
1460
  -ms-grid-row: 1;
1764
1461
  -ms-grid-row-span: 2;
1765
- -ms-grid-column: 3;
1462
+ -ms-grid-column: 2;
1766
1463
  display: inline-block;
1767
1464
  }
1768
1465
 
1769
1466
  .grid-main {
1770
- -ms-grid-row: 2;
1771
- -ms-grid-column: 2;
1467
+ -ms-grid-row: 1;
1468
+ -ms-grid-column: 1;
1772
1469
 
1773
1470
  & > .grid-main-section {
1774
1471
  padding: 2.5rem 1.5rem;
@@ -1776,24 +1473,21 @@ div.support-grid-case-details.support-case {
1776
1473
  }
1777
1474
 
1778
1475
  .grid-navigation {
1779
- display: none;
1476
+ -ms-grid-row: 2;
1477
+ -ms-grid-column: 1;
1780
1478
  }
1781
1479
  }
1782
1480
 
1783
- /* XL devices */
1481
+ /* XL devices - Add step names to progress section */
1784
1482
  @media (min-width: 1200px) {
1785
1483
  -ms-grid-columns: 245px 1fr 32%;
1786
1484
  grid-template-columns: 245px auto 32%;
1787
1485
  }
1788
1486
 
1789
- /* XXL devices */
1487
+ /* XXL devices - Progress section fixed width */
1790
1488
  @media (min-width: 2000px) {
1791
1489
  -ms-grid-columns: 300px 1fr 33%;
1792
1490
  grid-template-columns: 300px auto 33%;
1793
-
1794
- .grid-progress {
1795
- padding: 1rem;
1796
- }
1797
1491
  }
1798
1492
 
1799
1493
  form h2,
@@ -2088,3 +1782,11 @@ div.case-details-ref-number {
2088
1782
  }
2089
1783
  margin-bottom: 0 !important;
2090
1784
  }
1785
+
1786
+ .case-link-disabled {
1787
+ pointer-events: none;
1788
+ a:link,
1789
+ a:visited {
1790
+ color: var(--pf-global--Color--100) !important;
1791
+ }
1792
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "1.0.47-beta.47",
3
+ "version": "1.0.47-beta.51",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -26,7 +26,7 @@
26
26
  "lib/**/*"
27
27
  ],
28
28
  "peerDependencies": {
29
- "@cee-eng/hydrajs": "4.15.64",
29
+ "@cee-eng/hydrajs": "4.15.71",
30
30
  "@cee-eng/ui-toolkit": "1.1.6",
31
31
  "@patternfly/patternfly": "4.196.7",
32
32
  "@patternfly/pfe-accordion": "1.12.3",
@@ -63,7 +63,7 @@
63
63
  "react-virtualized": "^9.21.2"
64
64
  },
65
65
  "dependencies": {
66
- "@cee-eng/hydrajs": "4.15.64",
66
+ "@cee-eng/hydrajs": "4.15.71",
67
67
  "@cee-eng/ui-toolkit": "1.1.6",
68
68
  "@patternfly/patternfly": "4.196.7",
69
69
  "@patternfly/pfe-accordion": "1.12.3",
@@ -73,11 +73,11 @@
73
73
  "@patternfly/react-core": "4.264.0",
74
74
  "@progress/kendo-drawing": "^1.6.0",
75
75
  "@progress/kendo-react-pdf": "^3.12.0",
76
- "@rh-support/components": "1.2.22-beta.44",
77
- "@rh-support/react-context": "1.0.30-beta.44",
76
+ "@rh-support/components": "1.2.22-beta.49",
77
+ "@rh-support/react-context": "1.0.30-beta.49",
78
78
  "@rh-support/types": "0.2.1-beta.33",
79
- "@rh-support/user-permissions": "1.0.12-beta.34",
80
- "@rh-support/utils": "1.0.10-beta.34",
79
+ "@rh-support/user-permissions": "1.0.12-beta.49",
80
+ "@rh-support/utils": "1.0.10-beta.39",
81
81
  "@types/react-redux": "^7.1.12",
82
82
  "@types/redux": "^3.6.0",
83
83
  "@webcomponents/webcomponentsjs": "^2.2.10",
@@ -145,5 +145,5 @@
145
145
  "not ie <= 11",
146
146
  "not op_mini all"
147
147
  ],
148
- "gitHead": "4130934e48ff1414eaafc75bb192f6895619c10e"
148
+ "gitHead": "f348358e36d49191d1c87d303579085ab1cbdcbc"
149
149
  }