@rh-support/manage 2.6.1 → 2.6.10

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 (157) hide show
  1. package/lib/esm/ManageTabs.d.ts.map +1 -1
  2. package/lib/esm/ManageTabs.js +48 -20
  3. package/lib/esm/Routes.d.ts +1 -0
  4. package/lib/esm/Routes.d.ts.map +1 -1
  5. package/lib/esm/Routes.js +6 -0
  6. package/lib/esm/components/Configs/ConfigsTable.d.ts.map +1 -1
  7. package/lib/esm/components/Configs/ConfigsTable.js +33 -9
  8. package/lib/esm/components/Groups/AddMembersModal/AddMembersModal.d.ts +12 -0
  9. package/lib/esm/components/Groups/AddMembersModal/AddMembersModal.d.ts.map +1 -0
  10. package/lib/esm/components/Groups/AddMembersModal/AddMembersModal.js +80 -0
  11. package/lib/esm/components/Groups/AddMembersModal/index.d.ts +2 -0
  12. package/lib/esm/components/Groups/AddMembersModal/index.d.ts.map +1 -0
  13. package/lib/esm/components/Groups/AddMembersModal/index.js +1 -0
  14. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.d.ts +5 -3
  15. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.d.ts.map +1 -1
  16. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.js +21 -14
  17. package/lib/esm/components/Groups/GroupSelect/GroupSelect.d.ts +1 -0
  18. package/lib/esm/components/Groups/GroupSelect/GroupSelect.d.ts.map +1 -1
  19. package/lib/esm/components/Groups/GroupSelect/GroupSelect.js +240 -105
  20. package/lib/esm/components/Groups/GroupUserPermissionsSelect/GroupUserPermissionsSelect.d.ts.map +1 -1
  21. package/lib/esm/components/Groups/GroupUserPermissionsSelect/GroupUserPermissionsSelect.js +19 -14
  22. package/lib/esm/components/Groups/ManageGroupUsers/ManageGroupUsers.d.ts.map +1 -1
  23. package/lib/esm/components/Groups/ManageGroupUsers/ManageGroupUsers.js +187 -77
  24. package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.d.ts.map +1 -1
  25. package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.js +15 -12
  26. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.d.ts.map +1 -1
  27. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.js +106 -67
  28. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkGroupSelector.d.ts.map +1 -1
  29. package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.d.ts.map +1 -1
  30. package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.js +15 -22
  31. package/lib/esm/components/ManageCaseLabels/AddEditCaseLabelModal.d.ts +19 -0
  32. package/lib/esm/components/ManageCaseLabels/AddEditCaseLabelModal.d.ts.map +1 -0
  33. package/lib/esm/components/ManageCaseLabels/AddEditCaseLabelModal.js +97 -0
  34. package/lib/esm/components/ManageCaseLabels/ManageCaseLabelsTab.d.ts +3 -0
  35. package/lib/esm/components/ManageCaseLabels/ManageCaseLabelsTab.d.ts.map +1 -0
  36. package/lib/esm/components/ManageCaseLabels/ManageCaseLabelsTab.js +220 -0
  37. package/lib/esm/components/ManageCaseLabels/index.d.ts +2 -0
  38. package/lib/esm/components/ManageCaseLabels/index.d.ts.map +1 -0
  39. package/lib/esm/components/ManageCaseLabels/index.js +1 -0
  40. package/lib/esm/components/ManageCaseLabels/types.d.ts +6 -0
  41. package/lib/esm/components/ManageCaseLabels/types.d.ts.map +1 -0
  42. package/lib/esm/components/ManageCaseLabels/types.js +1 -0
  43. package/lib/esm/components/ManageExpiredContents/ExpiredContentCategory.js +4 -4
  44. package/lib/esm/components/ManageExpiredContents/ExpiredContentHeader.js +1 -1
  45. package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.d.ts.map +1 -1
  46. package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.js +12 -12
  47. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItem.js +3 -3
  48. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.d.ts.map +1 -1
  49. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.js +43 -35
  50. package/lib/esm/components/ManagePartnerships/NonOrgCustomerInfoModal.d.ts.map +1 -1
  51. package/lib/esm/components/ManagePartnerships/NonOrgCustomerInfoModal.js +8 -5
  52. package/lib/esm/components/ManagePartnerships/PartnershipsList.d.ts.map +1 -1
  53. package/lib/esm/components/ManagePartnerships/PartnershipsList.js +19 -12
  54. package/lib/esm/components/ManagePartnerships/PartnershipsTermsModal.d.ts.map +1 -1
  55. package/lib/esm/components/ManagePartnerships/PartnershipsTermsModal.js +17 -20
  56. package/lib/esm/components/ManagePartnerships/RequestCollaborationModal.d.ts.map +1 -1
  57. package/lib/esm/components/ManagePartnerships/RequestCollaborationModal.js +39 -27
  58. package/lib/esm/components/ManagePartnerships/Requests.d.ts +1 -0
  59. package/lib/esm/components/ManagePartnerships/Requests.d.ts.map +1 -1
  60. package/lib/esm/components/ManagePartnerships/Requests.js +22 -9
  61. package/lib/esm/components/ManagePartnerships/index.js +1 -1
  62. package/lib/esm/components/ManagePreferences/PreferencesBody.d.ts.map +1 -1
  63. package/lib/esm/components/ManagePreferences/PreferencesBody.js +1 -5
  64. package/lib/esm/components/ManagePreferences/PreferencesHeader.js +1 -1
  65. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.d.ts +1 -1
  66. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.d.ts.map +1 -1
  67. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.js +26 -27
  68. package/lib/esm/components/ManagePreferences/components/PreferenceSwitch.d.ts.map +1 -1
  69. package/lib/esm/components/ManagePreferences/components/PreferenceSwitch.js +6 -6
  70. package/lib/esm/components/ManagePreferences/sections/PreferencesACL.d.ts.map +1 -1
  71. package/lib/esm/components/ManagePreferences/sections/PreferencesACL.js +8 -9
  72. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseCreate.d.ts.map +1 -1
  73. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseCreate.js +77 -63
  74. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseSearch.d.ts.map +1 -1
  75. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseSearch.js +3 -4
  76. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.d.ts.map +1 -1
  77. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.js +47 -103
  78. package/lib/esm/components/ManageTable/ManageTable.d.ts +3 -4
  79. package/lib/esm/components/ManageTable/ManageTable.d.ts.map +1 -1
  80. package/lib/esm/components/ManageTable/ManageTable.js +12 -18
  81. package/lib/esm/components/ManageTags/TagsManager.d.ts.map +1 -1
  82. package/lib/esm/components/ManageTags/TagsManager.js +58 -50
  83. package/lib/esm/components/NotificationEmails/NotificationEmailsModal.d.ts.map +1 -1
  84. package/lib/esm/components/NotificationEmails/NotificationEmailsModal.js +35 -26
  85. package/lib/esm/components/NotificationEmails/index.d.ts.map +1 -1
  86. package/lib/esm/components/NotificationEmails/index.js +10 -7
  87. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimit.d.ts.map +1 -1
  88. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimit.js +2 -3
  89. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimitGuidelines.js +6 -6
  90. package/lib/esm/components/TopContentManagement/CategoryLimit/QuestionAnswer.js +1 -1
  91. package/lib/esm/components/TopContentManagement/ContentUsage/ContentAccordion.d.ts.map +1 -1
  92. package/lib/esm/components/TopContentManagement/ContentUsage/ContentAccordion.js +7 -9
  93. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricClickCount.d.ts +1 -0
  94. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricClickCount.d.ts.map +1 -1
  95. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricClickCount.js +2 -2
  96. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetrics.d.ts.map +1 -1
  97. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetrics.js +12 -10
  98. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.d.ts +2 -3
  99. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.d.ts.map +1 -1
  100. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.js +16 -9
  101. package/lib/esm/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.d.ts.map +1 -1
  102. package/lib/esm/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.js +15 -16
  103. package/lib/esm/components/TopContentManagement/NoTopContentFound.d.ts.map +1 -1
  104. package/lib/esm/components/TopContentManagement/NoTopContentFound.js +14 -15
  105. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/AddNewCategoryDropDown.d.ts.map +1 -1
  106. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/AddNewCategoryDropDown.js +47 -39
  107. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategory.d.ts.map +1 -1
  108. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategory.js +12 -6
  109. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategoryNew.js +3 -3
  110. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.d.ts.map +1 -1
  111. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.js +11 -7
  112. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.d.ts.map +1 -1
  113. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.js +62 -53
  114. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItemLink.d.ts.map +1 -1
  115. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItemLink.js +2 -3
  116. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.d.ts.map +1 -1
  117. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.js +8 -9
  118. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestion.js +2 -2
  119. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHint.js +4 -5
  120. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHintAccept.d.ts.map +1 -1
  121. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHintAccept.js +51 -25
  122. package/lib/esm/components/TopContentManagement/TopContentHeader.js +1 -1
  123. package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.d.ts.map +1 -1
  124. package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.js +64 -32
  125. package/lib/esm/constants/GroupSelectActions.d.ts +2 -1
  126. package/lib/esm/constants/GroupSelectActions.d.ts.map +1 -1
  127. package/lib/esm/constants/GroupSelectActions.js +1 -0
  128. package/lib/esm/constants/PartnershipLink.d.ts +3 -0
  129. package/lib/esm/constants/PartnershipLink.d.ts.map +1 -0
  130. package/lib/esm/constants/PartnershipLink.js +2 -0
  131. package/lib/esm/context/ExpiredContentContextProvider.d.ts.map +1 -1
  132. package/lib/esm/hooks/useCaseGroupGraphQL.d.ts +42 -0
  133. package/lib/esm/hooks/useCaseGroupGraphQL.d.ts.map +1 -0
  134. package/lib/esm/hooks/useCaseGroupGraphQL.js +117 -0
  135. package/lib/esm/hooks/useCaseLabelGraphQL.d.ts +26 -0
  136. package/lib/esm/hooks/useCaseLabelGraphQL.d.ts.map +1 -0
  137. package/lib/esm/hooks/useCaseLabelGraphQL.js +104 -0
  138. package/lib/esm/hooks/useCurrentUserContact.d.ts +8 -0
  139. package/lib/esm/hooks/useCurrentUserContact.d.ts.map +1 -0
  140. package/lib/esm/hooks/useCurrentUserContact.js +74 -0
  141. package/lib/esm/hooks/useVersionsDiffer.d.ts.map +1 -1
  142. package/lib/esm/index.d.ts.map +1 -1
  143. package/lib/esm/index.js +2 -0
  144. package/lib/esm/reducers/ExpiredContentReducer.d.ts.map +1 -1
  145. package/lib/esm/reducers/ManagePartnershipsReducer.d.ts.map +1 -1
  146. package/lib/esm/reducers/TagManagmentReducer.d.ts +1 -1
  147. package/lib/esm/reducers/TagManagmentReducer.d.ts.map +1 -1
  148. package/lib/esm/reducers/TopContentHelpers.d.ts.map +1 -1
  149. package/lib/esm/reducers/TopContentReducer.d.ts.map +1 -1
  150. package/lib/esm/reducers/TopContentReducer.js +5 -2
  151. package/lib/esm/scss/_main.scss +266 -24
  152. package/lib/esm/scss/_pf-overrides.scss +66 -53
  153. package/lib/esm/scss/index.scss +5 -4
  154. package/lib/esm/utils/caseGroupMapper.d.ts +18 -0
  155. package/lib/esm/utils/caseGroupMapper.d.ts.map +1 -0
  156. package/lib/esm/utils/caseGroupMapper.js +50 -0
  157. package/package.json +21 -22
