Skip to content

Commit f57b5f8

Browse files
committed
fix: do not allow units be added to a unit
1 parent fd40b0a commit f57b5f8

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

src/library-authoring/add-content/AddContent.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { useLibraryContext } from '../common/context/LibraryContext';
2929
import { PickLibraryContentModal } from './PickLibraryContentModal';
3030
import { blockTypes } from '../../editors/data/constants/app';
3131

32+
import { ContentType as LibraryContentTypes } from '../routes';
3233
import genericMessages from '../generic/messages';
3334
import messages from './messages';
3435
import type { BlockTypeMetadata } from '../data/api';
@@ -115,6 +116,9 @@ const AddContentView = ({
115116
blockType: 'libraryContent',
116117
};
117118

119+
const extraFilter = unitId ? ['NOT block_type = "unit"', 'NOT type = "collections"'] : undefined;
120+
const visibleTabs = unitId ? [LibraryContentTypes.components] : undefined;
121+
118122
return (
119123
<>
120124
{(collectionId || unitId) && componentPicker && (
@@ -124,6 +128,8 @@ const AddContentView = ({
124128
<PickLibraryContentModal
125129
isOpen={isAddLibraryContentModalOpen}
126130
onClose={closeAddLibraryContentModal}
131+
extraFilter={extraFilter}
132+
visibleTabs={visibleTabs}
127133
/>
128134
</>
129135
)}

src/library-authoring/add-content/PickLibraryContentModal.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { useLibraryContext } from '../common/context/LibraryContext';
77
import type { SelectedComponent } from '../common/context/ComponentPickerContext';
88
import { useAddItemsToCollection, useAddComponentsToContainer } from '../data/apiHooks';
99
import genericMessages from '../generic/messages';
10+
import type { ContentType } from '../routes';
1011
import messages from './messages';
1112

1213
interface PickLibraryContentModalFooterProps {
@@ -33,12 +34,14 @@ interface PickLibraryContentModalProps {
3334
isOpen: boolean;
3435
onClose: () => void;
3536
extraFilter?: string[];
37+
visibleTabs?: ContentType[],
3638
}
3739

3840
export const PickLibraryContentModal: React.FC<PickLibraryContentModalProps> = ({
3941
isOpen,
4042
onClose,
4143
extraFilter,
44+
visibleTabs,
4245
}) => {
4346
const intl = useIntl();
4447

@@ -110,6 +113,7 @@ export const PickLibraryContentModal: React.FC<PickLibraryContentModalProps> = (
110113
componentPickerMode="multiple"
111114
onChangeComponentSelection={setSelectedComponents}
112115
extraFilter={extraFilter}
116+
visibleTabs={visibleTabs}
113117
/>
114118
</StandardModal>
115119
);

src/library-authoring/units/LibraryUnitBlocks.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import {
2828
useUpdateXBlockFields,
2929
} from '../data/apiHooks';
3030
import { LibraryBlock } from '../LibraryBlock';
31-
import { useLibraryRoutes } from '../routes';
31+
import { useLibraryRoutes, ContentType } from '../routes';
3232
import messages from './messages';
3333
import { useSidebarContext } from '../common/context/SidebarContext';
3434
import { ToastContext } from '../../generic/toast-context';
@@ -275,7 +275,8 @@ export const LibraryUnitBlocks = ({ preview }: LibraryUnitBlocksProps) => {
275275
<PickLibraryContentModal
276276
isOpen={isAddLibraryContentModalOpen}
277277
onClose={closeAddLibraryContentModal}
278-
extraFilter={['NOT block_type = "unit"']}
278+
extraFilter={['NOT block_type = "unit"', 'NOT type = "collection"']}
279+
visibleTabs={[ContentType.components]}
279280
/>
280281
</div>
281282
</div>

0 commit comments

Comments
 (0)