Skip to content

Commit d666001

Browse files
authored
fix: issue with localization url resolution in programs (#431)
1 parent abe986a commit d666001

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

services/channel/workflows/src/stations/Channels/ProgramManagement/Program/Program.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { FormikErrors } from 'formik';
1414
import moment, { utc } from 'moment';
1515
import React, { useContext, useEffect, useMemo } from 'react';
1616
import { DragDropContext, Draggable } from 'react-beautiful-dnd';
17-
import { useParams } from 'react-router';
1817
import { ProgramBreakType } from '../../../../generated/graphql';
1918
import { PortalContext } from '../../../../store/portal-contex';
2019
import { routes } from '../../routes';
@@ -25,6 +24,7 @@ import {
2524
ProgramCuePointProps,
2625
ProgramProps,
2726
} from '../ProgramManagement.types';
27+
import { ProgramManagementContext } from '../ProgramManagementProvider/ProgramManagementProvider';
2828
import classes from './Program.module.scss';
2929

3030
export const Program: React.FC<ProgramProps> = ({
@@ -46,10 +46,8 @@ export const Program: React.FC<ProgramProps> = ({
4646
onChange,
4747
onToggle,
4848
}) => {
49-
const { playlistId, channelId } = useParams<{
50-
channelId: string;
51-
playlistId: string;
52-
}>();
49+
const { playlistId, channelId } = useContext(ProgramManagementContext);
50+
5351
const { programCuePoints: cpErrors, ...rest } = errors;
5452
const errMsg = (Object.values(rest) as string[]).join(', ');
5553
const programLocalizationPath = getLocalizationEntryPoint('program');
@@ -113,7 +111,7 @@ export const Program: React.FC<ProgramProps> = ({
113111
let cumulativeCuePointDurations = 0;
114112

115113
// Calculate start times for cuepoints
116-
for (let i = 0; i < programCuePoints?.nodes?.length ?? []; i++) {
114+
for (let i = 0; i < programCuePoints?.nodes?.length; i++) {
117115
let totalCuePointDuration = 0;
118116
const node = programCuePoints?.nodes[i];
119117
if (node?.cuePointSchedules?.nodes?.length) {

services/channel/workflows/src/stations/Channels/ProgramManagement/ProgramManagement.types.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,12 +190,20 @@ export interface ProgramManagementContextMetadata {
190190
}
191191

192192
export interface ProgramManagementContextProps {
193+
channelId: string;
194+
playlistId: string;
193195
allProviders: FastProviderData[];
194196
providerTypeMap: ProgramMap;
195197
metadata: ProgramManagementContextMetadata;
196198
updateMetadata: (value: ProgramManagementContextMetadata) => void;
197199
}
198200

201+
export interface ProgramManagementProviderProps
202+
extends ProgramManagementContextMetadata {
203+
channelId: string;
204+
playlistId: string;
205+
}
206+
199207
export type ProgramEntity = Pick<
200208
Program,
201209
'title' | 'videoId' | 'entityId' | 'entityType' | 'imageId'

services/channel/workflows/src/stations/Channels/ProgramManagement/ProgramManagementForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ export const ProgramManagementForm: React.FC<ProgramManagementFormProps> = ({
298298
);
299299

300300
return (
301-
<ProgramManagementProvider>
301+
<ProgramManagementProvider channelId={channelId} playlistId={playlistId}>
302302
<Details<FormData>
303303
defaultTitle="Programs"
304304
initialData={{

services/channel/workflows/src/stations/Channels/ProgramManagement/ProgramManagementProvider/ProgramManagementProvider.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
FastProviderData,
55
ProgramManagementContextMetadata,
66
ProgramManagementContextProps,
7+
ProgramManagementProviderProps,
78
ProgramMap,
89
} from '../ProgramManagement.types';
910

@@ -16,6 +17,8 @@ const defaultMetadata: ProgramManagementContextMetadata = {
1617

1718
export const ProgramManagementContext =
1819
React.createContext<ProgramManagementContextProps>({
20+
channelId: '',
21+
playlistId: '',
1922
metadata: defaultMetadata,
2023
updateMetadata: () => defaultMetadata,
2124
allProviders: [],
@@ -24,8 +27,10 @@ export const ProgramManagementContext =
2427

2528
// Responsible for passing metadata to the info panel and all provider info to form
2629
export const ProgramManagementProvider = ({
30+
channelId,
31+
playlistId,
2732
children,
28-
}: PropsWithChildren<ProgramManagementContextMetadata>): JSX.Element => {
33+
}: PropsWithChildren<ProgramManagementProviderProps>): JSX.Element => {
2934
const allProviders = useRef<FastProviderData[]>(
3035
getProviders('fast-provider') ?? [],
3136
);
@@ -47,6 +52,8 @@ export const ProgramManagementProvider = ({
4752
return (
4853
<ProgramManagementContext.Provider
4954
value={{
55+
channelId,
56+
playlistId,
5057
metadata,
5158
updateMetadata,
5259
allProviders: allProviders.current,

0 commit comments

Comments
 (0)