Skip to content

Commit 9be51e4

Browse files
committed
chore: jsx component
1 parent 5bb60d0 commit 9be51e4

File tree

2 files changed

+39
-29
lines changed

2 files changed

+39
-29
lines changed

packages/webui/src/client/ui/SegmentTimeline/SegmentContextMenu.tsx

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { IContextMenuContext } from '../RundownView'
1414
import { PartUi, SegmentUi } from './SegmentTimelineContainer'
1515
import { SegmentId } from '@sofie-automation/corelib/dist/dataModel/Ids'
1616
import { SegmentOrphanedReason } from '@sofie-automation/corelib/dist/dataModel/Segment'
17-
import { RenderUserEditOperations } from '../UserEditOperations/RenderUserEditOperations'
17+
import { UserEditOperationMenuItems } from '../UserEditOperations/RenderUserEditOperations'
1818
import * as RundownResolver from '../../lib/RundownResolver'
1919

2020
interface IProps {
@@ -84,18 +84,19 @@ export const SegmentContextMenu = withTranslation()(
8484
<span>{t('Clear queued segment')}</span>
8585
</MenuItem>
8686
)}
87-
{segment &&
88-
RenderUserEditOperations(
89-
isSegmentEditAble,
90-
segment.rundownId,
91-
segment.name,
92-
segment.userEditOperations,
93-
{
94-
segmentExternalId: segment?.externalId,
87+
{segment && (
88+
<UserEditOperationMenuItems
89+
rundownId={segment.rundownId}
90+
targetName={segment.name}
91+
operationTarget={{
92+
segmentExternalId: segment.externalId,
9593
partExternalId: undefined,
9694
pieceExternalId: undefined,
97-
}
98-
)}
95+
}}
96+
userEditOperations={segment.userEditOperations}
97+
isFormEditable={isSegmentEditAble}
98+
/>
99+
)}
99100
<hr />
100101
</>
101102
)}
@@ -166,17 +167,17 @@ export const SegmentContextMenu = withTranslation()(
166167
</>
167168
)}
168169

169-
{RenderUserEditOperations(
170-
isPartEditAble,
171-
part.instance.rundownId,
172-
part.instance.part.title,
173-
part.instance.part.userEditOperations,
174-
{
170+
<UserEditOperationMenuItems
171+
rundownId={part.instance.rundownId}
172+
targetName={part.instance.part.title}
173+
operationTarget={{
175174
segmentExternalId: segment?.externalId,
176175
partExternalId: part.instance.part.externalId,
177176
pieceExternalId: undefined,
178-
}
179-
)}
177+
}}
178+
userEditOperations={part.instance.part.userEditOperations}
179+
isFormEditable={isPartEditAble}
180+
/>
180181
</>
181182
)}
182183
</ContextMenu>

packages/webui/src/client/ui/UserEditOperations/RenderUserEditOperations.tsx

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,29 @@ import { CoreUserEditingDefinition } from '@sofie-automation/corelib/dist/dataMo
55
import { JSONBlobParse, UserEditingType, UserOperationTarget } from '@sofie-automation/blueprints-integration'
66
import { translateMessage } from '@sofie-automation/corelib/dist/TranslatableMessage'
77
import { MenuItem } from '@jstarpl/react-contextmenu'
8-
import { i18nTranslator } from '../i18n'
98
import { doModalDialog } from '../../lib/ModalDialog'
109
import { SchemaFormInPlace } from '../../lib/forms/SchemaFormInPlace'
1110
import { doUserAction, UserAction } from '../../lib/clientUserAction'
1211
import { MeteorCall } from '../../lib/meteorApi'
12+
import { useTranslation } from 'react-i18next'
1313

14-
export function RenderUserEditOperations(
15-
isFormEditable: boolean,
16-
rundownId: RundownId,
17-
targetName: string,
18-
userEditOperations: CoreUserEditingDefinition[] | undefined,
14+
interface UserEditOperationMenuItemsProps {
15+
rundownId: RundownId
16+
targetName: string
1917
operationTarget: UserOperationTarget
20-
): React.JSX.Element | null {
21-
const t = i18nTranslator
18+
userEditOperations: CoreUserEditingDefinition[] | undefined
19+
isFormEditable: boolean
20+
}
21+
22+
export function UserEditOperationMenuItems({
23+
rundownId,
24+
targetName,
25+
operationTarget,
26+
userEditOperations,
27+
isFormEditable,
28+
}: UserEditOperationMenuItemsProps): React.JSX.Element | null {
29+
const { t } = useTranslation()
30+
2231
if (!userEditOperations || userEditOperations.length === 0) return null
2332
return (
2433
<>
@@ -41,7 +50,7 @@ export function RenderUserEditOperations(
4150
// ToDo: use CSS to Style state instead of asterix
4251
userEditOperation.isActive ? <span className="action-protected">{'• '}</span> : null
4352
}
44-
<span>{translateMessage(userEditOperation.label, i18nTranslator)}</span>
53+
<span>{translateMessage(userEditOperation.label, t)}</span>
4554
</MenuItem>
4655
)
4756
case UserEditingType.FORM:
@@ -77,7 +86,7 @@ export function RenderUserEditOperations(
7786
})
7887
}}
7988
>
80-
<span>{translateMessage(userEditOperation.label, i18nTranslator)}</span>
89+
<span>{translateMessage(userEditOperation.label, t)}</span>
8190
</MenuItem>
8291
)
8392
default:

0 commit comments

Comments
 (0)