@rh-support/manage 2.5.96 → 2.5.98
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.
- package/lib/esm/ManageTabs.js +1 -1
- package/lib/esm/components/Groups/GroupSelect/GroupSelect.d.ts.map +1 -1
- package/lib/esm/components/Groups/GroupSelect/GroupSelect.js +8 -5
- package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.js +1 -1
- package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.d.ts.map +1 -1
- package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.js +7 -1
- package/lib/esm/components/ManagePartnerships/Requests.d.ts.map +1 -1
- package/lib/esm/components/ManagePartnerships/Requests.js +9 -4
- package/lib/esm/components/ManagePreferences/sections/PreferencesACL.js +1 -1
- package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.js +1 -1
- package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimit.js +1 -1
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.d.ts.map +1 -1
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.js +8 -2
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.js +1 -1
- package/lib/esm/hooks/useVersionsDiffer.d.ts +1 -1
- package/lib/esm/hooks/useVersionsDiffer.js +1 -1
- package/lib/esm/reducers/TopContentReducer.d.ts.map +1 -1
- package/lib/esm/reducers/TopContentReducer.js +2 -1
- package/lib/esm/scss/_main.scss +0 -4
- package/lib/esm/scss/_pf-overrides.scss +4 -0
- package/package.json +6 -6
package/lib/esm/ManageTabs.js
CHANGED
|
@@ -130,7 +130,7 @@ export function ManageTabs(props) {
|
|
|
130
130
|
return (React.createElement("div", { className: "grid-main manage" },
|
|
131
131
|
React.createElement(ErrorBoundary, { isPageLevelError: true }, (_b = (_a = tabsToRender[0]) === null || _a === void 0 ? void 0 : _a.component) !== null && _b !== void 0 ? _b : React.createElement(React.Fragment, null))));
|
|
132
132
|
/**
|
|
133
|
-
* Render array with
|
|
133
|
+
* Render array with tabs
|
|
134
134
|
*/
|
|
135
135
|
return (React.createElement("div", { className: "grid-main manage", role: "region", style: { display: 'flex' } },
|
|
136
136
|
React.createElement(Tabs, { activeKey: getActiveTabKey(), onSelect: handleTabClick, "aria-label": t('Manage tabs'), component: TabsComponent.nav, isVertical: true, style: { width: 'auto' } }, map(tabsToRender, (tab, index) => (React.createElement(Tab, { eventKey: index, tabContentRef: tab.ref, tabContentId: `pf-tab-${index}-${tab.title.split(' ')[0]}-tabpanel`, title: React.createElement(TabTitleText, null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/Groups/GroupSelect/GroupSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAwC3E,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;CAChD;AAKD,eAAO,MAAM,WAAW,UAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"GroupSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/Groups/GroupSelect/GroupSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAwC3E,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;CAChD;AAKD,eAAO,MAAM,WAAW,UAAW,MAAM,sBA4hBxC,CAAC"}
|
|
@@ -41,7 +41,7 @@ export const GroupSelect = (props) => {
|
|
|
41
41
|
useEffect(() => {
|
|
42
42
|
var _a, _b;
|
|
43
43
|
if (haventLoadedMetadata(caseGroups, (data) => data === undefined))
|
|
44
|
-
fetchCaseGroupsForSSO(dispatch, loggedInUserJwtToken.
|
|
44
|
+
fetchCaseGroupsForSSO(dispatch, loggedInUserJwtToken.preferred_username);
|
|
45
45
|
if (isEmpty(selectedGroup) && !isEmpty(caseGroups) && ((_a = caseGroups === null || caseGroups === void 0 ? void 0 : caseGroups.data) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
46
46
|
const defaultCaseGroup = find(caseGroups === null || caseGroups === void 0 ? void 0 : caseGroups.data, (g) => g.isDefault);
|
|
47
47
|
const newSelectedGroup = (defaultCaseGroup === null || defaultCaseGroup === void 0 ? void 0 : defaultCaseGroup.groupNum) === '-1'
|
|
@@ -112,7 +112,7 @@ export const GroupSelect = (props) => {
|
|
|
112
112
|
// group actions
|
|
113
113
|
function setGroupOnFetch(groupName) {
|
|
114
114
|
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
-
yield fetchCaseGroupsForSSO(dispatch, loggedInUserJwtToken.
|
|
115
|
+
yield fetchCaseGroupsForSSO(dispatch, loggedInUserJwtToken.preferred_username);
|
|
116
116
|
setSelectedGroup(groupName);
|
|
117
117
|
});
|
|
118
118
|
}
|
|
@@ -146,7 +146,7 @@ export const GroupSelect = (props) => {
|
|
|
146
146
|
ToastNotification.addWarningMessage(t('Group already exists'));
|
|
147
147
|
break;
|
|
148
148
|
}
|
|
149
|
-
yield createGroup(input, loggedInUserJwtToken.
|
|
149
|
+
yield createGroup(input, loggedInUserJwtToken.preferred_username);
|
|
150
150
|
setAction('');
|
|
151
151
|
break;
|
|
152
152
|
}
|
|
@@ -218,7 +218,10 @@ export const GroupSelect = (props) => {
|
|
|
218
218
|
break;
|
|
219
219
|
}
|
|
220
220
|
try {
|
|
221
|
-
yield duplicateGroupFetch.request({
|
|
221
|
+
yield duplicateGroupFetch.request({
|
|
222
|
+
name: input,
|
|
223
|
+
contactSsoName: loggedInUserJwtToken.preferred_username,
|
|
224
|
+
});
|
|
222
225
|
yield setGroupOnFetch(input);
|
|
223
226
|
setShowDropdown(true);
|
|
224
227
|
setShowInput(false);
|
|
@@ -352,7 +355,7 @@ export const GroupSelect = (props) => {
|
|
|
352
355
|
!showErrorMessage && !showInput && (React.createElement(React.Fragment, null,
|
|
353
356
|
React.createElement("label", null,
|
|
354
357
|
React.createElement(Trans, null, "Group")),
|
|
355
|
-
React.createElement(Select, { id: "group-selector", isOpen: isOpen, onSelect: (e, selection) => handleSelect(selection), onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: toggle, selected: selectedGroup, shouldFocusFirstItemOnOpen: false, "aria-label": "Select a group to view accounts", "aria-labelledby": selectAGroupText, "data-tracking-id": "group-list-selector" },
|
|
358
|
+
React.createElement(Select, { id: "group-selector", isOpen: isOpen, onSelect: (e, selection) => handleSelect(selection), onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: toggle, selected: selectedGroup, shouldFocusFirstItemOnOpen: false, "aria-label": "Select a group to view accounts", "aria-labelledby": selectAGroupText, "data-tracking-id": "group-list-selector", isScrollable: true },
|
|
356
359
|
React.createElement(SelectList, { id: "group-selector-listbox" }, filteredGroups.length > 0 ? (filteredGroups.map((group, index) => (React.createElement(SelectOption, { id: `group-option-${group.name}`, key: index, value: group, isFocused: focusedItemIndex === index, className: "pf-v6-c-select__menu-wrapper", isSelected: group.name === selectedGroup }, group.name)))) : (React.createElement(SelectOption, { key: "no-results", value: '' }, t('No results found'))))))),
|
|
357
360
|
!showErrorMessage && showDropdown && (React.createElement(Dropdown, { className: "group-actions-dropdown group-action", toggle: dropdownToggle, isOpen: isDropdownOpen, onOpenChange: (isOpen) => setIsDropdownOpen(isOpen), "aria-label": t('Group actions dropdown'), shouldFocusFirstItemOnOpen: false, shouldFocusToggleOnSelect: true },
|
|
358
361
|
React.createElement(MenuContent, null,
|
package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.js
CHANGED
|
@@ -253,7 +253,7 @@ export function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }
|
|
|
253
253
|
' ',
|
|
254
254
|
"bookmarks in the customer support tool"))), closeBtnAriaLabel: "Close" },
|
|
255
255
|
React.createElement(Button, { icon: React.createElement(Icon, { size: "md" },
|
|
256
|
-
React.createElement(InfoCircleIcon,
|
|
256
|
+
React.createElement(InfoCircleIcon, { color: "#5e40be" })), variant: "plain", className: "manage-bookmark-info-icon-button", "aria-label": "Cluster Id Info" }))))),
|
|
257
257
|
React.createElement("div", { className: "toolbar pf-v6-u-justify-content-space-between" },
|
|
258
258
|
React.createElement("form", { onSubmit: (event) => event.preventDefault(), className: "toolbar-left" },
|
|
259
259
|
React.createElement("label", { htmlFor: "bookmark-account-selector" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpiredContentSingleItemView.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentSingleItemView.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAIrE,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAIjG,UAAU,MAAM;IACZ,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAAC,EACjD,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,GACb,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ExpiredContentSingleItemView.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentSingleItemView.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAIrE,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAIjG,UAAU,MAAM;IACZ,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAAC,EACjD,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,GACb,EAAE,MAAM,qBAwOR"}
|
|
@@ -136,7 +136,13 @@ export default function ExpiredContentSingleItemView({ category, content, onCanc
|
|
|
136
136
|
React.createElement(TagsSelector, { tagOptions: tagOptions, onChange: handleLocalTagChange, selectedTags: localSelectedTags, placeholder: t('Select tags to improve discoverability'), id: "expired-content-tag" }))),
|
|
137
137
|
React.createElement(FlexItem, null,
|
|
138
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: {
|
|
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
|
+
} })))),
|
|
140
146
|
React.createElement("span", { className: "top-content-single-item-footer" },
|
|
141
147
|
React.createElement("span", null,
|
|
142
148
|
React.createElement(Button, { variant: "primary", onClick: onContentSave, isDisabled: isSaveButtonDisabled || isSaving, isLoading: isSaving },
|
|
@@ -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;AAGF,eAAO,MAAM,YAAY,SAAU,MAAM,cAAa,MAAM,WAK3D,CAAC;AAEF,wBAAgB,QAAQ,
|
|
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;AAGF,eAAO,MAAM,YAAY,SAAU,MAAM,cAAa,MAAM,WAK3D,CAAC;AAEF,wBAAgB,QAAQ,sBAqRvB"}
|
|
@@ -118,12 +118,12 @@ export function Requests() {
|
|
|
118
118
|
setIsRequestAgainModalOpen(true);
|
|
119
119
|
};
|
|
120
120
|
const actionResolver = (rowData) => {
|
|
121
|
-
var _a
|
|
121
|
+
var _a;
|
|
122
122
|
if (!rowData)
|
|
123
123
|
return;
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
const 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) || '';
|
|
127
127
|
return [
|
|
128
128
|
...(status === 'EXPIRED'
|
|
129
129
|
? [
|
|
@@ -133,6 +133,11 @@ export function Requests() {
|
|
|
133
133
|
itemKey: 'request-again',
|
|
134
134
|
'data-tracking-id': 'request-again',
|
|
135
135
|
},
|
|
136
|
+
{
|
|
137
|
+
isSeparator: true,
|
|
138
|
+
itemKey: 'separator',
|
|
139
|
+
'data-tracking-id': 'separator',
|
|
140
|
+
},
|
|
136
141
|
]
|
|
137
142
|
: []),
|
|
138
143
|
{
|
|
@@ -48,7 +48,7 @@ export function PreferencesACL() {
|
|
|
48
48
|
React.createElement(PreferenceSwitch, { id: "ACL-switch", label: isAclActivated ? t('ACL Enabled') : t('ACL Disabled'), isChecked: isAclActivated, onSwitchChange: onAclSwitch }),
|
|
49
49
|
React.createElement("div", { className: "prefhostnameTooltip" },
|
|
50
50
|
React.createElement(Tooltip, { content: t('This determines if the account is utilizing case group access controls'), position: "right" },
|
|
51
|
-
React.createElement(InfoCircleIcon, { className: "pf-v6-u-ml-sm cursor-pointer" })),
|
|
51
|
+
React.createElement(InfoCircleIcon, { color: "#5e40be", className: "pf-v6-u-ml-sm cursor-pointer" })),
|
|
52
52
|
isAclLoading && (React.createElement(Spinner, { size: "lg", className: "pf-v6-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" })))),
|
|
53
53
|
React.createElement("div", { className: "pf-v6-u-mt-lg" },
|
|
54
54
|
React.createElement("label", null,
|
|
@@ -216,6 +216,6 @@ export function PreferencesCaseView(props) {
|
|
|
216
216
|
React.createElement(PreferenceSwitch, { id: "share-hostnames-switch", label: 'Share hostnames', isChecked: isSharingHostNames, onSwitchChange: onShareHostNamesSwitch }),
|
|
217
217
|
React.createElement("div", { className: "prefhostnameTooltip" },
|
|
218
218
|
React.createElement(Tooltip, { content: prefHostnameCopy, position: "right" },
|
|
219
|
-
React.createElement(InfoCircleIcon, { className: "pf-v6-u-ml-sm cursor-pointer" })),
|
|
219
|
+
React.createElement(InfoCircleIcon, { className: "pf-v6-u-ml-sm cursor-pointer", color: "#5e40be" })),
|
|
220
220
|
isHostnamesLoading && (React.createElement(Spinner, { size: "lg", className: "pf-v6-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" }))))))))));
|
|
221
221
|
}
|
|
@@ -14,7 +14,7 @@ const CategoryLimit = () => {
|
|
|
14
14
|
setModalOpen(true);
|
|
15
15
|
} }, "Review guidelines."))) },
|
|
16
16
|
React.createElement(Button, { icon: React.createElement(Icon, { size: "md" },
|
|
17
|
-
React.createElement(CircleInfo,
|
|
17
|
+
React.createElement(CircleInfo, { color: "#5e40be" })), variant: "plain" })),
|
|
18
18
|
React.createElement(CategoryLimitGuidelines, { isModalOpen: isModalOpen, onHideModal: onHideModal })));
|
|
19
19
|
};
|
|
20
20
|
export default CategoryLimit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopContentComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TopContentComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,OAAO,EAGH,oBAAoB,EAGvB,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,yBAAyB;IACtC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,CAAC,yBAAyB,CAsHlF,CAAC"}
|
|
@@ -9,7 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { Button } from '@patternfly/react-core';
|
|
11
11
|
import { ToastNotification } from '@rh-support/components';
|
|
12
|
-
import
|
|
12
|
+
import { isEmpty } from 'lodash';
|
|
13
|
+
import React, { useEffect, useState } from 'react';
|
|
13
14
|
import { Draggable, Droppable } from 'react-beautiful-dnd';
|
|
14
15
|
import { Trans, useTranslation } from 'react-i18next';
|
|
15
16
|
import { useTopContentContext, useTopContentDispatchContext } from '../../../../context/TopContentProvider';
|
|
@@ -20,6 +21,11 @@ export const TopContentComponent = (props) => {
|
|
|
20
21
|
const topContentDispatch = useTopContentDispatchContext();
|
|
21
22
|
const { topContentEditState, topContentResponse, isSearchModeEnabled } = useTopContentContext();
|
|
22
23
|
const [isArrangingContent, setIsArrangingContent] = useState(false);
|
|
24
|
+
const [isDisableAddContent, setIsDisableAddContent] = useState(false);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
const value = props.category.content.find((item) => isEmpty(item.contentTitle));
|
|
27
|
+
setIsDisableAddContent(!!value);
|
|
28
|
+
}, [props.category.content]);
|
|
23
29
|
// we add an category with empty content to state, the rest is handled like existing categories
|
|
24
30
|
const addContent = () => addTopContent(topContentDispatch, topContentEditState, props.category.id);
|
|
25
31
|
const arrangeSection = () => {
|
|
@@ -42,7 +48,7 @@ export const TopContentComponent = (props) => {
|
|
|
42
48
|
};
|
|
43
49
|
const buttons = (React.createElement("div", { className: "pf-v6-c-accordion__expanded-content-footer" },
|
|
44
50
|
!isArrangingContent && props.categoryMode !== CategoryMode.NEW_SECTION && (React.createElement("span", null,
|
|
45
|
-
React.createElement(Button, { className: "pf-v6-u-mr-md", variant: "secondary", onClick: addContent, "data-tracking-id": "add-content-top-content" },
|
|
51
|
+
React.createElement(Button, { className: "pf-v6-u-mr-md", variant: "secondary", onClick: addContent, "data-tracking-id": "add-content-top-content", isDisabled: isDisableAddContent },
|
|
46
52
|
React.createElement(Trans, null, "Add content")),
|
|
47
53
|
React.createElement(Button, { variant: "secondary", onClick: arrangeSection, isDisabled: props.category.content.length < 2 },
|
|
48
54
|
React.createElement(Trans, null, "Arrange section")))),
|
|
@@ -326,7 +326,7 @@ export const TopContentSingleItem = ({ isArrangingContent, category, snapshot, i
|
|
|
326
326
|
(content.tags || []).map((tag) => (React.createElement(Label, { isCompact: true, className: "pf-v6-u-mr-xs pf-v6-u-mt-sm", key: tag.id, color: filteredTags.some((t) => t.id === tag.id) ? 'yellow' : 'grey' }, tag.tagName))),
|
|
327
327
|
!isEmpty((_c = content.expiryDate) !== null && _c !== void 0 ? _c : '') && !isFutureDate(content.expiryDate) && (React.createElement(Label, { isCompact: true, className: "pf-v6-u-mr-xs pf-v6-u-mt-sm", color: "red" },
|
|
328
328
|
React.createElement(Trans, null, "Outdated Content")))))),
|
|
329
|
-
(!isPreview || content.mode === ContentMode.ADD || content.mode === ContentMode.NEW_SECTION_CONTENT) && (React.createElement(Card, { variant: "secondary" },
|
|
329
|
+
(!isPreview || content.mode === ContentMode.ADD || content.mode === ContentMode.NEW_SECTION_CONTENT) && (React.createElement(Card, { variant: "secondary", className: "pf-v6-u-mb-md" },
|
|
330
330
|
React.createElement(CardBody, null,
|
|
331
331
|
React.createElement("form", { noValidate: true, onSubmit: onSubmit, ref: ref },
|
|
332
332
|
content.mode === ContentMode.NEW_SECTION_CONTENT && (React.createElement(AddNewCategoryDropDown, { onCategoryChange: onAddedNewCategoryChange })),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* This hook is used for to differentiate actual versions of product from versions with top content
|
|
3
3
|
* @param {string} selectedProductName Selected product name
|
|
4
4
|
* @param {string} selectedMajorVersion Selected version
|
|
5
|
-
* @returns {[boolean, String[]]} Loading status and differentiated list of
|
|
5
|
+
* @returns {[boolean, String[]]} Loading status and differentiated list of versions
|
|
6
6
|
*/
|
|
7
7
|
export declare const useVersionsDiffer: (selectedProductName: string, selectedMajorVersion: string) => [boolean, String[]];
|
|
8
8
|
//# sourceMappingURL=useVersionsDiffer.d.ts.map
|
|
@@ -7,7 +7,7 @@ import { postVersionsProcessor } from '../components/TopContentManagement/TopCon
|
|
|
7
7
|
* This hook is used for to differentiate actual versions of product from versions with top content
|
|
8
8
|
* @param {string} selectedProductName Selected product name
|
|
9
9
|
* @param {string} selectedMajorVersion Selected version
|
|
10
|
-
* @returns {[boolean, String[]]} Loading status and differentiated list of
|
|
10
|
+
* @returns {[boolean, String[]]} Loading status and differentiated list of versions
|
|
11
11
|
*/
|
|
12
12
|
export const useVersionsDiffer = (selectedProductName, selectedMajorVersion) => {
|
|
13
13
|
const [majorVersion, setMajorVersion] = useState([]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopContentReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/TopContentReducer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TopContentReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/TopContentReducer.ts"],"names":[],"mappings":"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"}
|
|
@@ -476,7 +476,8 @@ export const saveChangeInCategoryContent = (dispatch, topContentEditState, categ
|
|
|
476
476
|
// saves content re-arrenging
|
|
477
477
|
export const reArrangeContent = (dispatch, topContentEditState, categoryId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
478
478
|
const categoryToBeSave = topContentEditState.find((cat) => cat.id === categoryId);
|
|
479
|
-
const contentArr = categoryToBeSave.content;
|
|
479
|
+
const contentArr = categoryToBeSave.content.filter((item) => !isEmpty(item.contentTitle) && !isEmpty(item.contentUrl));
|
|
480
|
+
categoryToBeSave.content = contentArr;
|
|
480
481
|
const toUpdate = contentArr.map((item) => ({
|
|
481
482
|
id: item.topContentId,
|
|
482
483
|
contentRank: item.contentRank,
|
package/lib/esm/scss/_main.scss
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/manage",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.98",
|
|
4
4
|
"description": "Customer Support Manage App",
|
|
5
5
|
"author": "Jordan Eudy <jeudy100@gmail.com>",
|
|
6
6
|
"license": "ISC",
|
|
@@ -79,12 +79,12 @@
|
|
|
79
79
|
"@patternfly/patternfly": "6.2.1",
|
|
80
80
|
"@patternfly/react-core": "6.2.1",
|
|
81
81
|
"@patternfly/react-table": "6.2.1",
|
|
82
|
-
"@rh-support/components": "2.5.
|
|
82
|
+
"@rh-support/components": "2.5.75",
|
|
83
83
|
"@rh-support/configs": "2.0.21",
|
|
84
|
-
"@rh-support/react-context": "2.5.
|
|
84
|
+
"@rh-support/react-context": "2.5.95",
|
|
85
85
|
"@rh-support/types": "2.0.5",
|
|
86
|
-
"@rh-support/user-permissions": "2.5.
|
|
87
|
-
"@rh-support/utils": "2.5.
|
|
86
|
+
"@rh-support/user-permissions": "2.5.48",
|
|
87
|
+
"@rh-support/utils": "2.5.44",
|
|
88
88
|
"@types/react-beautiful-dnd": "^13.0.0",
|
|
89
89
|
"i18next": "^23.15.0",
|
|
90
90
|
"lodash": ">=4.17.15",
|
|
@@ -103,5 +103,5 @@
|
|
|
103
103
|
"defaults and supports es6-module",
|
|
104
104
|
"maintained node versions"
|
|
105
105
|
],
|
|
106
|
-
"gitHead": "
|
|
106
|
+
"gitHead": "29bfcc59d48ef890c622d6178951ea526ce0be96"
|
|
107
107
|
}
|