Skip to content

Commit 46a2356

Browse files
committed
fixup! feat: improve collection sidebar
1 parent 82aba72 commit 46a2356

File tree

6 files changed

+49
-25
lines changed

6 files changed

+49
-25
lines changed

src/library-authoring/collections/CollectionInfo.tsx

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import { useIntl } from '@edx/frontend-platform/i18n';
22
import {
3+
Button,
4+
Stack,
35
Tab,
46
Tabs,
57
} from '@openedx/paragon';
8+
import { Link } from 'react-router-dom';
69

7-
import type { ContentLibrary } from '../data/api';
810
import type { CollectionHit } from '../../search-manager';
9-
import messages from './messages';
11+
import type { ContentLibrary } from '../data/api';
1012
import CollectionDetails from './CollectionDetails';
13+
import messages from './messages';
1114

1215
interface CollectionInfoProps {
1316
library: ContentLibrary,
@@ -18,22 +21,34 @@ const CollectionInfo = ({ library, collection }: CollectionInfoProps) => {
1821
const intl = useIntl();
1922

2023
return (
21-
<Tabs
22-
variant="tabs"
23-
className="my-3 d-flex justify-content-around"
24-
defaultActiveKey="manage"
25-
>
26-
<Tab eventKey="manage" title={intl.formatMessage(messages.manageTabTitle)}>
27-
Manage tab placeholder
28-
</Tab>
29-
<Tab eventKey="details" title={intl.formatMessage(messages.detailsTabTitle)}>
30-
<CollectionDetails
31-
key={collection.id} // This is necessary to force a re-render when the collection changes
32-
library={library}
33-
collection={collection}
34-
/>
35-
</Tab>
36-
</Tabs>
24+
<Stack>
25+
<div className="d-flex flex-wrap">
26+
<Button
27+
as={Link}
28+
to={`/library/${library.id}/collection/${collection.blockId}/`}
29+
variant="outline-primary"
30+
className="m-1 text-nowrap flex-grow-1"
31+
>
32+
{intl.formatMessage(messages.openCollectionButton)}
33+
</Button>
34+
</div>
35+
<Tabs
36+
variant="tabs"
37+
className="my-3 d-flex justify-content-around"
38+
defaultActiveKey="manage"
39+
>
40+
<Tab eventKey="manage" title={intl.formatMessage(messages.manageTabTitle)}>
41+
Manage tab placeholder
42+
</Tab>
43+
<Tab eventKey="details" title={intl.formatMessage(messages.detailsTabTitle)}>
44+
<CollectionDetails
45+
key={collection.id} // This is necessary to force a re-render when the collection changes
46+
library={library}
47+
collection={collection}
48+
/>
49+
</Tab>
50+
</Tabs>
51+
</Stack>
3752
);
3853
};
3954

src/library-authoring/collections/LibraryCollectionPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ const LibraryCollectionPageInner = ({ libraryId }: { libraryId: string }) => {
102102
const { collectionHits: [collectionData], isFetching } = useSearchContext();
103103

104104
useEffect(() => {
105-
openCollectionInfoSidebar();
106-
}, []);
105+
openCollectionInfoSidebar(collectionData);
106+
}, [collectionData]);
107107

108108
const { data: libraryData, isLoading: isLibLoading } = useContentLibrary(libraryId);
109109

@@ -149,7 +149,7 @@ const LibraryCollectionPageInner = ({ libraryId }: { libraryId: string }) => {
149149
<SubHeaderTitle
150150
title={collectionData.displayName}
151151
canEditLibrary={libraryData.canEditLibrary}
152-
infoClickHandler={openCollectionInfoSidebar}
152+
infoClickHandler={() => openCollectionInfoSidebar(collectionData)}
153153
/>
154154
)}
155155
breadcrumbs={(

src/library-authoring/collections/messages.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
import { defineMessages } from '@edx/frontend-platform/i18n';
22

33
const messages = defineMessages({
4+
openCollectionButton: {
5+
id: 'course-authoring.library-authoring.collections-sidebbar.open-button',
6+
defaultMessage: 'Open',
7+
description: 'Button text to open collection',
8+
},
49
manageTabTitle: {
510
id: 'course-authoring.library-authoring.collections-sidebar.manage-tab.title',
611
defaultMessage: 'Manage',

src/library-authoring/components/CollectionCard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export const CollectionMenu = ({ collectionHit }: { collectionHit: CollectionHit
3333
as={Link}
3434
to={`/library/${collectionHit.contextKey}/collection/${collectionHit.blockId}/`}
3535
>
36-
<FormattedMessage {...messages.menuEdit} />
36+
<FormattedMessage {...messages.menuOpen} />
3737
</Dropdown.Item>
3838
</Dropdown.Menu>
3939
</Dropdown>

src/library-authoring/components/messages.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,15 @@ const messages = defineMessages({
2121
defaultMessage: 'Collection ({numChildren})',
2222
description: 'Collection type text with children count',
2323
},
24+
menuOpen: {
25+
id: 'course-authoring.library-authoring.collection.menu.open',
26+
defaultMessage: 'Open',
27+
description: 'Menu item for open a collection.',
28+
},
2429
menuEdit: {
25-
id: 'course-authoring.library-authoring.component-collection.menu.edit',
30+
id: 'course-authoring.library-authoring.component.menu.edit',
2631
defaultMessage: 'Edit',
27-
description: 'Menu item for edit a component/collection.',
32+
description: 'Menu item for edit a component.',
2833
},
2934
menuCopyToClipboard: {
3035
id: 'course-authoring.library-authoring.component.menu.copy',
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
@import "./history-widget/HistoryWidget";
22
@import "./status-widget/StatusWidget";
3-
@import "./history-widget/HistoryWidget";

0 commit comments

Comments
 (0)