Adds new routes and URL parameters to use when viewing and performing searches on library components. These changes allow these pages to be bookmarked or shared by copy/pasting the browser's current URL. No changes were made to the UI. Use cases covered: * As an author working with content libraries, I want to easily share any component in a library with other people on my team, by copying the URL from my browser and sending it to them. * As an author working with content libraries, I want to easily share any search results with other people on my team, by copying the URL from my browser and sending it to them. * As an author working with content libraries, I want to bookmark a search in my browser and return to it at any time, with the same filters and keywords applied. * As an author of a content library with public read access, I want to easily share any component in a library with any authors on the same Open edX instance, by copying the URL from my browser and sending it to them. * As an author of a content library, I want to easily share a library's "Manage Team" page with other people on my team by copying the URL from my browser and sending it to them. * As an author working with content libraries, I want to easily share any selected sidebar tab with other people on my team, by copying the URL from my browser and sending it to them.
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { Stack } from '@openedx/paragon';
|
|
import { NoComponents, NoSearchResults } from '../EmptyStates';
|
|
import { useSearchContext } from '../../search-manager';
|
|
import messages from './messages';
|
|
import { useSidebarContext } from '../common/context/SidebarContext';
|
|
import LibraryContent from '../LibraryContent';
|
|
import { ContentType } from '../routes';
|
|
|
|
const LibraryCollectionComponents = () => {
|
|
const { totalHits: componentCount, isFiltered } = useSearchContext();
|
|
const { openAddContentSidebar } = useSidebarContext();
|
|
|
|
if (componentCount === 0) {
|
|
return isFiltered
|
|
? <NoSearchResults infoText={messages.noSearchResultsInCollection} />
|
|
: (
|
|
<NoComponents
|
|
infoText={messages.noComponentsInCollection}
|
|
addBtnText={messages.addComponentsInCollection}
|
|
handleBtnClick={openAddContentSidebar}
|
|
/>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Stack direction="vertical" gap={3}>
|
|
<h3 className="text-gray">Content ({componentCount})</h3>
|
|
<LibraryContent contentType={ContentType.collections} />
|
|
</Stack>
|
|
);
|
|
};
|
|
|
|
export default LibraryCollectionComponents;
|