@rh-support/troubleshoot 2.6.28 → 2.6.30

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.
Files changed (21) hide show
  1. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +1 -1
  2. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  3. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +18 -14
  4. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts.map +1 -1
  5. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +1 -1
  6. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +1 -1
  7. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +1 -1
  9. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +1 -1
  10. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +1 -1
  11. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +1 -1
  13. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  14. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +7 -5
  15. package/lib/esm/components/SessionRestore/RestoreLastSessionModal.d.ts.map +1 -1
  16. package/lib/esm/components/SessionRestore/RestoreLastSessionModal.js +5 -3
  17. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  18. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +8 -4
  19. package/lib/esm/scss/_main.scss +28 -0
  20. package/lib/esm/scss/_pf-overrides.scss +14 -0
  21. package/package.json +3 -3
@@ -209,7 +209,7 @@ export function CaseDetailsAside(props) {
209
209
  React.createElement(TrendUpIcon, null)), variant: "link", className: "sidebar-section-toggle-btn", onClick: () => setSectionToScollRef(createEscalationRef), "aria-label": t('Request an escalation') })))))),
210
210
  React.createElement("pfe-collapse-panel", { className: "sidebar-content", "pfe-animation": "false", id: "case-details-aside-content", ref: caseDetailsAsidePanelRef },
211
211
  React.createElement("div", { className: "grid-aside-content" },
212
- React.createElement("div", null,
212
+ React.createElement("div", { className: "grid-aside-content-inner-div" },
213
213
  canSeeToggleCustomerView && (React.createElement("div", { className: "pf-v6-u-display-flex customer-view-toggle", ref: toggleCustomerViewRef },
214
214
  React.createElement("span", { className: "customer-view-switch-label" },
215
215
  preferredOrDefaultCaseView() ? t('Customer view') : t('Internal view'),
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSolutions.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseSolutions/CaseSolutions.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAwE3E,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;CACnC;AAUD,eAAO,MAAM,aAAa,+EA8gBxB,CAAC"}
1
+ {"version":3,"file":"CaseSolutions.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseSolutions/CaseSolutions.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAwE3E,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;CACnC;AAUD,eAAO,MAAM,aAAa,+EAihBxB,CAAC"}
@@ -19,7 +19,7 @@ var __rest = (this && this.__rest) || function (s, e) {
19
19
  return t;
20
20
  };
21
21
  import { search } from '@cee-eng/hydrajs';
22
- import { Accordion, AccordionContent, AccordionItem, AccordionToggle, Button, Card, CardBody, CardHeader, Modal, ModalFooter, ModalVariant, } from '@patternfly/react-core';
22
+ import { Button, Card, CardBody, CardExpandableContent, CardHeader, Modal, ModalFooter, ModalVariant, } from '@patternfly/react-core';
23
23
  import { PaginatedList, ToastNotification } from '@rh-support/components';
24
24
  import { useGlobalStateContext } from '@rh-support/react-context';
25
25
  import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
@@ -102,6 +102,10 @@ export const CaseSolutions = forwardRef((props, ref) => {
102
102
  }), isEqual);
103
103
  const caseDispatch = useCaseDispatch();
104
104
  const caseOverviewDispatch = useContext(CaseOverviewDispatchContext);
105
+ const [isExpanded, setIsExpanded] = useState(false);
106
+ const onExpand = () => {
107
+ setIsExpanded(!isExpanded);
108
+ };
105
109
  const { recommendationState: { isLoadingRecommendations, allDocs }, } = useRecommendationStateContext();
106
110
  const { globalMetadataState: { loggedInUsersAccount }, } = useGlobalStateContext();
107
111
  const recommendationsDispatch = useRecommendationDispatchContext();
@@ -109,7 +113,6 @@ export const CaseSolutions = forwardRef((props, ref) => {
109
113
  const { caseNumber, isSecureSupportAccount } = props;
110
114
  const [isPinLoading, setIsPinLoading] = useState({});
111
115
  const [isCaseCloseLoading, setIsCaseCloseLoading] = useState(false);
112
- const [handPickedOpen, setHandPickedOpen] = useState(true);
113
116
  const [pinnedOpen, setPinnedOpen] = useState(true);
114
117
  const [recommendations, setRecommendations] = useState([]);
115
118
  const [topRecommendations, setTopRecommendations] = useState([]);
@@ -295,22 +298,23 @@ export const CaseSolutions = forwardRef((props, ref) => {
295
298
  React.createElement(Trans, null, "Close case")))));
296
299
  return (React.createElement(React.Fragment, null,
297
300
  closeCaseModal,
298
- React.createElement(Accordion, { className: "card card-white case-details-aside-solutions" },
299
- linkedRecommendations.length !== 0 && (React.createElement(AccordionItem, { isExpanded: handPickedOpen },
300
- React.createElement(AccordionToggle, { id: "sol-handpicked", onClick: () => setHandPickedOpen((pre) => !pre) },
301
- React.createElement("span", null, canLinkUnlink ? (React.createElement(Trans, null, "Handpicked by you")) : (React.createElement(Trans, null, "Handpicked for this case"))),
302
- React.createElement("span", { className: "badge-item pf-v6-u-font-size-sm pf-v6-u-mx-sm" }, linkedRecommendations.length)),
303
- React.createElement(AccordionContent, null, !hasLink ? (!canLinkUnlink ? (React.createElement(Trans, null, "If a Red Hat engineer finds an article or solution that can help with your case, they'll pin it here.")) : (React.createElement(React.Fragment, null))) : (React.createElement(PaginatedList, { id: "case-details-handpicked-recommendations", listItems: linkedRecommendations.map((rec, index) => canLinkUnlink
301
+ linkedRecommendations.length > 0 && (React.createElement(Card, { isExpanded: isExpanded },
302
+ React.createElement(CardHeader, { className: "pf-v6-u-display-flex", onExpand: onExpand },
303
+ React.createElement("span", null, canLinkUnlink ? React.createElement(Trans, null, "Handpicked by you") : React.createElement(Trans, null, "Handpicked for this case")),
304
+ React.createElement("span", { className: "badge-item pf-v6-u-font-size-sm pf-v6-u-mx-sm" }, linkedRecommendations.length)),
305
+ React.createElement(CardExpandableContent, null,
306
+ React.createElement(CardBody, null, !hasLink ? (!canLinkUnlink ? (React.createElement(Trans, null, "If a Red Hat engineer finds an article or solution that can help with your case, they'll pin it here.")) : (React.createElement(React.Fragment, null))) : (React.createElement(PaginatedList, { id: "case-details-handpicked-recommendations", listItems: linkedRecommendations.map((rec, index) => canLinkUnlink
304
307
  ? renderHandPickedByRedHatter(rec, index, 'handpicked-recommendations')
305
308
  : renderHandpickedCustomerView(rec, index, 'handpicked-recommendations')), perPage: 5, className: "list-icons list-icons-flush", isFetching: !!isLoadingRecommendations, perPageOptions: [
306
309
  { title: '5', value: 5 },
307
310
  { title: '10', value: 10 },
308
- ] }))))),
309
- pinnedRecommendations.length !== 0 && (React.createElement(AccordionItem, { isExpanded: pinnedOpen },
310
- React.createElement(AccordionToggle, { id: "sol-pinned", onClick: () => setPinnedOpen((pre) => !pre) },
311
- React.createElement("span", null, canLinkUnlink ? (React.createElement(Trans, null, "Pinned by customer")) : (React.createElement(Trans, null, "My pinned recommendations"))),
312
- React.createElement("span", { className: "badge-item pf-v6-u-font-size-sm pf-v6-u-mx-sm" }, pinnedRecommendations.length)),
313
- React.createElement(AccordionContent, null, !hasPin ? (!canLinkUnlink ? (React.createElement(Trans, null, "When you save a recommended article or solution, you'll see it here. Saved items display only in this case and are not saved for later.")) : (React.createElement(React.Fragment, null))) : (React.createElement(PaginatedList, { id: "case-details-pinned-recommendations", listItems: pinnedRecommendations.map((rec, index) => canLinkUnlink
311
+ ] })))))),
312
+ pinnedRecommendations.length > 0 && (React.createElement(Card, { isExpanded: pinnedOpen },
313
+ React.createElement(CardHeader, { className: "pf-v6-u-display-flex", onExpand: () => setPinnedOpen((pre) => !pre) },
314
+ React.createElement("span", null, canLinkUnlink ? (React.createElement(Trans, null, "Pinned by customer")) : (React.createElement(Trans, null, "My pinned recommendations"))),
315
+ React.createElement("span", { className: "badge-item pf-v6-u-font-size-sm pf-v6-u-mx-sm" }, pinnedRecommendations.length)),
316
+ React.createElement(CardExpandableContent, null,
317
+ React.createElement(CardBody, null, !hasPin ? (!canLinkUnlink ? (React.createElement(Trans, null, "When you save a recommended article or solution, you'll see it here. Saved items display only in this case and are not saved for later.")) : (React.createElement(React.Fragment, null))) : (React.createElement(PaginatedList, { id: "case-details-pinned-recommendations", listItems: pinnedRecommendations.map((rec, index) => canLinkUnlink
314
318
  ? renderPinnedByCustomerRedhatterView(rec, index, 'pinned-recommendations')
315
319
  : renderPinsByCustomer(rec, index, 'pinned-recommendations')), perPage: 5, className: "list-icons list-icons-flush", isFetching: !!isLoadingRecommendations, perPageOptions: [
316
320
  { title: '5', value: 5 },
@@ -1 +1 @@
1
- {"version":3,"file":"ESSRemoteSession.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,gBAAgB,+EAwH3B,CAAC"}
1
+ {"version":3,"file":"ESSRemoteSession.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,gBAAgB,+EAyH3B,CAAC"}
@@ -49,7 +49,7 @@ export const ESSRemoteSession = forwardRef((props, ref) => {
49
49
  React.createElement(ListItem, null, t('Agreed upon by both Red Hat and you, the end user'))),
50
50
  React.createElement("p", { className: "rrs-light-grey-text" }, t('Red Hat will add a comment to your case to schedule your remote session.')),
51
51
  waitingOnCallback && (React.createElement(Tooltip, { content: t('Remote session has already been requested.'), triggerRef: tooltipRef, "aria-live": 'polite' })),
52
- React.createElement(Button, { "aria-label": waitingOnCallback ? t('Remote session requested') : t('Request remote session'), variant: waitingOnCallback ? 'primary' : 'secondary', onClick: toggleNewESSRemoteSessionModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: waitingOnCallback, ref: tooltipRef }, waitingOnCallback ? t('Remote session requested') : t('Request remote session')))))));
52
+ React.createElement(Button, { "aria-label": waitingOnCallback ? t('Remote session requested') : t('Request remote session'), variant: waitingOnCallback ? 'primary' : 'secondary', onClick: toggleNewESSRemoteSessionModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: waitingOnCallback, ref: tooltipRef, className: "remote-session-button" }, waitingOnCallback ? t('Remote session requested') : t('Request remote session')))))));
53
53
  return (React.createElement(React.Fragment, null,
54
54
  ESSRemoteSessionSectionBody,
55
55
  React.createElement(NewEssTermsModal, { caseNumber: caseNumber, caseStatus: caseStatus, show: openNewESSRemoteSessionModal, onClose: toggleNewESSRemoteSessionModal, siteCode: TncConstants.REMOTE_RIDER_SITE_CODE, eventCode: TncConstants.REMOTER_RIDER_EVENT_CODE, loggedInUser: loggedInUser.data.ssoUsername === undefined ? '' : loggedInUser.data.ssoUsername, loggedInUserRights: loggedInUserRights, readOnly: readOnly })));
@@ -101,7 +101,7 @@ export function NewEssTermsModal(props) {
101
101
  setSessionExpectations('');
102
102
  setImpact('');
103
103
  setSessionLink('');
104
- setIsRemoteSessionForm(false);
104
+ setIsRemoteSessionForm(remoteSessionTermsAcked);
105
105
  props.onClose && props.onClose();
106
106
  };
107
107
  const languageOptions = Object.keys(allTranslations).map((option) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteSessionAgreement.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,OAAO,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,+EAuHjC,CAAC"}
1
+ {"version":3,"file":"RemoteSessionAgreement.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,OAAO,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,+EAwHjC,CAAC"}
@@ -49,7 +49,7 @@ export const RemoteSessionAgreement = forwardRef((props, ref) => {
49
49
  React.createElement(ListItem, null, t('Agreed upon by both Red Hat and you, the end user'))),
50
50
  React.createElement("p", { className: "rrs-light-grey-text" }, t('Red Hat will add a comment to your case to schedule your remote session.')),
51
51
  acceptedRemoteSessionTerms && (React.createElement(Tooltip, { content: t('Remote session has already been requested.'), triggerRef: tooltipRef, "aria-live": 'polite' })),
52
- React.createElement(Button, { "aria-label": waitingOnCallback ? t('Remote session requested') : t('Request remote session'), variant: waitingOnCallback ? 'primary' : 'secondary', onClick: toggleRemoteSessionAgreementModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: waitingOnCallback, ref: tooltipRef }, waitingOnCallback ? t('Remote session requested') : t('Request remote session')))))));
52
+ React.createElement(Button, { "aria-label": waitingOnCallback ? t('Remote session requested') : t('Request remote session'), variant: waitingOnCallback ? 'primary' : 'secondary', onClick: toggleRemoteSessionAgreementModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: waitingOnCallback, ref: tooltipRef, className: "remote-session-button" }, waitingOnCallback ? t('Remote session requested') : t('Request remote session')))))));
53
53
  return (React.createElement(React.Fragment, null,
54
54
  RemoteSessionAgreementSectionBody,
55
55
  React.createElement(RemoteSessionAgreementModal, { caseNumber: caseNumber, caseStatus: caseStatus, show: openRequestRemoteSessionModal, onClose: toggleRemoteSessionAgreementModal, siteCode: TncConstants.REMOTE_RIDER_SITE_CODE, eventCode: TncConstants.REMOTER_RIDER_EVENT_CODE, loggedInUser: loggedInUser.data.ssoUsername === undefined ? '' : loggedInUser.data.ssoUsername, loggedInUserRights: loggedInUserRights, readOnly: readOnly })));
@@ -101,7 +101,7 @@ export function RemoteSessionAgreementModal(props) {
101
101
  setSessionExpectations('');
102
102
  setImpact('');
103
103
  setSessionLink('');
104
- setIsRemoteSessionForm(false);
104
+ setIsRemoteSessionForm(remoteSessionTermsAcked);
105
105
  props.onClose && props.onClose();
106
106
  };
107
107
  const toggleRemoteSessionForm = () => setIsRemoteSessionForm(true);
@@ -63,7 +63,7 @@ export function CaseContactPhoneNumberAlert(props) {
63
63
  React.createElement(Trans, null, "Yes, confirm phone number")),
64
64
  React.createElement(Button, { isInline: true, className: "pf-v6-u-mr-md", variant: ButtonVariant.link, key: "case-contact-phone-number-review", component: "a", href: `#/case/${caseNumber}/management`, onClick: () => goToPhoneField(), "data-tracking-id": "case-contact-phone-number-review" },
65
65
  React.createElement(Trans, null, "No, update phone number")),
66
- React.createElement(Button, { isInline: true, key: "case-contact-phone-number-alert-close", variant: ButtonVariant.link, onClick: () => setCloseConfirmAlert(!closeConfirmAlert), "data-tracking-id": "case-contact-phone-number-alert-close", isDisabled: isCaseUpdating },
66
+ React.createElement(Button, { isInline: true, key: "case-contact-phone-number-alert-close", className: "pf-v6-c-button pf-m-link pf-m-inline", onClick: () => setCloseConfirmAlert(!closeConfirmAlert), "data-tracking-id": "case-contact-phone-number-alert-close", isDisabled: isCaseUpdating },
67
67
  React.createElement(Trans, null, "Close")),
68
68
  ] },
69
69
  React.createElement(Trans, null, confirmationMessage))) : props.isConfirm && !isExportingPDF ? (React.createElement(Alert, { isInline: true, className: "pf-v6-u-p-sm pf-v6-u-mb-md phone-review-banner", variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
@@ -1 +1 @@
1
- {"version":3,"file":"PostComment.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/PostComment.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAQ7F,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAsB5F,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,qBA6iBxC"}
1
+ {"version":3,"file":"PostComment.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/PostComment.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAQ7F,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAsB5F,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,qBA8iBxC"}
@@ -354,7 +354,7 @@ export function PostComment(props) {
354
354
  React.createElement(Trans, null, "Submit")),
355
355
  canAddAttachments &&
356
356
  (isPublic && canPostPrivateComments ? (React.createElement(Tooltip, { content: t('You can attach files privately') }, fileUploadButton)) : (fileUploadButton)),
357
- React.createElement(Button, { "data-tracking-id": "postcomment-cancel-button", type: "button", variant: ButtonVariant.link, onClick: onCancelClick, isDisabled: isPostCommentDisabled },
357
+ React.createElement(Button, { className: "secondary-button-pill", "data-tracking-id": "postcomment-cancel-button", type: "button", variant: ButtonVariant.link, onClick: onCancelClick, isDisabled: isPostCommentDisabled },
358
358
  React.createElement(Trans, null, "Cancel")),
359
359
  canPostPrivateComments && (React.createElement("span", { className: "post-comment-checkbox" },
360
360
  React.createElement(Checkbox, { label: t('Private'), isChecked: !isPublic && canPostPrivateComments, onChange: handleCheckboxToggle, "aria-label": t('Private'), id: "private-comment", name: "private-comment", "data-tracking-id": "private-comment-checkbox" }))))),
@@ -1 +1 @@
1
- {"version":3,"file":"NonOrgCaseNotifyeesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAwB,oBAAoB,EAAY,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAqCD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBA2MxD"}
1
+ {"version":3,"file":"NonOrgCaseNotifyeesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAwB,oBAAoB,EAAY,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAqCD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBA6NxD"}
@@ -155,7 +155,12 @@ export function NonOrgCaseNotifyeesSelector(props) {
155
155
  React.createElement(FlexItem, { grow: { sm: 'grow' } },
156
156
  React.createElement("div", null,
157
157
  renderSelectedItems(),
158
- React.createElement(Popper, { trigger: React.createElement(TextInput, { ref: inputRef, id: props.id, "data-tracking-id": props.dataTrackingId, value: inputVal, onChange: (event, value) => onInputChange(value), placeholder: props.placeholder, isDisabled: props.isDisabled || isFetching, onBlur: onBlur, validated: showGroupPermissionError || showAccountPermissionError ? 'error' : 'default' }), popper: menu, isVisible: isDropdownOpen && notifyeesList.length > 0, position: "start" })),
158
+ React.createElement(Flex, null,
159
+ React.createElement(FlexItem, { grow: { sm: 'grow' } },
160
+ React.createElement(Popper, { trigger: React.createElement(TextInput, { ref: inputRef, id: props.id, "data-tracking-id": props.dataTrackingId, value: inputVal, onChange: (event, value) => onInputChange(value), placeholder: props.placeholder, isDisabled: props.isDisabled || isFetching, onBlur: onBlur, validated: showGroupPermissionError || showAccountPermissionError ? 'error' : 'default' }), popper: menu, isVisible: isDropdownOpen && notifyeesList.length > 0, position: "start" })),
161
+ React.createElement(FlexItem, null,
162
+ React.createElement(Button, { variant: "primary", onClick: onAddClick, isLoading: props.isDisabled || isFetching, spinnerAriaValueText: props.isDisabled ? 'Loading' : undefined, isDisabled: !(inputVal || '').trim() || props.isDisabled || isFetching, "data-tracking-id": `${props.dataTrackingId}-add-btn` },
163
+ React.createElement(Trans, null, "Add"))))),
159
164
  props.selectedItems.length > 0 && !showAccountPermissionError && !showAccountPermissionError && (React.createElement("p", { className: "form-instructions" },
160
165
  React.createElement(Trans, null, "Enter an email address or username for the person you want to notify"))),
161
166
  React.createElement("p", { className: "pf-v6-c-form__helper-text pf-m-error", style: { color: '#c9190b' } },
@@ -166,8 +171,5 @@ export function NonOrgCaseNotifyeesSelector(props) {
166
171
  inputVal,
167
172
  " isn't associated with your account. Please contact Org Admin to add them to your account.")),
168
173
  !showGroupPermissionError && !showAccountPermissionError && (React.createElement("p", { className: "form-instructions" },
169
- React.createElement(Trans, null, "Include someone from your account to inform about the status of this case."))))),
170
- React.createElement(FlexItem, { style: { alignSelf: 'flex-start' } },
171
- React.createElement(Button, { variant: "primary", onClick: onAddClick, isLoading: props.isDisabled || isFetching, spinnerAriaValueText: props.isDisabled ? 'Loading' : undefined, isDisabled: !(inputVal || '').trim() || props.isDisabled || isFetching, "data-tracking-id": `${props.dataTrackingId}-add-btn` },
172
- React.createElement(Trans, null, "Add")))));
174
+ React.createElement(Trans, null, "Include someone from your account to inform about the status of this case.")))))));
173
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RestoreLastSessionModal.d.ts","sourceRoot":"","sources":["../../../../src/components/SessionRestore/RestoreLastSessionModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AAGnF,OAAc,EAAE,EAAE,EAAc,MAAM,OAAO,CAAC;AAQ9C,UAAU,MAAM;IACZ,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,YAAY,EAAE,YAAY,CAAC;CAC9B;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,MAAM,CAmE9C,CAAC"}
1
+ {"version":3,"file":"RestoreLastSessionModal.d.ts","sourceRoot":"","sources":["../../../../src/components/SessionRestore/RestoreLastSessionModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AAGnF,OAAc,EAAE,EAAE,EAAc,MAAM,OAAO,CAAC;AAQ9C,UAAU,MAAM;IACZ,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,YAAY,EAAE,YAAY,CAAC;CAC9B;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,MAAM,CAuE9C,CAAC"}
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { Button, Modal, ModalFooter, ModalVariant } from '@patternfly/react-core';
10
+ import { Button, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant } from '@patternfly/react-core';
11
11
  import isEqual from 'lodash/isEqual';
12
12
  import React, { useContext } from 'react';
13
13
  import { Trans, useTranslation } from 'react-i18next';
@@ -38,8 +38,10 @@ export const RestoreLastSessionModal = ({ onRestore, errorSession }) => {
38
38
  updateCaseCreationErrorStatus(caseDispatch, false);
39
39
  updateSession(sessionDispatch, errorSession.session.id, errorSession.sessionDetails, Object.assign(Object.assign({}, errorSession.session), { caseCreationError: false }));
40
40
  };
41
- return (React.createElement(Modal, { "data-tracking-id": "restore-session-modal", variant: ModalVariant.small, title: t('Restore last session?'), isOpen: !caseCreationError && caseCreation500ErrorStatus, onClose: onOpenNewCase },
42
- React.createElement(Trans, null, "It looks like an error prevented your last case from being submitted. Would you like to restore the last session or open a new case?"),
41
+ return (React.createElement(Modal, { "data-tracking-id": "restore-session-modal", variant: ModalVariant.small, isOpen: !caseCreationError && caseCreation500ErrorStatus, onClose: onOpenNewCase, "aria-labelledby": "restore-session-modal-title", "aria-describedby": "restore-session-modal-body" },
42
+ React.createElement(ModalHeader, { title: t('Restore last session?'), labelId: "restore-session-modal-title" }),
43
+ React.createElement(ModalBody, { id: "restore-session-modal-body" },
44
+ React.createElement(Trans, null, "It looks like an error prevented your last case from being submitted. Would you like to restore the last session or open a new case?")),
43
45
  React.createElement(ModalFooter, null,
44
46
  React.createElement(Button, { key: "restore", variant: "primary", onClick: onRestoreClick, "data-tracking-id": "restore-session-button" },
45
47
  React.createElement(Trans, null, " Restore")),
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AASA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAQrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAmTtD"}
1
+ {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AASA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAYvG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAuTtD"}
@@ -24,7 +24,8 @@ import { useResetCaseCreate } from '../../hooks/useResetCaseCreate';
24
24
  import { CASE_DEATILS_SOURCE_REFERRER_LIMIT } from '../../reducers/CaseConstNTypes';
25
25
  import { getDescriptionWOQues } from '../../reducers/CaseHelpers';
26
26
  import { setCaseAccountNumber, setCaseDetails, setCaseOwner } from '../../reducers/CaseReducer';
27
- import { setRouteFlags, updateisNextBtnClickedToShowValidationError } from '../../reducers/RouteReducer';
27
+ import { AppRouteSections } from '../../reducers/RouteConstNTypes';
28
+ import { setActiveSectionChanged, setRouteFlags, updateisNextBtnClickedToShowValidationError, } from '../../reducers/RouteReducer';
28
29
  import { fetchEdmundAbbottRules } from '../../reducers/RulesReducer';
29
30
  import { fetchTopContent } from '../../reducers/TopContentReducer';
30
31
  import RouteUtils from '../../utils/routeUtils';
@@ -117,11 +118,11 @@ export function GlobalTroubleshootEffects(props) {
117
118
  }, [allProducts.data.productsResult, caseDispatch, props.routeProps]);
118
119
  // if you want to hide any section on page load then the logic will go here..
119
120
  useEffect(() => {
121
+ // Reset validation error state when the troubleshoot app loads freshly
122
+ updateisNextBtnClickedToShowValidationError(dispatchToRouteReducer, false);
120
123
  if (!isFirstMount.current && loggedInUser.data && managedAccounts.data)
121
124
  return;
122
125
  if (isFirstMount.current) {
123
- // Reset validation error state when the troubleshoot app first loads
124
- updateisNextBtnClickedToShowValidationError(dispatchToRouteReducer, false);
125
126
  // set the summary if redirected from portal with url query param "summary"
126
127
  if (!isEmpty(urlQueryParams.summary)) {
127
128
  setCaseDetails(caseDispatch, { summary: urlQueryParams.summary });
@@ -145,11 +146,14 @@ export function GlobalTroubleshootEffects(props) {
145
146
  */
146
147
  useEffect(() => {
147
148
  if (props.routeProps.location.pathname === RouteUtils.seBasePath) {
149
+ // Set the active section to the default section when navigating to base path
150
+ const defaultSection = isCaseCreate ? AppRouteSections.GET_SUPPORT : AppRouteSections.TROUBLESHOOT;
151
+ setActiveSectionChanged(dispatchToRouteReducer, defaultSection, '');
148
152
  RouteUtils.navigateToDefaltSection(props.routeProps, isCaseCreate, isSearchIntent, false);
149
153
  !isSearchIntent && resetCaseCreateState();
150
154
  }
151
155
  // eslint-disable-next-line react-hooks/exhaustive-deps
152
- }, [dispatchToRouteReducer, props.routeProps, isCaseCreate, isSearchIntent]);
156
+ }, [dispatchToRouteReducer, props.routeProps.location.pathname, isCaseCreate, isSearchIntent]);
153
157
  /**
154
158
  * Setting Default AccountNumber and ContactSsoUsername from loggedInUsersAccount
155
159
  * Disabling exhaustive-deps rule as we don't want to reset default values if user manually clears these from UI.
@@ -81,6 +81,17 @@ div.support-grid-case-details.support-case {
81
81
  }
82
82
  }
83
83
  }
84
+ .grid-aside-content-inner-div {
85
+ margin: 0px !important;
86
+ }
87
+
88
+ .card-heading {
89
+ margin-bottom: 0px;
90
+ }
91
+
92
+ #case-details-top-recommendations-pagination-bottom-pagination {
93
+ justify-content: flex-start;
94
+ }
84
95
  }
85
96
  }
86
97
 
@@ -258,6 +269,7 @@ div.support-grid-case-details.support-case {
258
269
  justify-content: space-between;
259
270
  -ms-flex-wrap: wrap;
260
271
  flex-wrap: wrap;
272
+ border-radius: 8px;
261
273
 
262
274
  & > * {
263
275
  margin: 9px;
@@ -303,6 +315,7 @@ div.support-grid-case-details.support-case {
303
315
  }
304
316
 
305
317
  .case-overview-secondary {
318
+ border-radius: 8px;
306
319
  .form-group {
307
320
  margin-bottom: 0;
308
321
  }
@@ -647,6 +660,10 @@ mark {
647
660
  margin-left: -2rem;
648
661
  }
649
662
 
663
+ .list-icons li:last-child {
664
+ margin-bottom: 0;
665
+ }
666
+
650
667
  // pinning feature - can't be overly specific here
651
668
  .recommendation-header {
652
669
  font-size: 14px;
@@ -970,6 +987,7 @@ svg.pf-v6-u-ml-xs.icon-size {
970
987
  button {
971
988
  padding: 0;
972
989
  display: flex;
990
+ min-width: 7rem;
973
991
  }
974
992
  .eval-icons span {
975
993
  color: var(--pf-v5-global--primary-color--200);
@@ -983,6 +1001,10 @@ svg.pf-v6-u-ml-xs.icon-size {
983
1001
  padding: 0.2rem;
984
1002
  }
985
1003
 
1004
+ #case-details-pinned-recommendations {
1005
+ margin-bottom: 0;
1006
+ }
1007
+
986
1008
  .card-body-wrapper {
987
1009
  display: flex;
988
1010
  padding: 16px;
@@ -1112,6 +1134,7 @@ svg.pf-v6-u-ml-xs.icon-size {
1112
1134
 
1113
1135
  .review-form {
1114
1136
  background-color: #e0e0e0 !important;
1137
+ border-radius: 8px;
1115
1138
  }
1116
1139
 
1117
1140
  .ai-label-text {
@@ -1281,3 +1304,8 @@ svg.pf-v6-u-ml-xs.icon-size {
1281
1304
  .article-recommendations-card h3 {
1282
1305
  margin-bottom: 0;
1283
1306
  }
1307
+
1308
+ .postcomment-submit:disabled,
1309
+ .remote-session-button:disabled {
1310
+ color: var(--pf-v6-c-button--disabled--Color);
1311
+ }
@@ -812,3 +812,17 @@ div.case-details-tabs pre {
812
812
  .pf-v6-c-wizard__main-body {
813
813
  padding: 32px;
814
814
  }
815
+
816
+ .pf-v6-c-alert__description {
817
+ color: #000000;
818
+ }
819
+
820
+ .pf-v6-c-card__header.pf-v6-u-display-flex > .pf-v6-c-card__header-toggle {
821
+ align-self: center;
822
+ }
823
+
824
+ .pf-v6-c-button.secondary-button-pill {
825
+ border-radius: var(--pf-t--global--border--radius--400);
826
+ padding-left: 1.5rem;
827
+ padding-right: 1.5rem;
828
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.6.28",
3
+ "version": "2.6.30",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -59,7 +59,7 @@
59
59
  "@progress/kendo-react-pdf": "^5.16.0",
60
60
  "@redux-devtools/extension": "^3.3.0",
61
61
  "@rh-support/components": "2.5.33",
62
- "@rh-support/react-context": "2.5.35",
62
+ "@rh-support/react-context": "2.5.36",
63
63
  "@rh-support/types": "2.0.5",
64
64
  "@rh-support/user-permissions": "2.5.20",
65
65
  "@rh-support/utils": "2.5.19",
@@ -134,5 +134,5 @@
134
134
  "defaults and supports es6-module",
135
135
  "maintained node versions"
136
136
  ],
137
- "gitHead": "a00e0bcab839947c8f3bfaf882e453408960abf7"
137
+ "gitHead": "60ca9bb964b292380cd258edc372803a9a387f57"
138
138
  }