fix: Fixed delete for additional video url fields (backport) (#2471)

Backport of 2470
This commit is contained in:
vladislavkeblysh
2025-12-11 01:13:27 +02:00
committed by GitHub
parent 6841e94ab0
commit fea78afa85
3 changed files with 9 additions and 9 deletions

View File

@@ -78,6 +78,7 @@ exports[`VideoSourceWidget snapshots snapshots: renders as expected with default
</div>
<Form.Row
className="mt-3.5 mx-0 flex-nowrap"
key="somEUrL"
>
<Form.Group>
<Form.Control
@@ -86,7 +87,6 @@ exports[`VideoSourceWidget snapshots snapshots: renders as expected with default
<IconButtonWithTooltip
alt="Delete"
iconAs="Icon"
key="top-delete-somEUrL"
onClick={[Function]}
tooltipContent="Delete"
tooltipPlacement="top"
@@ -237,6 +237,7 @@ exports[`VideoSourceWidget snapshots snapshots: renders as expected with videoSh
</div>
<Form.Row
className="mt-3.5 mx-0 flex-nowrap"
key="somEUrL"
>
<Form.Group>
<Form.Control
@@ -245,7 +246,6 @@ exports[`VideoSourceWidget snapshots snapshots: renders as expected with videoSh
<IconButtonWithTooltip
alt="Delete"
iconAs="Icon"
key="top-delete-somEUrL"
onClick={[Function]}
tooltipContent="Delete"
tooltipPlacement="top"

View File

@@ -39,16 +39,17 @@ export const sourceHooks = ({ dispatch, previousVideoId, setAlert }) => ({
export const fallbackHooks = ({ fallbackVideos, dispatch }) => ({
addFallbackVideo: () => dispatch(actions.video.updateField({ fallbackVideos: [...fallbackVideos, ''] })),
/**
* Deletes the first occurrence of the given videoUrl from the fallbackVideos list
* @param {string} videoUrl - the video URL to delete
*/
deleteFallbackVideo: (videoUrl) => {
const index = fallbackVideos.findIndex(video => video === videoUrl);
deleteFallbackVideo: (videoIndex) => {
const updatedFallbackVideos = [
...fallbackVideos.slice(0, index),
...fallbackVideos.slice(index + 1),
...fallbackVideos.slice(0, videoIndex),
...fallbackVideos.slice(videoIndex + 1),
];
dispatch(actions.video.updateField({ fallbackVideos: updatedFallbackVideos }));
},
});

View File

@@ -101,7 +101,7 @@ const VideoSourceWidget = ({
<FormattedMessage {...messages.fallbackVideoMessage} />
</div>
{fallbackVideos.formValue.length > 0 ? fallbackVideos.formValue.map((videoUrl, index) => (
<Form.Row className="mt-3.5 mx-0 flex-nowrap">
<Form.Row className="mt-3.5 mx-0 flex-nowrap" key={videoUrl}>
<Form.Group>
<Form.Control
floatingLabel={intl.formatMessage(messages.fallbackVideoLabel)}
@@ -110,13 +110,12 @@ const VideoSourceWidget = ({
onBlur={fallbackVideos.onBlur(index)}
/>
<IconButtonWithTooltip
key={`top-delete-${videoUrl}`}
tooltipPlacement="top"
tooltipContent={intl.formatMessage(messages.deleteFallbackVideo)}
src={DeleteOutline}
iconAs={Icon}
alt={intl.formatMessage(messages.deleteFallbackVideo)}
onClick={() => deleteFallbackVideo(videoUrl)}
onClick={() => deleteFallbackVideo(index)}
/>
</Form.Group>
</Form.Row>