@@ -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, DatePicker, Flex, FlexItem, FormGroup, TextInput, ValidatedOptions } from '@patternfly/react-core';
10
+ import { Button, Card, CardBody, DatePicker, Flex, FlexItem, FormGroup, TextInput, ValidatedOptions, } from '@patternfly/react-core';
11
11
  import { TagsSelector, ToastNotification } from '@rh-support/components';
12
12
  import { getDrupalResIdIfTypeFromUrl, getText, isValidDate, isValidUrl } from '@rh-support/utils';
13
13
  import { isEqual } from 'lodash';
@@ -24,6 +24,7 @@ export default function ExpiredContentSingleItemView({ category, content, onCanc
24
24
  const tagManagementEditState = useContext(TagManagementStateContext);
25
25
  const { tags: tagOptions } = tagManagementEditState;
26
26
  const ref = useRef(null);
27
+ const datePickerMenuAppendRef = useRef(null);
27
28
  const [isFetchingSolrSearch, setIsFetchingSolrSearch] = useState(false);
28
29
  const [localContentUrl, setLocalContentUrl] = useState(content.contentUrl);
29
30
  const [localContentTitle, setLocalContentTitle] = useState(content.contentTitle);
@@ -110,38 +111,45 @@ export default function ExpiredContentSingleItemView({ category, content, onCanc
110
111
  localContentTitle === content.contentTitle &&
111
112
  isEqual(localTagsIds, oldTagsIds) &&
112
113
  isEqual(localExpiryDate.split('T')[0], ((_b = content.expiryDate) === null || _b === void 0 ? void 0 : _b.split('T')[0]) || ''));
113
- return (React.createElement("form", { noValidate: true, onSubmit: onSubmit, className: "card card-light push-bottom", ref: ref },
114
- React.createElement("div", { className: "form-group" },
115
- React.createElement("label", { htmlFor: localContentTitle },
116
- "Heading",
117
- ' ',
118
- React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
119
- React.createElement(TextInput, { isRequired: true, type: "text", maxLength: 254, required: true, value: localContentTitle, isDisabled: isFetchingSolrSearch, "aria-label": t('Copy and paste the heading for consistency'), placeholder: t('Copy and paste the heading for consistency'), onChange: (e, v) => {
120
- onContentTitleChange(v, e);
121
- }, validated: contentTitleIsValid ? ValidatedOptions.default : ValidatedOptions.error })),
122
- React.createElement("div", { className: "form-group" },
123
- React.createElement("label", { htmlFor: localContentUrl },
124
- "Link to content",
125
- ' ',
126
- React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
127
- React.createElement(TextInput, { type: "url", maxLength: 254, isRequired: true, pattern: "^(http(s)?:\\/\\/)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$", value: getTopContentUrl(localContentUrl), "aria-label": t('Entering a solution or article link first will automatically generate the heading for you'), placeholder: t('Entering a solution or article link first will automatically generate the heading for you'), onChange: (evt, val) => {
128
- onContentUrlChange(val, evt);
129
- }, validated: contentUrlIsValid ? ValidatedOptions.default : ValidatedOptions.error })),
130
- React.createElement(Flex, { className: "pf-v5-u-my-lg" },
131
- React.createElement(FlexItem, { flex: { default: 'flex_1' } },
132
- React.createElement(FormGroup, { label: t('Tags') },
133
- React.createElement("div", { className: "pf-v5-c-form-control" },
134
- React.createElement(TagsSelector, { tagOptions: tagOptions, onChange: handleLocalTagChange, selectedTags: localSelectedTags, placeholder: t('Select tags to improve discoverability'), id: "expired-content-tag" })))),
135
- React.createElement(FlexItem, null,
136
- React.createElement(FormGroup, { label: t('Expiry date') },
137
- React.createElement(DatePicker, { onBlur: onExpiryDateChange, onChange: onExpiryDateChange, value: !isEmpty(localExpiryDate) ? localExpiryDate.split('T')[0] : '', validators: [expiryDateValidator], id: "content-expiry-date", invalidFormatText: t('Invalid date format') })))),
138
- React.createElement("span", { className: "top-content-single-item-footer" },
139
- React.createElement("span", null,
140
- React.createElement(Button, { variant: "primary", onClick: onContentSave, isDisabled: isSaveButtonDisabled || isSaving, isLoading: isSaving },
141
- React.createElement(Trans, null, "Save")),
142
- ' ',
143
- React.createElement(Button, { variant: "tertiary", onClick: onCancel, "data-tracking-id": "cancel-button-top-content" },
144
- React.createElement(Trans, null, "Cancel"))),
145
- React.createElement("span", { className: "content-actions" },
146
- React.createElement(Button, { variant: "danger", "aria-label": t('Delete content'), onClick: onDelete, isDisabled: isDeleting }, "Delete")))));
114
+ return (React.createElement(Card, { variant: "secondary", className: "pf-v6-u-mb-md" },
115
+ React.createElement(CardBody, null,
116
+ React.createElement("form", { noValidate: true, onSubmit: onSubmit, className: "push-bottom", ref: ref },
117
+ React.createElement("div", { className: "form-group" },
118
+ React.createElement("label", { htmlFor: localContentTitle },
119
+ "Heading",
120
+ ' ',
121
+ React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
122
+ React.createElement(TextInput, { isRequired: true, type: "text", maxLength: 254, required: true, value: localContentTitle, isDisabled: isFetchingSolrSearch, "aria-label": t('Copy and paste the heading for consistency'), placeholder: t('Copy and paste the heading for consistency'), onChange: (e, v) => {
123
+ onContentTitleChange(v, e);
124
+ }, validated: contentTitleIsValid ? ValidatedOptions.default : ValidatedOptions.error })),
125
+ React.createElement("div", { className: "form-group" },
126
+ React.createElement("label", { htmlFor: localContentUrl },
127
+ "Link to content",
128
+ ' ',
129
+ React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
130
+ React.createElement(TextInput, { type: "url", maxLength: 254, isRequired: true, pattern: "^(http(s)?:\\/\\/)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$", value: getTopContentUrl(localContentUrl), "aria-label": t('Entering a solution or article link first will automatically generate the heading for you'), placeholder: t('Entering a solution or article link first will automatically generate the heading for you'), onChange: (evt, val) => {
131
+ onContentUrlChange(val, evt);
132
+ }, validated: contentUrlIsValid ? ValidatedOptions.default : ValidatedOptions.error })),
133
+ React.createElement(Flex, { className: "pf-v6-u-my-lg" },
134
+ React.createElement(FlexItem, { flex: { default: 'flex_1' } },
135
+ React.createElement(FormGroup, { label: t('Tags') },
136
+ React.createElement(TagsSelector, { tagOptions: tagOptions, onChange: handleLocalTagChange, selectedTags: localSelectedTags, placeholder: t('Select tags to improve discoverability'), id: "expired-content-tag" }))),
137
+ React.createElement(FlexItem, null,
138
+ React.createElement(FormGroup, { ref: datePickerMenuAppendRef, label: t('Expiry date') },
139
+ React.createElement(DatePicker, { onBlur: onExpiryDateChange, onChange: onExpiryDateChange, value: !isEmpty(localExpiryDate) ? localExpiryDate.split('T')[0] : '', validators: [expiryDateValidator], id: "content-expiry-date", invalidFormatText: t('Invalid date format'), popoverProps: {
140
+ position: 'left',
141
+ hasAutoWidth: true,
142
+ maxWidth: '22rem',
143
+ minWidth: '22rem',
144
+ appendTo: () => document.body,
145
+ } })))),
146
+ React.createElement("span", { className: "top-content-single-item-footer" },
147
+ React.createElement("span", null,
148
+ React.createElement(Button, { variant: "primary", onClick: onContentSave, isDisabled: isSaveButtonDisabled || isSaving, isLoading: isSaving },
149
+ React.createElement(Trans, null, "Save")),
150
+ ' ',
151
+ React.createElement(Button, { variant: "tertiary", onClick: onCancel, "data-tracking-id": "cancel-button-top-content" },
152
+ React.createElement(Trans, null, "Cancel"))),
153
+ React.createElement("span", { className: "content-actions" },
154
+ React.createElement(Button, { variant: "danger", "aria-label": t('Delete content'), onClick: onDelete, isDisabled: isDeleting }, "Delete")))))));
147
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NonOrgCustomerInfoModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/NonOrgCustomerInfoModal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,uBAAuB,yBA2BnC,CAAC"}
1
+ {"version":3,"file":"NonOrgCustomerInfoModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/NonOrgCustomerInfoModal.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,uBAAuB,yBA2BnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Button, ButtonVariant, Modal, ModalVariant } from '@patternfly/react-core';
1
+ import { Button, ButtonVariant, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, } from '@patternfly/react-core';
2
2
  import React from 'react';
3
3
  import { Trans, useTranslation } from 'react-i18next';
4
4
  export const NonOrgCustomerInfoModal = () => {
@@ -7,9 +7,12 @@ export const NonOrgCustomerInfoModal = () => {
7
7
  const handleModalToggle = () => {
8
8
  setIsModalOpen(!isModalOpen);
9
9
  };
10
- return (React.createElement(Modal, { variant: ModalVariant.small, title: t('Confirm partnership collaboration'), isOpen: isModalOpen, onClose: handleModalToggle, actions: [
10
+ return (React.createElement(Modal, { variant: ModalVariant.small, isOpen: isModalOpen, onClose: handleModalToggle },
11
+ React.createElement(ModalHeader, null,
12
+ React.createElement("h2", null, t('Confirm partnership collaboration'))),
13
+ React.createElement(ModalBody, null,
14
+ React.createElement(Trans, null, "Only org admin customers can confirm partnership collaboration.")),
15
+ React.createElement(ModalFooter, null,
11
16
  React.createElement(Button, { key: "cancel", variant: ButtonVariant.primary, onClick: handleModalToggle, "data-tracking-id": "confirm-partnership-collaboration-no-org-admin" },
12
- React.createElement(Trans, null, "Cancel")),
13
- ] },
14
- React.createElement(Trans, null, "Only org admin customers can confirm partnership collaboration.")));
17
+ React.createElement(Trans, null, "Cancel")))));
15
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PartnershipsList.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/PartnershipsList.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAW/D,wBAAgB,gBAAgB,sBAmO/B"}
1
+ {"version":3,"file":"PartnershipsList.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/PartnershipsList.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAW/D,wBAAgB,gBAAgB,sBA+O/B"}
@@ -11,7 +11,7 @@ import { pcm } from '@cee-eng/hydrajs';
11
11
  import { AlertVariant, Button, ButtonVariant, Label, SearchInput } from '@patternfly/react-core';
12
12
  import TrashIcon from '@patternfly/react-icons/dist/js/icons/trash-icon';
13
13
  import { defaultTableSortMethod, LoadingIndicator, ToastNotification, useConfirmation, } from '@rh-support/components';
14
- import { fetchAccountManagers, fetchManagedAccounts, GlobalMetadataDispatchContext, useGlobalStateContext, } from '@rh-support/react-context';
14
+ import { fetchAccountManagers, fetchManagedAccounts, GlobalMetadataDispatchContext, updateAccountManagers, updateManagedAccounts, useGlobalStateContext, } from '@rh-support/react-context';
15
15
  import React, { useContext, useEffect, useState } from 'react';
16
16
  import { Trans, useTranslation } from 'react-i18next';
17
17
  import { useLocation } from 'react-router-dom';
@@ -43,18 +43,23 @@ export function PartnershipsList() {
43
43
  title: t('Are you sure?'),
44
44
  description: React.createElement(Trans, null, "You will not be able to undo this action after verifying."),
45
45
  confirmText: t('Delete'),
46
- confirmButtonVariant: ButtonVariant.danger,
47
46
  });
48
47
  try {
49
48
  setIsdeleting(true);
50
- setIsdeletingAccountNum(data.accountNum);
51
49
  if (data.isCustomerAccount) {
50
+ setIsdeletingAccountNum(`${data.accountNum}-customer`);
52
51
  yield pcm.partnerships.deleteCustomerAccountByPartner(data.accountNum);
52
+ updateManagedAccounts(dispatchToGlobalMetadataReducer, [
53
+ ...managedAccounts.data.filter((i) => i.accountNum !== data.accountNum),
54
+ ]);
53
55
  }
54
56
  else {
57
+ setIsdeletingAccountNum(`${data.accountNum}-partner`);
55
58
  yield pcm.partnerships.deletePartnerAccountByCustomer(data.accountNum);
59
+ updateAccountManagers(dispatchToGlobalMetadataReducer, [
60
+ ...accountManagers.data.filter((i) => i.accountNum !== data.accountNum),
61
+ ]);
56
62
  }
57
- setAccountList(accountList.filter((a) => a.accountNum !== data.accountNum));
58
63
  ToastNotification.addSuccessMessage(t('Partnership removed successfully'));
59
64
  setIsdeleting(false);
60
65
  setIsdeletingAccountNum('');
@@ -101,7 +106,7 @@ export function PartnershipsList() {
101
106
  {
102
107
  id: 'customer-partnership-access-level',
103
108
  title: t('Default access level'),
104
- sortable: false,
109
+ sortable: true,
105
110
  cellWidth: 30,
106
111
  cell: (data) => data.partnerCaseAccess,
107
112
  },
@@ -110,12 +115,14 @@ export function PartnershipsList() {
110
115
  title: ' ',
111
116
  sortable: false,
112
117
  cellWidth: 10,
113
- cell: (data) => (React.createElement(Button, { variant: ButtonVariant.plain, "aria-label": t('Remove partnership'), "data-tracking-id": "remove-partnership", onClick: () => removePartnership(data) },
114
- React.createElement(TrashIcon, null),
115
- React.createElement(LoadingIndicator, { isInline: true, show: isDeleting && data.accountNum === isDeletingAccountNum, size: "xs" }))),
118
+ cell: (data) => (React.createElement(Button, { icon: React.createElement(React.Fragment, null,
119
+ React.createElement(TrashIcon, null),
120
+ React.createElement(LoadingIndicator, { isInline: true, show: isDeleting &&
121
+ `${data.accountNum}-${data.isCustomerAccount ? 'customer' : 'partner'}` ===
122
+ isDeletingAccountNum, size: "xs" })), variant: ButtonVariant.plain, "aria-label": t('Remove partnership'), "data-tracking-id": "remove-partnership", onClick: () => removePartnership(data) })),
116
123
  },
117
124
  ];
118
- const requestCollaborationButton = () => (React.createElement("div", { className: "toolbar-right pf-v5-u-mt-xs" },
125
+ const requestCollaborationButton = () => (React.createElement("div", null,
119
126
  React.createElement(Button, { variant: ButtonVariant.primary, isInline: true, onClick: () => setIsRequestCollabModalOpen(true), "data-tracking-id": "request-collaboration-button", isDisabled: false },
120
127
  React.createElement(Trans, null, "Request Collaboration"))));
121
128
  // Get Customer Accounts For A Partner
@@ -171,10 +178,10 @@ export function PartnershipsList() {
171
178
  // eslint-disable-next-line react-hooks/exhaustive-deps
172
179
  }, [managedAccounts, accountManagers]);
173
180
  return (React.createElement("section", { id: "manage-partnerships-list" },
174
- React.createElement("div", { className: "toolbar" },
175
- React.createElement("div", { className: "toolbar-left" },
181
+ React.createElement("div", { className: "toolbar secondary-toolbar pf-v6-u-display-flex" },
182
+ React.createElement("div", { className: "toolbar-left pf-v6-u-mr-md" },
176
183
  React.createElement("label", { htmlFor: "search-partnerships" }, "Filter by"),
177
- React.createElement(SearchInput, { className: "pf-v5-u-flex-grow-1 pf-v5-c-search-input pf-v5-u-background-color-100 pf-v5-u-mr-lg", id: "search-partnerships", placeholder: t('Search for an existing partnership'), value: searchString, onChange: (_event, value) => setSearchString(value), onClear: () => setSearchString(''), "aria-label": t('Search for an existing partnership') })),
184
+ React.createElement(SearchInput, { className: "pf-v6-u-flex-grow-1 pf-v6-c-search-input pf-v6-u-background-color-100", id: "search-partnerships", placeholder: t('Search for an existing partnership'), value: searchString, onChange: (_event, value) => setSearchString(value), onClear: () => setSearchString(''), "aria-label": t('Search for an existing partnership') })),
178
185
  requestCollaborationButton()),
179
186
  React.createElement(ManageTable, { ariaLabel: t('Partnerships list'), columns: columns, data: accountList.filter((account) => account.name.toLowerCase().includes(searchString.toLowerCase())), sortInfo: { column: 'customer-account-name', direction: 'asc' }, errorVariant: AlertVariant.warning, isFetching: isFetching, isError: hasError, errorTitle: t('Partnerships error'), errorComponent: React.createElement(Trans, null, "Could not get partnerships list"), noResultText: t('There are no results to display.') }),
180
187
  React.createElement(RequestCollaborationModal, { isOpen: isRequestCollabModalOpen, onClose: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"PartnershipsTermsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/PartnershipsTermsModal.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,wBAAgB,SAAS,WAMxB;AAID,eAAO,MAAM,sBAAsB,yBAqMlC,CAAC"}
1
+ {"version":3,"file":"PartnershipsTermsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/PartnershipsTermsModal.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,wBAAgB,SAAS,WAMxB;AAID,eAAO,MAAM,sBAAsB,yBAsMlC,CAAC"}
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { pcm } from '@cee-eng/hydrajs';
11
- import { Button, ButtonVariant, Modal, ModalVariant, Text, TextContent, TextVariants } from '@patternfly/react-core';
11
+ import { Button, ButtonVariant, Content, ContentVariants, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, } from '@patternfly/react-core';
12
12
  import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
13
13
  import { LoadingDots, LoadingIndicator, ToastNotification } from '@rh-support/components';
14
14
  import { baseTnCUrl, TncConstants } from '@rh-support/utils';
@@ -109,25 +109,22 @@ export const PartnershipsTermsModal = () => {
109
109
  // eslint-disable-next-line react-hooks/exhaustive-deps
110
110
  }, [linkHash]);
111
111
  const modalContentWhenTermIsVisited = () => isUpdating ? (React.createElement(LoadingIndicator, { show: true, size: "lg" })) : ackChoice === 'accept' ? (React.createElement(Trans, null, "Your partnership link is created successfully")) : ackChoice === 'decline' ? (React.createElement(Trans, null, "You have not accepted terms and conditions")) : (React.createElement(React.Fragment, null));
112
- const modalContentBeforeTermVisited = () => isVerifyingLink ? (React.createElement("p", { className: "pf-v5-u-mt-xs" },
113
- React.createElement(LoadingDots, { show: true, message: t('Verifying partner link') }))) : verificationFailMessage ? (React.createElement("p", { className: "pf-v5-u-mt-xs pf-v5-u-danger-color-100" }, verificationFailMessage)) : (React.createElement(React.Fragment, null,
112
+ const modalContentBeforeTermVisited = () => isVerifyingLink ? (React.createElement("p", { className: "pf-v6-u-mt-xs" },
113
+ React.createElement(LoadingDots, { show: true, message: t('Verifying partner link') }))) : verificationFailMessage ? (React.createElement("p", { className: "pf-v6-u-mt-xs pf-v6-u-danger-color-100" }, verificationFailMessage)) : (React.createElement(React.Fragment, null,
114
114
  React.createElement("p", null,
115
115
  React.createElement(Trans, null, "A partner would like to collaborate with you for support when cases are shared. Please confirm the name below and continue to accept terms and conditions.")),
116
- React.createElement(TextContent, { className: "pf-v5-u-mt-lg" },
117
- React.createElement(Text, { component: TextVariants.h3 }, linkAccountName))));
118
- return (React.createElement(Modal, { id: "partnership-terms-and-conditions-modal", className: "pf-modal-overflow-visible", title: t('Confirm partnership collaboration'), isOpen: isTermsModalOpen, onClose: onClose, showClose: true, onEscapePress: onClose, variant: ModalVariant.large, actions: !isTermVisited && !verificationFailMessage
119
- ? [
120
- React.createElement(Button, { href: getTnCUrl(), component: "a", variant: ButtonVariant.primary, key: "go-to-agreement", "data-tracking-id": "go-to-agreement" },
121
- React.createElement(ExternalLinkAltIcon, null),
122
- ' ',
123
- " ",
124
- React.createElement(Trans, null, "Go to Agreement")),
125
- React.createElement(Button, { key: "close-new-partnership-modal", "data-tracking-id": "close-new-partnership-modal", variant: ButtonVariant.secondary, onClick: () => onClose() },
126
- React.createElement(Trans, null, "Close")),
127
- ]
128
- : [
129
- React.createElement(Button, { key: "close-after-link-created", "data-tracking-id": "close-after-link-created", variant: ButtonVariant.primary, onClick: () => onClose(), isDisabled: isUpdating },
130
- React.createElement(Trans, null, "Close")),
131
- ] },
132
- React.createElement(React.Fragment, null, isTermVisited ? modalContentWhenTermIsVisited() : modalContentBeforeTermVisited())));
116
+ React.createElement(Content, { className: "pf-v6-u-mt-lg" },
117
+ React.createElement(Content, { component: ContentVariants.h3 }, linkAccountName))));
118
+ return (React.createElement(Modal, { id: "partnership-terms-and-conditions-modal", className: "pf-modal-overflow-visible", isOpen: isTermsModalOpen, onClose: onClose, onEscapePress: onClose, variant: ModalVariant.large },
119
+ React.createElement(ModalHeader, null,
120
+ React.createElement("h2", null, t('Confirm partnership collaboration'))),
121
+ React.createElement(ModalBody, null, isTermVisited ? modalContentWhenTermIsVisited() : modalContentBeforeTermVisited()),
122
+ React.createElement(ModalFooter, null, !isTermVisited && !verificationFailMessage ? (React.createElement(React.Fragment, null,
123
+ React.createElement(Button, { icon: React.createElement(ExternalLinkAltIcon, null), href: getTnCUrl(), component: "a", variant: ButtonVariant.primary, key: "go-to-agreement", "data-tracking-id": "go-to-agreement" },
124
+ ' ',
125
+ " ",
126
+ React.createElement(Trans, null, "Go to Agreement")),
127
+ React.createElement(Button, { key: "close-new-partnership-modal", "data-tracking-id": "close-new-partnership-modal", variant: ButtonVariant.secondary, onClick: () => onClose() },
128
+ React.createElement(Trans, null, "Close")))) : (React.createElement(Button, { key: "close-after-link-created", "data-tracking-id": "close-after-link-created", variant: ButtonVariant.primary, onClick: () => onClose(), isDisabled: isUpdating },
129
+ React.createElement(Trans, null, "Close"))))));
133
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RequestCollaborationModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/RequestCollaborationModal.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACrC;AAID,eAAO,MAAM,yBAAyB,UAAW,MAAM,sBAqOtD,CAAC"}
1
+ {"version":3,"file":"RequestCollaborationModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/RequestCollaborationModal.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAM3D,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACrC;AAID,eAAO,MAAM,yBAAyB,GAAI,OAAO,MAAM,sBA8QtD,CAAC"}
@@ -8,11 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { pcm } from '@cee-eng/hydrajs';
11
- import { Button, ButtonVariant, Form, FormGroup, FormHelperText, Grid, GridItem, HelperText, HelperTextItem, Modal, ModalVariant, TextInput, Tooltip, TooltipPosition, } from '@patternfly/react-core';
11
+ import { Button, ButtonVariant, Form, FormGroup, FormHelperText, Grid, GridItem, HelperText, HelperTextItem, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, TextInput, Tooltip, TooltipPosition, } from '@patternfly/react-core';
12
+ import CopyIcon from '@patternfly/react-icons/dist/esm/icons/copy-icon';
12
13
  import { ToastNotification, useCopyToClipboard } from '@rh-support/components';
13
14
  import isEmpty from 'lodash/isEmpty';
14
15
  import React, { useRef, useState } from 'react';
15
16
  import { Trans, useTranslation } from 'react-i18next';
17
+ import { PARTNERSHIP_LINK_LIMIT, PARTNERSHIP_LINK_LIMIT_EXCEED_ERROR } from '../../constants/PartnershipLink';
16
18
  import { useManagePartnershipsDispatchContext } from '../../context/ManagePartnershipsProvider';
17
19
  import { setIsUpdatingRequests } from '../../reducers/ManagePartnershipsReducer';
18
20
  export const RequestCollaborationModal = (props) => {
@@ -36,13 +38,16 @@ export const RequestCollaborationModal = (props) => {
36
38
  setLocalLinkName(link);
37
39
  setFriendlyName(link);
38
40
  setIsDuplicateLinkName(false);
39
- if (isEmpty(link.trim()) && nextButtonIsClicked) {
41
+ if ((isEmpty(link.trim()) && nextButtonIsClicked) || isInvalidPartnershipLink(link)) {
40
42
  setValidated('error');
41
43
  }
42
44
  else {
43
45
  setValidated('success');
44
46
  }
45
47
  };
48
+ const isInvalidPartnershipLink = (link) => {
49
+ return link.length > PARTNERSHIP_LINK_LIMIT;
50
+ };
46
51
  const handleKeyDown = (e) => __awaiter(void 0, void 0, void 0, function* () {
47
52
  if (validated !== 'error' && e.keyCode === 13) {
48
53
  onNext && onNext();
@@ -115,42 +120,49 @@ export const RequestCollaborationModal = (props) => {
115
120
  setIsCopyClicked(true);
116
121
  };
117
122
  const partnershipLinkId = 'partnership-link-id';
118
- return (React.createElement(Modal, { id: "request-collaboration-modal", className: "pf-modal-overflow-visible", title: isRequestingAgain ? 'Request collaboration again' : 'Request collaboration', isOpen: props.isOpen, onClose: onClose, showClose: true, onEscapePress: onClose, variant: ModalVariant.large, actions: [
119
- ...(showDone
120
- ? [
121
- React.createElement(Button, { key: "done", variant: ButtonVariant.primary, onClick: onDone, isDisabled: validated === 'error' || (!isRequestingAgain && !isCopyClicked && isDoneClicked), "data-tracking-id": "request-collaboration-done-button" },
122
- React.createElement(Trans, null, "Done")),
123
- ]
124
- : [
125
- React.createElement(Button, { key: "next", variant: ButtonVariant.primary, onClick: onNext, isDisabled: validated === 'error' || isFetching, isLoading: isFetching },
126
- React.createElement(Trans, null, "Next")),
127
- ]),
128
- ] },
129
- React.createElement(React.Fragment, null,
123
+ return (React.createElement(Modal, { id: "request-collaboration-modal", className: "pf-modal-overflow-visible", isOpen: props.isOpen, onClose: onClose, onEscapePress: onClose, variant: ModalVariant.large },
124
+ React.createElement(ModalHeader, null,
125
+ React.createElement("h2", null, isRequestingAgain ? t('Request collaboration again') : t('Request collaboration'))),
126
+ React.createElement(ModalBody, null,
130
127
  React.createElement("p", null, "Initiate a new collaboration by generating a unique link for your customer. Check the status under your requests to see if they accept or reject your collaboration."),
131
- React.createElement(Form, { className: "pf-v5-u-my-md" },
132
- React.createElement(Grid, { sm: 12, md: 6, lg: 6 },
128
+ React.createElement(Form, { className: "pf-v6-u-mt-md" },
129
+ React.createElement(Grid, { sm: 12, md: 12, lg: 12 },
133
130
  React.createElement(GridItem, null,
134
- React.createElement(FormGroup, { label: t('Name your link'), type: "string", fieldId: partnershipLinkId, isRequired: true },
131
+ React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
132
+ t('Name your link'),
133
+ React.createElement("span", { className: "form-required", "aria-hidden": "true" }, "*")), labelInfo: React.createElement("span", { className: isInvalidPartnershipLink(friendlyName)
134
+ ? 'pf-v6-u-text-color-status-danger'
135
+ : '' },
136
+ friendlyName.length,
137
+ "/",
138
+ PARTNERSHIP_LINK_LIMIT), type: "string", fieldId: partnershipLinkId },
139
+ React.createElement(TextInput, { isRequired: true, className: showDone || isRequestingAgain ? 'request-collaboration-input' : '', value: localLinkName || props.sendReqAgainFriendlyName, id: partnershipLinkId, "aria-describedby": "age-1-helper", onChange: handleLinkNameChange, onKeyDown: handleKeyDown, placeholder: t('e.g. Customer name'), isDisabled: showDone || isRequestingAgain, validated: isInvalidPartnershipLink(friendlyName) ? 'error' : 'default' }),
135
140
  React.createElement(FormHelperText, null,
136
141
  React.createElement(HelperText, null, validated !== 'error' ? (React.createElement(HelperTextItem, null,
137
- React.createElement(Trans, null, "Please enter a name for your request"))) : (React.createElement(HelperTextItem, { variant: "error", hasIcon: true },
142
+ React.createElement(Trans, null, "Please enter a name for your request"))) : (React.createElement(HelperTextItem, { variant: "error" },
138
143
  React.createElement(Trans, null, isDuplicateLinkName
139
144
  ? t('Link name already used. Please enter a unique name')
140
- : t('Please enter a name for your request')))))),
141
- React.createElement(TextInput, { isRequired: true, validated: validated, value: localLinkName || props.sendReqAgainFriendlyName, id: partnershipLinkId, "aria-describedby": "age-1-helper", onChange: handleLinkNameChange, onKeyDown: handleKeyDown, placeholder: t('e.g. Customer name'), isDisabled: showDone || isRequestingAgain }))))),
145
+ : isInvalidPartnershipLink(friendlyName)
146
+ ? PARTNERSHIP_LINK_LIMIT_EXCEED_ERROR
147
+ : t('Please enter a name for your request')))))))))),
142
148
  showDone && (React.createElement(React.Fragment, null, !isRequestingAgain ? (React.createElement(React.Fragment, null,
143
- React.createElement("h4", null,
149
+ React.createElement("h4", { className: "label-text-size" },
144
150
  React.createElement("strong", null, "Copy and send")),
145
151
  React.createElement("div", { className: "clipboard-wrapper" },
146
- React.createElement("div", { className: "clip-content-wrapper code-block" },
147
- React.createElement("code", { ref: clipboardRef }, generatedUrl)),
152
+ React.createElement(TextInput, { isDisabled: true, className: "request-collaboration-input", ref: clipboardRef, value: generatedUrl }),
148
153
  React.createElement(Tooltip, { position: TooltipPosition.top, content: clipboardText, trigger: "click" },
149
- React.createElement("button", { className: "nimbus-icon-clipboard clip-code-raw-btn xs-icon", "aria-hidden": "true", onClick: onClickOnCopyToClipboardButton, "data-tracking-id": "request-collaboration-link-copy-button", type: "button" }))),
150
- React.createElement("p", { className: !isCopyClicked && isDoneClicked ? 'pf-v5-u-danger-color-100' : '' },
154
+ React.createElement(Button, { className: "pf-v6-u-ml-sm copy-button", variant: "control", "aria-label": "Copy", icon: React.createElement(CopyIcon, null), "aria-hidden": "true", onClick: onClickOnCopyToClipboardButton, "data-tracking-id": "request-collaboration-link-copy-button", type: "button" }))),
155
+ React.createElement("div", { className: !isCopyClicked && isDoneClicked
156
+ ? 'pf-v6-u-text-color-status-danger helper-text-size'
157
+ : 'helper-text-size' },
151
158
  React.createElement(Trans, null,
152
- ' ',
153
159
  "Please ",
154
160
  React.createElement("strong", null, "copy and send"),
155
- " this unique link to your customer for approval.")))) : (React.createElement(Trans, null, "Partnership request expiration date is extended.")))))));
161
+ " this unique link to your customer for approval.")))) : (React.createElement(Trans, null, "Partnership request expiration date is extended."))))),
162
+ React.createElement(ModalFooter, null,
163
+ showDone ? (React.createElement(Button, { key: "done", variant: ButtonVariant.primary, onClick: onDone, isDisabled: validated === 'error' || (!isRequestingAgain && !isCopyClicked && isDoneClicked), "data-tracking-id": "request-collaboration-done-button" },
164
+ React.createElement(Trans, null, "Done"))) : (React.createElement(Button, { key: "next", variant: ButtonVariant.primary, onClick: onNext, isDisabled: validated === 'error' || isFetching, isLoading: isFetching },
165
+ React.createElement(Trans, null, "Next"))),
166
+ !showDone && (React.createElement(Button, { key: "cancel", variant: ButtonVariant.link, onClick: onClose, isDisabled: isFetching },
167
+ React.createElement(Trans, null, "Cancel"))))));
156
168
  };
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
2
  export declare const daysFromNow: (date: string) => number;
3
+ export declare const truncateText: (text: string, maxLength?: number) => string;
3
4
  export declare function Requests(): React.JSX.Element;
4
5
  //# sourceMappingURL=Requests.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Requests.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/Requests.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAanD,eAAO,MAAM,WAAW,SAAU,MAAM,WAMvC,CAAC;AACF,wBAAgB,QAAQ,sBAgRvB"}
1
+ {"version":3,"file":"Requests.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePartnerships/Requests.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAanD,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,WAMvC,CAAC;AAGF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,YAAW,MAAW,WAKhE,CAAC;AAEF,wBAAgB,QAAQ,sBAqRvB"}
@@ -28,6 +28,13 @@ export const daysFromNow = (date) => {
28
28
  let TotalDays = Math.ceil(difference / (1000 * 3600 * 24));
29
29
  return TotalDays;
30
30
  };
31
+ // truncates text after specified character limit and adds ellipsis
32
+ export const truncateText = (text, maxLength = 50) => {
33
+ if (!text || text.length <= maxLength) {
34
+ return text;
35
+ }
36
+ return text.substring(0, maxLength) + '...';
37
+ };
31
38
  export function Requests() {
32
39
  const { t } = useTranslation();
33
40
  const confirmRemove = useConfirmation();
@@ -82,7 +89,7 @@ export function Requests() {
82
89
  };
83
90
  const columns = [
84
91
  {
85
- accessor: (data) => (data === null || data === void 0 ? void 0 : data.friendlyName) || '',
92
+ accessor: (data) => truncateText((data === null || data === void 0 ? void 0 : data.friendlyName) || ''),
86
93
  sortable: false,
87
94
  id: 'frienly-name',
88
95
  cellWidth: 25,
@@ -111,12 +118,12 @@ export function Requests() {
111
118
  setIsRequestAgainModalOpen(true);
112
119
  };
113
120
  const actionResolver = (rowData) => {
114
- var _a, _b, _c, _d;
121
+ var _a;
115
122
  if (!rowData)
116
123
  return;
117
- const friendlyName = ((_a = rowData.cells) === null || _a === void 0 ? void 0 : _a[0]) || '';
118
- //@ts-ignore
119
- const status = ((_d = (_c = (_b = rowData.cells) === null || _b === void 0 ? void 0 : _b[1]) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.status) || '';
124
+ const original = (_a = rowData.originalData) !== null && _a !== void 0 ? _a : rowData;
125
+ const friendlyName = (original === null || original === void 0 ? void 0 : original.friendlyName) || '';
126
+ const status = (original === null || original === void 0 ? void 0 : original.status) || '';
120
127
  return [
121
128
  ...(status === 'EXPIRED'
122
129
  ? [
@@ -126,10 +133,15 @@ export function Requests() {
126
133
  itemKey: 'request-again',
127
134
  'data-tracking-id': 'request-again',
128
135
  },
136
+ {
137
+ isSeparator: true,
138
+ itemKey: 'separator',
139
+ 'data-tracking-id': 'separator',
140
+ },
129
141
  ]
130
142
  : []),
131
143
  {
132
- title: (React.createElement("div", { className: "pf-v5-u-danger-color-200" },
144
+ title: (React.createElement("div", { className: "pf-v6-u-text-color-status-danger" },
133
145
  React.createElement(Trans, null, "Delete"))),
134
146
  onClick: () => deleteRequest(friendlyName),
135
147
  itemKey: 'delete-request',
@@ -197,6 +209,7 @@ export function Requests() {
197
209
  catch (e) {
198
210
  setIsFetchingStatuses(false);
199
211
  ToastNotification.addDangerMessage(t('Failed to get partnership requests'));
212
+ console.error(e);
200
213
  }
201
214
  setIsUpdatingRequests(dispatch, false);
202
215
  });
@@ -210,14 +223,14 @@ export function Requests() {
210
223
  React.createElement(StackItem, { className: "toolbar" },
211
224
  React.createElement(ExpandableSectionToggle, { isExpanded: isExpanded, onToggle: onToggle, contentId: contentId },
212
225
  React.createElement("div", null,
213
- React.createElement("label", { className: "pf-v5-u-color-100" },
226
+ React.createElement("label", { className: "pf-v6-u-color-100" },
214
227
  ' ',
215
228
  React.createElement(Trans, null, "Requests"),
216
- isFetchingStatuses ? (React.createElement(LoadingIndicator, { isInline: true, size: "sm", className: "pf-v5-u-mx-sm" })) : (React.createElement(Badge, { className: "pf-v5-u-mx-sm" }, statusList.length)))))),
229
+ isFetchingStatuses ? (React.createElement(LoadingIndicator, { isInline: true, size: "sm", className: "pf-v6-u-mx-sm" })) : (React.createElement(Badge, { className: "pf-v6-u-mx-sm" }, statusList.length)))))),
217
230
  React.createElement(StackItem, null,
218
231
  React.createElement(ExpandableSection, { isIndented: false, isExpanded: isExpanded, isDetached: true, contentId: contentId }, !isEmpty(statusList) ? (React.createElement(ManageTable, { ariaLabel: t('Requests'), columns: columns, data: statusList, errorVariant: AlertVariant.warning, isFetching: isFetchingStatuses, isError: false, errorTitle: t('Request error'), errorComponent: React.createElement(Trans, null, "Could not get requests"), pagination: true, actionResolver: statusList && !isFetchingStatuses && !isEmpty(statusList)
219
232
  ? actionResolver
220
- : null, perPage: 5 })) : (React.createElement("p", { className: "pf-v5-u-p-md" },
233
+ : null, perPage: 5 })) : (React.createElement("p", { className: "pf-v6-u-p-md" },
221
234
  React.createElement(Trans, null, "No request"))))))),
222
235
  isRequestAgainModalOpen && (React.createElement(RequestCollaborationModal, { isOpen: isRequestAgainModalOpen, onClose: onRequestAgainModalClose, sendReqAgainFriendlyName: selectedRowFriendlyName }))));
223
236
  }
@@ -12,7 +12,7 @@ export function ManagePartnerships() {
12
12
  const { t } = useTranslation();
13
13
  const { globalMetadataState: { loggedInUserRights }, } = useGlobalStateContext();
14
14
  return (React.createElement(React.Fragment, null,
15
- React.createElement("header", { className: "pf-v5-u-mb-xs" },
15
+ React.createElement("header", { className: "pf-v6-u-mb-xs" },
16
16
  React.createElement("h2", null,
17
17
  React.createElement(Trans, null, "Partnerships")),
18
18
  React.createElement("p", null,
@@ -1 +1 @@
1
- {"version":3,"file":"PreferencesBody.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePreferences/PreferencesBody.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,UAAU,MAAM;CAAG;AAEnB,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,qBAa5C"}
1
+ {"version":3,"file":"PreferencesBody.d.ts","sourceRoot":"","sources":["../../../../src/components/ManagePreferences/PreferencesBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,UAAU,MAAM;CAAG;AAEnB,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,qBAQ5C"}
@@ -1,14 +1,10 @@
1
- import { useGlobalStateContext } from '@rh-support/react-context';
2
1
  import React from 'react';
3
- import { PreferencesACL } from './sections/PreferencesACL';
4
2
  import { PreferencesCaseCreate } from './sections/PreferencesCaseCreate';
5
3
  import { PreferencesCaseSearch } from './sections/PreferencesCaseSearch';
6
4
  import { PreferencesCaseView } from './sections/PreferencesCaseView';
7
5
  export function PreferencesBody(props) {
8
- const { globalMetadataState: { loggedInUserRights }, } = useGlobalStateContext();
9
6
  return (React.createElement("div", { className: "pfe-l-grid pfe-m-gutters pfe-m-all-4-col" },
10
7
  React.createElement(PreferencesCaseSearch, null),
11
8
  React.createElement(PreferencesCaseView, null),
12
- React.createElement(PreferencesCaseCreate, null),
13
- loggedInUserRights.data.isOrgAdmin() && !loggedInUserRights.data.isInternal() && React.createElement(PreferencesACL, null)));
9
+ React.createElement(PreferencesCaseCreate, null)));
14
10
  }
@@ -5,5 +5,5 @@ export function PreferencesHeader() {
5
5
  return (React.createElement("header", null,
6
6
  React.createElement("h2", null,
7
7
  React.createElement(Trans, null, "Preferences")),
8
- React.createElement("p", { className: "pf-v5-u-mt-md pf-v5-u-mb-sm" }, t('Setting preferences will personalize your support case experience to best suit your needs.'))));
8
+ React.createElement("p", { className: "pf-v6-u-mt-md pf-v6-u-mb-sm" }, t('Setting preferences will personalize your support case experience to best suit your needs.'))));
9
9
  }
@@ -3,7 +3,7 @@ interface IProps {
3
3
  id: string;
4
4
  label: any;
5
5
  selections: any;
6
- onSelect: (event: any, selection: any, isPlaceholder: any) => Promise<any>;
6
+ onSelect: (event: any, selection: any) => Promise<any>;
7
7
  children: React.ReactElement[];
8
8
  }
9
9
  export declare function PreferenceSelect({ id, label, selections, children, onSelect }: IProps): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"PreferenceSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/ManagePreferences/components/PreferenceSelect.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,MAAM;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,KAAA,EAAE,SAAS,KAAA,EAAE,aAAa,KAAA,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5D,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;CAClC;AACD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,qBA8CrF"}
1
+ {"version":3,"file":"PreferenceSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/ManagePreferences/components/PreferenceSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,MAAM;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,KAAA,EAAE,SAAS,KAAA,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;CAClC;AACD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,qBA+CrF"}