mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-18 21:54:09 +00:00
Refactor: require trigger in all events objects (#1636)
* reqire trigger in all events * use structuredClone when cloning an event
This commit is contained in:
committed by
GitHub
parent
02c30c9681
commit
2a5b053d97
@@ -28,6 +28,7 @@ describe('cloneEvent()', () => {
|
|||||||
delay: 0,
|
delay: 0,
|
||||||
dayOffset: 0,
|
dayOffset: 0,
|
||||||
gap: 0,
|
gap: 0,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
lighting: '3',
|
lighting: '3',
|
||||||
} as EntryCustomFields,
|
} as EntryCustomFields,
|
||||||
@@ -36,6 +37,7 @@ describe('cloneEvent()', () => {
|
|||||||
const cloned = cloneEvent(original);
|
const cloned = cloneEvent(original);
|
||||||
expect(cloned).not.toBe(original);
|
expect(cloned).not.toBe(original);
|
||||||
expect(cloned.custom).not.toBe(original.custom);
|
expect(cloned.custom).not.toBe(original.custom);
|
||||||
|
expect(cloned.triggers).not.toBe(original.triggers);
|
||||||
|
|
||||||
expect(cloned).toMatchObject({
|
expect(cloned).toMatchObject({
|
||||||
type: SupportedEntry.Event,
|
type: SupportedEntry.Event,
|
||||||
@@ -59,6 +61,8 @@ describe('cloneEvent()', () => {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: original.timeWarning,
|
timeWarning: original.timeWarning,
|
||||||
timeDanger: original.timeDanger,
|
timeDanger: original.timeDanger,
|
||||||
|
triggers: original.triggers,
|
||||||
|
custom: original.custom,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ export const cloneEvent = (event: OntimeEvent): ClonedEvent => {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: event.timeWarning,
|
timeWarning: event.timeWarning,
|
||||||
timeDanger: event.timeDanger,
|
timeDanger: event.timeDanger,
|
||||||
custom: { ...event.custom },
|
triggers: structuredClone(event.triggers),
|
||||||
|
custom: structuredClone(event.custom),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ import style from './EventEditorTriggers.module.scss';
|
|||||||
|
|
||||||
interface EventEditorTriggersProps {
|
interface EventEditorTriggersProps {
|
||||||
eventId: string;
|
eventId: string;
|
||||||
triggers?: Trigger[];
|
triggers: Trigger[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function EventEditorTriggers(props: EventEditorTriggersProps) {
|
export default function EventEditorTriggers(props: EventEditorTriggersProps) {
|
||||||
const { triggers, eventId } = props;
|
const { triggers, eventId } = props;
|
||||||
const showTriggers = triggers !== undefined && triggers.length > 0;
|
const showTriggers = triggers.length > 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Sekret',
|
Song: 'Sekret',
|
||||||
Artist: 'Ronela Hajati',
|
Artist: 'Ronela Hajati',
|
||||||
@@ -110,6 +111,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Eat Your Salad',
|
Song: 'Eat Your Salad',
|
||||||
Artist: 'Citi Zeni',
|
Artist: 'Citi Zeni',
|
||||||
@@ -139,6 +141,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Sentimentai',
|
Song: 'Sentimentai',
|
||||||
Artist: 'Monika Liu',
|
Artist: 'Monika Liu',
|
||||||
@@ -168,6 +171,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Boys Do Cry',
|
Song: 'Boys Do Cry',
|
||||||
Artist: 'Marius Bear',
|
Artist: 'Marius Bear',
|
||||||
@@ -197,10 +201,11 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Disko',
|
Song: 'Disko',
|
||||||
Artist: 'LPS',
|
Artist: 'LPS',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
/// <----- BLOCK
|
/// <----- BLOCK
|
||||||
'01e85': {
|
'01e85': {
|
||||||
@@ -243,6 +248,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Stefania',
|
Song: 'Stefania',
|
||||||
Artist: 'Kalush Orchestra',
|
Artist: 'Kalush Orchestra',
|
||||||
@@ -272,6 +278,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Intention',
|
Song: 'Intention',
|
||||||
Artist: 'Intelligent Music Project',
|
Artist: 'Intelligent Music Project',
|
||||||
@@ -301,6 +308,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'De Diepte',
|
Song: 'De Diepte',
|
||||||
Artist: 'S10',
|
Artist: 'S10',
|
||||||
@@ -330,6 +338,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Trenuletul',
|
Song: 'Trenuletul',
|
||||||
Artist: 'Zdob si Zdub',
|
Artist: 'Zdob si Zdub',
|
||||||
@@ -359,6 +368,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Saudade Saudade',
|
Song: 'Saudade Saudade',
|
||||||
Artist: 'Maro',
|
Artist: 'Maro',
|
||||||
@@ -405,6 +415,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Guilty Pleasure',
|
Song: 'Guilty Pleasure',
|
||||||
Artist: 'Mia Dimsic',
|
Artist: 'Mia Dimsic',
|
||||||
@@ -434,6 +445,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'The Show',
|
Song: 'The Show',
|
||||||
Artist: 'Reddi',
|
Artist: 'Reddi',
|
||||||
@@ -463,6 +475,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Halo',
|
Song: 'Halo',
|
||||||
Artist: 'LUM!X & Pia Maria',
|
Artist: 'LUM!X & Pia Maria',
|
||||||
@@ -492,6 +505,7 @@ export const demoDb: DatabaseModel = {
|
|||||||
gap: 0,
|
gap: 0,
|
||||||
timeWarning: 500000,
|
timeWarning: 500000,
|
||||||
timeDanger: 100000,
|
timeDanger: 100000,
|
||||||
|
triggers: [],
|
||||||
custom: {
|
custom: {
|
||||||
Song: 'Die Together',
|
Song: 'Die Together',
|
||||||
Artist: 'Amanda Tenfjord',
|
Artist: 'Amanda Tenfjord',
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ export const event: Omit<OntimeEvent, 'id' | 'cue'> = {
|
|||||||
colour: '',
|
colour: '',
|
||||||
timeWarning: 120000,
|
timeWarning: 120000,
|
||||||
timeDanger: 60000,
|
timeDanger: 60000,
|
||||||
|
triggers: [],
|
||||||
custom: {},
|
custom: {},
|
||||||
// !==== RUNTIME METADATA ====! //
|
// !==== RUNTIME METADATA ====! //
|
||||||
parent: null,
|
parent: null,
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ describe('cellRequestFromEvent()', () => {
|
|||||||
id: '1358',
|
id: '1358',
|
||||||
timeWarning: 0,
|
timeWarning: 0,
|
||||||
timeDanger: 0,
|
timeDanger: 0,
|
||||||
|
triggers: [],
|
||||||
custom: {},
|
custom: {},
|
||||||
};
|
};
|
||||||
const metadata = {
|
const metadata = {
|
||||||
@@ -93,6 +94,7 @@ describe('cellRequestFromEvent()', () => {
|
|||||||
id: '1358',
|
id: '1358',
|
||||||
timeWarning: 0,
|
timeWarning: 0,
|
||||||
timeDanger: 0,
|
timeDanger: 0,
|
||||||
|
triggers: [],
|
||||||
custom: {},
|
custom: {},
|
||||||
};
|
};
|
||||||
const metadata = {
|
const metadata = {
|
||||||
@@ -144,6 +146,7 @@ describe('cellRequestFromEvent()', () => {
|
|||||||
id: '1358',
|
id: '1358',
|
||||||
timeWarning: 0,
|
timeWarning: 0,
|
||||||
timeDanger: 0,
|
timeDanger: 0,
|
||||||
|
triggers: [],
|
||||||
custom: {},
|
custom: {},
|
||||||
};
|
};
|
||||||
const metadata = {
|
const metadata = {
|
||||||
@@ -194,6 +197,7 @@ describe('cellRequestFromEvent()', () => {
|
|||||||
id: '1358',
|
id: '1358',
|
||||||
timeWarning: 0,
|
timeWarning: 0,
|
||||||
timeDanger: 0,
|
timeDanger: 0,
|
||||||
|
triggers: [],
|
||||||
custom: {},
|
custom: {},
|
||||||
};
|
};
|
||||||
const metadata = {
|
const metadata = {
|
||||||
@@ -230,6 +234,7 @@ describe('cellRequestFromEvent()', () => {
|
|||||||
id: '1358',
|
id: '1358',
|
||||||
timeWarning: 0,
|
timeWarning: 0,
|
||||||
timeDanger: 0,
|
timeDanger: 0,
|
||||||
|
triggers: [],
|
||||||
custom: {},
|
custom: {},
|
||||||
};
|
};
|
||||||
const metadata = {
|
const metadata = {
|
||||||
@@ -267,6 +272,7 @@ describe('cellRequestFromEvent()', () => {
|
|||||||
id: '1358',
|
id: '1358',
|
||||||
timeWarning: 0,
|
timeWarning: 0,
|
||||||
timeDanger: 0,
|
timeDanger: 0,
|
||||||
|
triggers: [],
|
||||||
custom: {},
|
custom: {},
|
||||||
};
|
};
|
||||||
const metadata = {
|
const metadata = {
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ export type OntimeEvent = OntimeBaseEvent & {
|
|||||||
timeWarning: number;
|
timeWarning: number;
|
||||||
timeDanger: number;
|
timeDanger: number;
|
||||||
custom: EntryCustomFields;
|
custom: EntryCustomFields;
|
||||||
triggers?: Trigger[];
|
triggers: Trigger[];
|
||||||
parent: EntryId | null;
|
parent: EntryId | null;
|
||||||
// !==== RUNTIME METADATA ====! //
|
// !==== RUNTIME METADATA ====! //
|
||||||
revision: number;
|
revision: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user