Skip to content

Commit 411d4f0

Browse files
fix: fixed delete for additional video url fields in video editor (#2470)
1 parent 9c0b545 commit 411d4f0

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

src/editors/containers/VideoEditor/components/VideoSettingsModal/components/VideoSourceWidget/hooks.jsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,14 @@ export const sourceHooks = ({ dispatch, previousVideoId, setAlert }) => ({
3939

4040
export const fallbackHooks = ({ fallbackVideos, dispatch }) => ({
4141
addFallbackVideo: () => dispatch(actions.video.updateField({ fallbackVideos: [...fallbackVideos, ''] })),
42+
4243
/**
4344
* Deletes the first occurrence of the given videoUrl from the fallbackVideos list
4445
* @param {string} videoUrl - the video URL to delete
4546
*/
46-
deleteFallbackVideo: (videoUrl) => {
47-
const index = fallbackVideos.findIndex(video => video === videoUrl);
48-
const updatedFallbackVideos = [
49-
...fallbackVideos.slice(0, index),
50-
...fallbackVideos.slice(index + 1),
51-
];
47+
deleteFallbackVideo: (videoIndex) => {
48+
const updatedFallbackVideos = fallbackVideos.toSpliced(videoIndex, 1);
49+
5250
dispatch(actions.video.updateField({ fallbackVideos: updatedFallbackVideos }));
5351
},
5452
});

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ const VideoSourceWidget = () => {
9898
<FormattedMessage {...messages.fallbackVideoMessage} />
9999
</div>
100100
{fallbackVideos.formValue.length > 0 ? fallbackVideos.formValue.map((videoUrl, index) => (
101-
<Form.Row className="mt-3.5 mx-0 flex-nowrap">
101+
// eslint-disable-next-line react/no-array-index-key
102+
<Form.Row className="mt-3.5 mx-0 flex-nowrap" key={`${index}-${videoUrl}`}>
102103
<Form.Group>
103104
<Form.Control
104105
floatingLabel={intl.formatMessage(messages.fallbackVideoLabel)}
@@ -107,13 +108,12 @@ const VideoSourceWidget = () => {
107108
onBlur={fallbackVideos.onBlur(index)}
108109
/>
109110
<IconButtonWithTooltip
110-
key={`top-delete-${videoUrl}`}
111111
tooltipPlacement="top"
112112
tooltipContent={intl.formatMessage(messages.deleteFallbackVideo)}
113113
src={DeleteOutline}
114114
iconAs={Icon}
115115
alt={intl.formatMessage(messages.deleteFallbackVideo)}
116-
onClick={() => deleteFallbackVideo(videoUrl)}
116+
onClick={() => deleteFallbackVideo(index)}
117117
/>
118118
</Form.Group>
119119
</Form.Row>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ describe('VideoSourceWidget', () => {
150150
expect(screen.getAllByText('Video URL').length).toBe(3); // 1 main + 2 fallback
151151
const deleteButtons = screen.getAllByRole('button', { name: /delete/i });
152152
fireEvent.click(deleteButtons[0]);
153-
expect(deleteFallbackVideo).toHaveBeenCalledWith('url1');
153+
expect(deleteFallbackVideo).toHaveBeenCalledWith(0);
154154
});
155155

156156
it('calls addFallbackVideo when add button is clicked', () => {

0 commit comments

Comments
 (0)