Skip to content

Commit e118eb5

Browse files
authored
chore: hide transcripts in video preview for library (openedx#1459)
Fixes: openedx#1453
1 parent d7bbd40 commit e118eb5

File tree

3 files changed

+59
-4
lines changed

3 files changed

+59
-4
lines changed

src/editors/containers/VideoEditor/components/VideoSettingsModal/components/VideoPreviewWidget/index.jsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ import hooks from './hooks';
1111
import LanguageNamesWidget from './LanguageNamesWidget';
1212
import videoThumbnail from '../../../../../../data/images/videoThumbnail.svg';
1313

14-
const VideoPreviewWidget = ({
14+
// Exporting to test this component separately
15+
export const VideoPreviewWidget = ({
1516
thumbnail,
1617
videoSource,
1718
transcripts,
1819
blockTitle,
20+
isLibrary,
1921
intl,
2022
}) => {
2123
const imgRef = React.useRef();
@@ -45,7 +47,10 @@ const VideoPreviewWidget = ({
4547
/>
4648
<Stack gap={1} className="justify-content-center">
4749
<h4 className="text-primary mb-0">{blockTitle}</h4>
48-
<LanguageNamesWidget transcripts={transcripts} />
50+
{!isLibrary && (
51+
// Since content libraries v2 don't support static assets yet, we can't include transcripts.
52+
<LanguageNamesWidget transcripts={transcripts} />
53+
)}
4954
{videoType && (
5055
<Hyperlink
5156
className="text-primary x-small"
@@ -69,13 +74,15 @@ VideoPreviewWidget.propTypes = {
6974
thumbnail: PropTypes.string.isRequired,
7075
transcripts: PropTypes.arrayOf(PropTypes.string).isRequired,
7176
blockTitle: PropTypes.string.isRequired,
77+
isLibrary: PropTypes.bool.isRequired,
7278
};
7379

7480
export const mapStateToProps = (state) => ({
7581
transcripts: selectors.video.transcripts(state),
7682
videoSource: selectors.video.videoSource(state),
7783
thumbnail: selectors.video.thumbnail(state),
7884
blockTitle: selectors.app.blockTitle(state),
85+
isLibrary: selectors.app.isLibrary(state),
7986
});
8087

8188
export default injectIntl(connect(mapStateToProps)(VideoPreviewWidget));
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import {
2+
initializeMocks,
3+
render,
4+
screen,
5+
} from '../../../../../../../testUtils';
6+
7+
import { VideoPreviewWidget } from '.';
8+
9+
describe('VideoPreviewWidget', () => {
10+
const mockIntl = {
11+
formatMessage: (message) => message.defaultMessage,
12+
};
13+
14+
beforeEach(() => {
15+
initializeMocks();
16+
});
17+
18+
describe('render', () => {
19+
test('renders transcripts section in preview for courses', () => {
20+
render(
21+
<VideoPreviewWidget
22+
videoSource="some-source"
23+
isLibrary={false}
24+
intl={mockIntl}
25+
transcripts={[]}
26+
blockTitle="some title"
27+
thumbnail=""
28+
/>,
29+
);
30+
expect(screen.queryByText('No transcripts added')).toBeInTheDocument();
31+
});
32+
33+
test('hides transcripts section in preview for libraries', () => {
34+
render(
35+
<VideoPreviewWidget
36+
videoSource="some-source"
37+
isLibrary
38+
intl={mockIntl}
39+
transcripts={[]}
40+
blockTitle="some title"
41+
thumbnail=""
42+
/>,
43+
);
44+
expect(screen.queryByText('No transcripts added')).not.toBeInTheDocument();
45+
});
46+
});
47+
});

src/editors/containers/VideoEditor/components/VideoSettingsModal/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import LicenseWidget from './components/LicenseWidget';
1111
import ThumbnailWidget from './components/ThumbnailWidget';
1212
import TranscriptWidget from './components/TranscriptWidget';
1313
import VideoSourceWidget from './components/VideoSourceWidget';
14-
import VideoPreviewWidget from './components/VideoPreviewWidget';
14+
// Using default import to get selectors connected VideoSourceWidget
15+
import ConnectedVideoPreviewWidget from './components/VideoPreviewWidget';
1516
import './index.scss';
1617
import SocialShareWidget from './components/SocialShareWidget';
1718
import messages from '../../messages';
@@ -42,7 +43,7 @@ const VideoSettingsModal: React.FC<Props> = ({
4243
</Button>
4344
)}
4445
<ErrorSummary />
45-
<VideoPreviewWidget />
46+
<ConnectedVideoPreviewWidget />
4647
<VideoSourceWidget />
4748
{!isLibrary && (
4849
<SocialShareWidget />

0 commit comments

Comments
 (0)