make elements a local variable in LPDs
This commit is contained in:
parent
3758425463
commit
a548ea3571
@ -75,23 +75,23 @@ const Prototype = () => {
|
|||||||
|
|
||||||
dispatch(addMessage(currentMessage));
|
dispatch(addMessage(currentMessage));
|
||||||
//console.log('hjere!', messages)
|
//console.log('hjere!', messages)
|
||||||
reactToMessage({dispatch, currentMessage, stressLevel});
|
reactToMessage({ dispatch, currentMessage, stressLevel });
|
||||||
}, [messages]);
|
}, [messages]);
|
||||||
|
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
if(stressLevel != 0){ //don't run at start
|
// if(stressLevel != 0){ //don't run at start
|
||||||
console.log('stress level', stressLevel)
|
// console.log('stress level', stressLevel)
|
||||||
let allWidgetsInNewStressLPD: Widget[] = selector({stressLevel: stressLevel})
|
// let allWidgetsInNewStressLPD: Widget[] = selector({stressLevel: stressLevel})
|
||||||
console.log('allwiidgets',allWidgetsInNewStressLPD)
|
// console.log('allwiidgets',allWidgetsInNewStressLPD)
|
||||||
let allWidgetsInNewStressLPDIds: string[] = allWidgetsInNewStressLPD.map(a => a.id); //get all widget ids from new stress level LPD and initial LPD
|
// let allWidgetsInNewStressLPDIds: string[] = allWidgetsInNewStressLPD.map(a => a.id); //get all widget ids from new stress level LPD and initial LPD
|
||||||
|
|
||||||
stressChangeHandler({dispatch:dispatch, allWidgetIds:Object.keys(widgets), allMessages: messages, allWidgetsInNewStressLPDIds: allWidgetsInNewStressLPDIds, stressLevel:stressLevel})
|
// stressChangeHandler({dispatch:dispatch, allWidgetIds:Object.keys(widgets), allMessages: messages, allWidgetsInNewStressLPDIds: allWidgetsInNewStressLPDIds, stressLevel:stressLevel})
|
||||||
}
|
// }
|
||||||
}, [currentStressLevel]);
|
// }, [currentStressLevel]);
|
||||||
|
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
dispatch(setStressLevel(Math.floor(stressLevel * 3)));
|
// dispatch(setStressLevel(Math.floor(stressLevel * 3)));
|
||||||
}, [stressLevel]);
|
// }, [stressLevel]);
|
||||||
|
|
||||||
return <Home />;
|
return <Home />;
|
||||||
};
|
};
|
||||||
|
@ -6,7 +6,7 @@ import type {
|
|||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
import lpdHelper from 'src/utils/lpdHelper';
|
import lpdHelper from 'src/utils/lpdHelper';
|
||||||
import DANGER_ICON from 'src/assets/icons/danger.svg';
|
import DANGER_ICON from 'src/assets/icons/danger.svg';
|
||||||
import { elements } from './lowLPD';
|
import type { Element } from 'src/types/element';
|
||||||
import type { Widget } from 'src/types/widget';
|
import type { Widget } from 'src/types/widget';
|
||||||
import type { WidgetCluster } from 'src/types/support-types';
|
import type { WidgetCluster } from 'src/types/support-types';
|
||||||
|
|
||||||
@ -14,9 +14,17 @@ import type { WidgetCluster } from 'src/types/support-types';
|
|||||||
const requestApprovalToAttackMessageHigh = (
|
const requestApprovalToAttackMessageHigh = (
|
||||||
message: RequestApprovalToAttack,
|
message: RequestApprovalToAttack,
|
||||||
) => {
|
) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateRequestApprovalElement(
|
lpdHelper.generateRequestApprovalElement(
|
||||||
lpdHelper.generateBaseElement(uuid(), 'visual', 30, 30, message.priority, 'list'),
|
lpdHelper.generateBaseElement(
|
||||||
|
uuid(),
|
||||||
|
'visual',
|
||||||
|
30,
|
||||||
|
30,
|
||||||
|
message.priority,
|
||||||
|
'list',
|
||||||
|
),
|
||||||
message,
|
message,
|
||||||
lpdHelper.generateIconElement(
|
lpdHelper.generateIconElement(
|
||||||
lpdHelper.generateBaseElement(uuid(), 'visual', 80, 80),
|
lpdHelper.generateBaseElement(uuid(), 'visual', 80, 80),
|
||||||
@ -34,32 +42,30 @@ const requestApprovalToAttackMessageHigh = (
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
100,
|
||||||
'tinder',
|
100,
|
||||||
100,
|
300,
|
||||||
100,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
false,
|
||||||
false,
|
1,
|
||||||
false,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaFuelLowMessageHigh = (message: Message) => {
|
const acaFuelLowMessageHigh = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTableElement(
|
lpdHelper.generateTableElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -80,34 +86,32 @@ const acaFuelLowMessageHigh = (message: Message) => {
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
500,
|
||||||
'tinder',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
false,
|
||||||
false,
|
1,
|
||||||
false,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const missileToOwnshipDetectedMessageHigh = (
|
const missileToOwnshipDetectedMessageHigh = (
|
||||||
message: MissileToOwnshipDetected,
|
message: MissileToOwnshipDetected,
|
||||||
) => {
|
) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateMissileIncomingElement(
|
lpdHelper.generateMissileIncomingElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -127,32 +131,30 @@ const missileToOwnshipDetectedMessageHigh = (
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
100,
|
||||||
'tinder',
|
100,
|
||||||
100,
|
300,
|
||||||
100,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaDefectMessageHigh = (message: Message) => {
|
const acaDefectMessageHigh = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTableElement(
|
lpdHelper.generateTableElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -173,32 +175,30 @@ const acaDefectMessageHigh = (message: Message) => {
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'vehicle',
|
||||||
'list',
|
500,
|
||||||
'vehicle',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaHeadingToBaseMessageHigh = (message: Message) => {
|
const acaHeadingToBaseMessageHigh = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTextElement(
|
lpdHelper.generateTextElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -214,36 +214,31 @@ const acaHeadingToBaseMessageHigh = (message: Message) => {
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
500,
|
||||||
'tinder',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
|
||||||
[...elements],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
),
|
||||||
),
|
]),
|
||||||
]
|
],
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const generateCluster = (
|
const generateCluster = (widgets: Widget[]): WidgetCluster => ({
|
||||||
widgets: Widget[],
|
|
||||||
): WidgetCluster => ({
|
|
||||||
widgets: widgets,
|
widgets: widgets,
|
||||||
})
|
});
|
||||||
|
|
||||||
// Map each message type to its corresponding LPD function
|
// Map each message type to its corresponding LPD function
|
||||||
const highLPDMessageFunctions: any = {
|
const highLPDMessageFunctions: any = {
|
||||||
@ -255,31 +250,38 @@ const highLPDMessageFunctions: any = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const highLPD = (message: Message) => {
|
const highLPD = (message: Message) => {
|
||||||
if(message.priority != -1) //if the message is a real message, return the clusters
|
if (message.priority != -1)
|
||||||
|
//if the message is a real message, return the clusters
|
||||||
return highLPDMessageFunctions[message.kind](message);
|
return highLPDMessageFunctions[message.kind](message);
|
||||||
|
|
||||||
//if we get this far, we can return all widgets in this LPD
|
//if we get this far, we can return all widgets in this LPD
|
||||||
const tempMessage = <RequestApprovalToAttack>({ //make a dummy widget to put into LPD function
|
const tempMessage = <RequestApprovalToAttack>{
|
||||||
|
//make a dummy widget to put into LPD function
|
||||||
priority: 2,
|
priority: 2,
|
||||||
});
|
};
|
||||||
|
|
||||||
|
|
||||||
const messageKinds = [ //all message kinds, so we can get all widgets
|
const messageKinds = [
|
||||||
|
//all message kinds, so we can get all widgets
|
||||||
'RequestApprovalToAttack',
|
'RequestApprovalToAttack',
|
||||||
'AcaFuelLow',
|
'AcaFuelLow',
|
||||||
'AcaDefect',
|
'AcaDefect',
|
||||||
'AcaHeadingToBase',
|
'AcaHeadingToBase',
|
||||||
'MissileToOwnshipDetected'
|
'MissileToOwnshipDetected',
|
||||||
];
|
];
|
||||||
|
|
||||||
//get all widgets as list of widgets instead of list of clusters
|
//get all widgets as list of widgets instead of list of clusters
|
||||||
let allPossibleWidgets: any = [];
|
let allPossibleWidgets: any = [];
|
||||||
messageKinds.forEach((kind) => { //for each message kind
|
messageKinds.forEach((kind) => {
|
||||||
highLPDMessageFunctions[kind](tempMessage).possibleClusters.forEach((cluster: WidgetCluster) => { //for each cluster in kind
|
//for each message kind
|
||||||
cluster.widgets.forEach((widget: Widget) => { //for eahc widget in widget cluster
|
highLPDMessageFunctions[kind](tempMessage).possibleClusters.forEach(
|
||||||
allPossibleWidgets.push(widget); //add the widget
|
(cluster: WidgetCluster) => {
|
||||||
});
|
//for each cluster in kind
|
||||||
});
|
cluster.widgets.forEach((widget: Widget) => {
|
||||||
|
//for eahc widget in widget cluster
|
||||||
|
allPossibleWidgets.push(widget); //add the widget
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
});
|
});
|
||||||
return allPossibleWidgets;
|
return allPossibleWidgets;
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
import type { Message, MissileToOwnshipDetected, RequestApprovalToAttack } from 'src/types/schema-types';
|
import type {
|
||||||
|
Message,
|
||||||
|
MissileToOwnshipDetected,
|
||||||
|
RequestApprovalToAttack,
|
||||||
|
} from 'src/types/schema-types';
|
||||||
import lpdHelper from 'src/utils/lpdHelper';
|
import lpdHelper from 'src/utils/lpdHelper';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
import type { Element } from 'src/types/element';
|
import type { Element } from 'src/types/element';
|
||||||
@ -6,10 +10,11 @@ import DANGER_ICON from 'src/assets/icons/danger.svg';
|
|||||||
import type { Widget } from 'src/types/widget';
|
import type { Widget } from 'src/types/widget';
|
||||||
import type { WidgetCluster } from 'src/types/support-types';
|
import type { WidgetCluster } from 'src/types/support-types';
|
||||||
|
|
||||||
export const elements: Element[] = [];
|
|
||||||
|
|
||||||
// Functions to create widgets, elements, and sections for each message type
|
// Functions to create widgets, elements, and sections for each message type
|
||||||
const requestApprovalToAttackMessageLow = (message: RequestApprovalToAttack) => {
|
const requestApprovalToAttackMessageLow = (
|
||||||
|
message: RequestApprovalToAttack,
|
||||||
|
) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateRequestApprovalElement(
|
lpdHelper.generateRequestApprovalElement(
|
||||||
lpdHelper.generateBaseElement(uuid(), 'visual', 30, 30, message.priority),
|
lpdHelper.generateBaseElement(uuid(), 'visual', 30, 30, message.priority),
|
||||||
@ -30,35 +35,39 @@ const requestApprovalToAttackMessageLow = (message: RequestApprovalToAttack) =>
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
100,
|
||||||
'tinder',
|
100,
|
||||||
100,
|
300,
|
||||||
100,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
false,
|
||||||
false,
|
1,
|
||||||
false,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaFuelLowMessageLow = (message: Message) => {
|
const acaFuelLowMessageLow = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTableElement(
|
lpdHelper.generateTableElement(
|
||||||
lpdHelper.generateBaseElement(uuid(), 'visual', 50, 200, message.priority),
|
lpdHelper.generateBaseElement(
|
||||||
|
uuid(),
|
||||||
|
'visual',
|
||||||
|
50,
|
||||||
|
200,
|
||||||
|
message.priority,
|
||||||
|
),
|
||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
[
|
[
|
||||||
@ -69,32 +78,32 @@ const acaFuelLowMessageLow = (message: Message) => {
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
500,
|
||||||
'tinder',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
false,
|
||||||
false,
|
1,
|
||||||
false,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const missileToOwnshipDetectedMessageLow = (message: MissileToOwnshipDetected) => {
|
const missileToOwnshipDetectedMessageLow = (
|
||||||
|
message: MissileToOwnshipDetected,
|
||||||
|
) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateMissileIncomingElement(
|
lpdHelper.generateMissileIncomingElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -113,35 +122,39 @@ const missileToOwnshipDetectedMessageLow = (message: MissileToOwnshipDetected) =
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
100,
|
||||||
'tinder',
|
100,
|
||||||
100,
|
300,
|
||||||
100,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaDefectMessageLow = (message: Message) => {
|
const acaDefectMessageLow = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTableElement(
|
lpdHelper.generateTableElement(
|
||||||
lpdHelper.generateBaseElement(uuid(), 'visual', 50, 200, message.priority),
|
lpdHelper.generateBaseElement(
|
||||||
|
uuid(),
|
||||||
|
'visual',
|
||||||
|
50,
|
||||||
|
200,
|
||||||
|
message.priority,
|
||||||
|
),
|
||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
[
|
[
|
||||||
@ -152,70 +165,69 @@ const acaDefectMessageLow = (message: Message) => {
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
500,
|
||||||
'tinder',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaHeadingToBaseMessageLow = (message: Message) => {
|
const acaHeadingToBaseMessageLow = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTextElement(
|
lpdHelper.generateTextElement(
|
||||||
lpdHelper.generateBaseElement(uuid(), 'visual', 30, 200, message.priority),
|
lpdHelper.generateBaseElement(
|
||||||
|
uuid(),
|
||||||
|
'visual',
|
||||||
|
30,
|
||||||
|
200,
|
||||||
|
message.priority,
|
||||||
|
),
|
||||||
'Aircraft heading to base',
|
'Aircraft heading to base',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
500,
|
||||||
'tinder',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
)
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const generateCluster = (
|
const generateCluster = (widgets: Widget[]): WidgetCluster => ({
|
||||||
widgets: Widget[],
|
|
||||||
): WidgetCluster => ({
|
|
||||||
widgets: widgets,
|
widgets: widgets,
|
||||||
})
|
});
|
||||||
|
|
||||||
// Map each message type to its corresponding LPD function
|
// Map each message type to its corresponding LPD function
|
||||||
const lowLPDMessageFunctions: any = {
|
const lowLPDMessageFunctions: any = {
|
||||||
@ -227,33 +239,39 @@ const lowLPDMessageFunctions: any = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const lowLPD = (message: Message) => {
|
const lowLPD = (message: Message) => {
|
||||||
if(message.priority != -1) //if the message is a real message, return the clusters
|
if (message.priority != -1)
|
||||||
|
//if the message is a real message, return the clusters
|
||||||
return lowLPDMessageFunctions[message.kind](message);
|
return lowLPDMessageFunctions[message.kind](message);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//if we get this far, we can return all widgets in this LPD
|
//if we get this far, we can return all widgets in this LPD
|
||||||
const tempMessage = <RequestApprovalToAttack>({ //make a dummy widget to put into LPD function
|
const tempMessage = <RequestApprovalToAttack>{
|
||||||
|
//make a dummy widget to put into LPD function
|
||||||
priority: 2,
|
priority: 2,
|
||||||
});
|
};
|
||||||
const messageKinds = [ //all message kinds, so we can get all widgets
|
const messageKinds = [
|
||||||
|
//all message kinds, so we can get all widgets
|
||||||
'RequestApprovalToAttack',
|
'RequestApprovalToAttack',
|
||||||
'AcaFuelLow',
|
'AcaFuelLow',
|
||||||
'AcaDefect',
|
'AcaDefect',
|
||||||
'AcaHeadingToBase',
|
'AcaHeadingToBase',
|
||||||
'MissileToOwnshipDetected'
|
'MissileToOwnshipDetected',
|
||||||
];
|
];
|
||||||
|
|
||||||
//get all widgets as list of widgets instead of list of clusters
|
//get all widgets as list of widgets instead of list of clusters
|
||||||
let allPossibleWidgets: any = [];
|
let allPossibleWidgets: any = [];
|
||||||
messageKinds.forEach((kind) => { //for each message kind
|
messageKinds.forEach((kind) => {
|
||||||
lowLPDMessageFunctions[kind](tempMessage).possibleClusters.forEach((cluster: WidgetCluster) => { //for each cluster in kind
|
//for each message kind
|
||||||
cluster.widgets.forEach((widget: Widget) => { //for eahc widget in widget cluster
|
lowLPDMessageFunctions[kind](tempMessage).possibleClusters.forEach(
|
||||||
allPossibleWidgets.push(widget); //add the widget
|
(cluster: WidgetCluster) => {
|
||||||
});
|
//for each cluster in kind
|
||||||
});
|
cluster.widgets.forEach((widget: Widget) => {
|
||||||
|
//for eahc widget in widget cluster
|
||||||
|
allPossibleWidgets.push(widget); //add the widget
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
});
|
});
|
||||||
return allPossibleWidgets;
|
return allPossibleWidgets;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default lowLPD;
|
export default lowLPD;
|
||||||
|
@ -6,14 +6,15 @@ import type {
|
|||||||
import lpdHelper from 'src/utils/lpdHelper';
|
import lpdHelper from 'src/utils/lpdHelper';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
import DANGER_ICON from 'src/assets/icons/danger.svg';
|
import DANGER_ICON from 'src/assets/icons/danger.svg';
|
||||||
import { elements } from './lowLPD';
|
|
||||||
import { type Widget } from 'src/types/widget';
|
import { type Widget } from 'src/types/widget';
|
||||||
import type { WidgetCluster } from 'src/types/support-types';
|
import type { WidgetCluster } from 'src/types/support-types';
|
||||||
|
import type { Element } from 'src/types/element';
|
||||||
|
|
||||||
// Functions to create widgets, elements, and sections for each message type
|
// Functions to create widgets, elements, and sections for each message type
|
||||||
const requestApprovalToAttackMessageMedium = (
|
const requestApprovalToAttackMessageMedium = (
|
||||||
message: RequestApprovalToAttack,
|
message: RequestApprovalToAttack,
|
||||||
) => {
|
) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateRequestApprovalElement(
|
lpdHelper.generateRequestApprovalElement(
|
||||||
lpdHelper.generateBaseElement(uuid(), 'visual', 30, 30, message.priority),
|
lpdHelper.generateBaseElement(uuid(), 'visual', 30, 30, message.priority),
|
||||||
@ -34,32 +35,30 @@ const requestApprovalToAttackMessageMedium = (
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
100,
|
||||||
'tinder',
|
100,
|
||||||
100,
|
300,
|
||||||
100,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
false,
|
||||||
false,
|
1,
|
||||||
false,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaFuelLowMessageMedium = (message: Message) => {
|
const acaFuelLowMessageMedium = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTableElement(
|
lpdHelper.generateTableElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -79,34 +78,32 @@ const acaFuelLowMessageMedium = (message: Message) => {
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
500,
|
||||||
'tinder',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
false,
|
||||||
false,
|
1,
|
||||||
false,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const missileToOwnshipDetectedMessageMedium = (
|
const missileToOwnshipDetectedMessageMedium = (
|
||||||
message: MissileToOwnshipDetected,
|
message: MissileToOwnshipDetected,
|
||||||
) => {
|
) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateMissileIncomingElement(
|
lpdHelper.generateMissileIncomingElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -125,32 +122,30 @@ const missileToOwnshipDetectedMessageMedium = (
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
100,
|
||||||
'tinder',
|
100,
|
||||||
100,
|
300,
|
||||||
100,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaDefectMessageMedium = (message: Message) => {
|
const acaDefectMessageMedium = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTableElement(
|
lpdHelper.generateTableElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -170,32 +165,30 @@ const acaDefectMessageMedium = (message: Message) => {
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
500,
|
||||||
'tinder',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const acaHeadingToBaseMessageMedium = (message: Message) => {
|
const acaHeadingToBaseMessageMedium = (message: Message) => {
|
||||||
|
const elements: Element[] = [];
|
||||||
elements.push(
|
elements.push(
|
||||||
lpdHelper.generateTextElement(
|
lpdHelper.generateTextElement(
|
||||||
lpdHelper.generateBaseElement(
|
lpdHelper.generateBaseElement(
|
||||||
@ -210,37 +203,31 @@ const acaHeadingToBaseMessageMedium = (message: Message) => {
|
|||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
sections: [],
|
sections: [],
|
||||||
possibleClusters:
|
possibleClusters: [
|
||||||
[
|
generateCluster([
|
||||||
generateCluster(
|
lpdHelper.generateListWidget(
|
||||||
[
|
lpdHelper.generateBaseWidget(
|
||||||
lpdHelper.generateListWidget(
|
'list',
|
||||||
lpdHelper.generateBaseWidget(
|
'tinder',
|
||||||
'list',
|
500,
|
||||||
'tinder',
|
500,
|
||||||
500,
|
300,
|
||||||
500,
|
800,
|
||||||
300,
|
'/pearce-screen',
|
||||||
800,
|
false,
|
||||||
'/pearce-screen',
|
true,
|
||||||
false,
|
1,
|
||||||
true,
|
[...elements],
|
||||||
1,
|
),
|
||||||
[...elements],
|
|
||||||
),
|
),
|
||||||
),
|
]),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const generateCluster = (widgets: Widget[]): WidgetCluster => ({
|
||||||
const generateCluster = (
|
|
||||||
widgets: Widget[],
|
|
||||||
): WidgetCluster => ({
|
|
||||||
widgets: widgets,
|
widgets: widgets,
|
||||||
})
|
});
|
||||||
|
|
||||||
// Map each message type to its corresponding LPD function
|
// Map each message type to its corresponding LPD function
|
||||||
const mediumLPDMessageFunctions: any = {
|
const mediumLPDMessageFunctions: any = {
|
||||||
@ -252,14 +239,17 @@ const mediumLPDMessageFunctions: any = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const mediumLPD = (message: Message) => {
|
const mediumLPD = (message: Message) => {
|
||||||
if (message.priority != -1) //if the message is a real message, return the clusters
|
if (message.priority != -1)
|
||||||
|
//if the message is a real message, return the clusters
|
||||||
return mediumLPDMessageFunctions[message.kind](message);
|
return mediumLPDMessageFunctions[message.kind](message);
|
||||||
|
|
||||||
//if we get this far, we can return all widgets in this LPD
|
//if we get this far, we can return all widgets in this LPD
|
||||||
const tempMessage = <RequestApprovalToAttack>{ //make a dummy widget to put into LPD function
|
const tempMessage = <RequestApprovalToAttack>{
|
||||||
|
//make a dummy widget to put into LPD function
|
||||||
priority: 2,
|
priority: 2,
|
||||||
};
|
};
|
||||||
const messageKinds = [ //all message kinds, so we can get all widgets
|
const messageKinds = [
|
||||||
|
//all message kinds, so we can get all widgets
|
||||||
'RequestApprovalToAttack',
|
'RequestApprovalToAttack',
|
||||||
'AcaFuelLow',
|
'AcaFuelLow',
|
||||||
'AcaDefect',
|
'AcaDefect',
|
||||||
@ -269,12 +259,17 @@ const mediumLPD = (message: Message) => {
|
|||||||
|
|
||||||
//get all widgets as list of widgets instead of list of clusters
|
//get all widgets as list of widgets instead of list of clusters
|
||||||
let allPossibleWidgets: any = [];
|
let allPossibleWidgets: any = [];
|
||||||
messageKinds.forEach((kind) => { //for each message kind
|
messageKinds.forEach((kind) => {
|
||||||
mediumLPDMessageFunctions[kind](tempMessage).possibleClusters.forEach((cluster: WidgetCluster) => { //for each cluster in kind
|
//for each message kind
|
||||||
cluster.widgets.forEach((widget: Widget) => {//for eahc widget in widget cluster
|
mediumLPDMessageFunctions[kind](tempMessage).possibleClusters.forEach(
|
||||||
allPossibleWidgets.push(widget); //add the widget
|
(cluster: WidgetCluster) => {
|
||||||
});
|
//for each cluster in kind
|
||||||
});
|
cluster.widgets.forEach((widget: Widget) => {
|
||||||
|
//for eahc widget in widget cluster
|
||||||
|
allPossibleWidgets.push(widget); //add the widget
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
});
|
});
|
||||||
return allPossibleWidgets;
|
return allPossibleWidgets;
|
||||||
};
|
};
|
||||||
|
@ -12,10 +12,10 @@ import restrainer from './restrainer';
|
|||||||
import type { Widget } from 'src/types/widget';
|
import type { Widget } from 'src/types/widget';
|
||||||
|
|
||||||
type ReactToMessageProps = {
|
type ReactToMessageProps = {
|
||||||
// define expected input here and it's type (number, string, etc.)
|
// define expected input here and it's type (number, string, etc.)
|
||||||
dispatch: AppDispatch;
|
dispatch: AppDispatch;
|
||||||
currentMessage: Message;
|
currentMessage: Message;
|
||||||
stressLevel: number;
|
stressLevel: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -23,24 +23,24 @@ type ReactToMessageProps = {
|
|||||||
* @param ???
|
* @param ???
|
||||||
* @returns ???
|
* @returns ???
|
||||||
*/
|
*/
|
||||||
const reactToMessage = ({
|
const reactToMessage = ({
|
||||||
dispatch,
|
dispatch,
|
||||||
currentMessage,
|
currentMessage,
|
||||||
stressLevel,
|
stressLevel,
|
||||||
}: ReactToMessageProps) => {
|
}: ReactToMessageProps) => {
|
||||||
|
|
||||||
const sections = store.getState().minimap.sections;
|
const sections = store.getState().minimap.sections;
|
||||||
const widgets = store.getState().minimap.widgets;
|
const widgets = store.getState().minimap.widgets;
|
||||||
|
|
||||||
const { possibleClusters:possibleWidgetClusters } = selector({
|
const { possibleClusters: possibleWidgetClusters } = selector({
|
||||||
message: currentMessage,
|
message: currentMessage,
|
||||||
stressLevel,
|
stressLevel,
|
||||||
});
|
});
|
||||||
|
|
||||||
let resolved = false;
|
let resolved = false;
|
||||||
while(!resolved){ //repeat ntil choosing a cluster has resolved
|
while (!resolved) {
|
||||||
|
//repeat ntil choosing a cluster has resolved
|
||||||
//console.log('running through assimilator...');
|
//console.log('running through assimilator...');
|
||||||
const { widgetClusterToDeploy, index} = assimilator({
|
const { widgetClusterToDeploy, index } = assimilator({
|
||||||
// find if there is room for us to put the widget down (returns null if there is not room)
|
// find if there is room for us to put the widget down (returns null if there is not room)
|
||||||
possibleWidgetClusters: possibleWidgetClusters,
|
possibleWidgetClusters: possibleWidgetClusters,
|
||||||
sections,
|
sections,
|
||||||
@ -48,8 +48,7 @@ const reactToMessage = ({
|
|||||||
message: currentMessage,
|
message: currentMessage,
|
||||||
});
|
});
|
||||||
|
|
||||||
if(index == -1)
|
if (index == -1) resolved = true;
|
||||||
resolved = true;
|
|
||||||
|
|
||||||
//check restrainer with all new widgets
|
//check restrainer with all new widgets
|
||||||
//if cluster is bad then go back to assim
|
//if cluster is bad then go back to assim
|
||||||
@ -58,19 +57,23 @@ const reactToMessage = ({
|
|||||||
//get all widgets that are new widgets in candidate cluster
|
//get all widgets that are new widgets in candidate cluster
|
||||||
const newWidgets: Widget[] = [];
|
const newWidgets: Widget[] = [];
|
||||||
widgetClusterToDeploy.widgets.forEach((widget, widgetIndex) => {
|
widgetClusterToDeploy.widgets.forEach((widget, widgetIndex) => {
|
||||||
if(widgetClusterToDeploy.actions![widgetIndex] === 'newWidget'){ //if this widget is a new widget, add it to list
|
if (widgetClusterToDeploy.actions![widgetIndex] === 'newWidget') {
|
||||||
newWidgets.push(widget)
|
//if this widget is a new widget, add it to list
|
||||||
|
newWidgets.push(widget);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if(index != -1 && restrainer({widgetsToDeploy: newWidgets})){ //if the assim chose a cluster and the restrainer is okoay with the new widgets
|
if (index != -1 && restrainer({ widgetsToDeploy: newWidgets })) {
|
||||||
|
//if the assim chose a cluster and the restrainer is okoay with the new widgets
|
||||||
resolved = true;
|
resolved = true;
|
||||||
|
|
||||||
widgetClusterToDeploy.widgets.forEach((widget, widgetIndex) => {
|
widgetClusterToDeploy.widgets.forEach((widget, widgetIndex) => {
|
||||||
const widgetToDeploy = widget;
|
const widgetToDeploy = widget;
|
||||||
const sectionID = widgetClusterToDeploy.sectionIds![widgetIndex]
|
const sectionID = widgetClusterToDeploy.sectionIds![widgetIndex];
|
||||||
const action = widgetClusterToDeploy.actions![widgetIndex]
|
const action = widgetClusterToDeploy.actions![widgetIndex];
|
||||||
|
|
||||||
|
console.log('widgetToDeploy:', widgetToDeploy);
|
||||||
|
|
||||||
if (action !== 'newWidget') {
|
if (action !== 'newWidget') {
|
||||||
//we should do something other than
|
//we should do something other than
|
||||||
switch (action) {
|
switch (action) {
|
||||||
@ -84,7 +87,7 @@ const reactToMessage = ({
|
|||||||
dispatch(
|
dispatch(
|
||||||
addElementToWidget(
|
addElementToWidget(
|
||||||
widgetToDeploy.id,
|
widgetToDeploy.id,
|
||||||
widgetToDeploy.elements[0], //<- This should not be able to happen, why are we choosing one element if multiple need to be placed -Tom
|
widgetToDeploy.elements, //<- This should not be able to happen, why are we choosing one element if multiple need to be placed -Tom
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -93,16 +96,15 @@ const reactToMessage = ({
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (widgetToDeploy) {
|
} else if (widgetToDeploy) {
|
||||||
|
// restrainer deems that the widget CAN be deployed
|
||||||
|
|
||||||
|
// dispatch action to add new widget
|
||||||
// restrainer deems that the widget CAN be deployed
|
dispatch(addWidget(widgetToDeploy));
|
||||||
|
dispatch(addWidgetToSection(sectionID));
|
||||||
// dispatch action to add new widget
|
|
||||||
dispatch(addWidget(widgetToDeploy));
|
|
||||||
dispatch(addWidgetToSection(sectionID));
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else { //the restrainer said no, so delete the chosen cluster and try again
|
} else {
|
||||||
|
//the restrainer said no, so delete the chosen cluster and try again
|
||||||
possibleWidgetClusters.splice(index, 1);
|
possibleWidgetClusters.splice(index, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,19 +23,23 @@ const selector = ({ message, stressLevel }: SelectorProps = {}) => {
|
|||||||
if (!message && !stressLevel) {
|
if (!message && !stressLevel) {
|
||||||
// If no message and no stress provided, return the initial LPD
|
// If no message and no stress provided, return the initial LPD
|
||||||
return initialLPD;
|
return initialLPD;
|
||||||
} else if(stressLevel && !message) { //return all widgets in current stressLevel
|
} else if (stressLevel && !message) {
|
||||||
|
//return all widgets in current stressLevel
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
let allWidgets: Widget[] = [];
|
let allWidgets: Widget[] = [];
|
||||||
//get all of the widgets in the inital LPD
|
//get all of the widgets in the inital LPD
|
||||||
for (const [key, widget] of Object.entries(initialLPD.widgets)) {
|
for (const [key, widget] of Object.entries(initialLPD.widgets)) {
|
||||||
allWidgets.push(widget);
|
allWidgets.push(widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
stressLevel = Math.floor(stressLevel! * 3); //get stress level as int
|
stressLevel = Math.floor(stressLevel! * 3); //get stress level as int
|
||||||
const tempMessage = <Message>({ //dummy message to put into LPD function
|
const tempMessage = <Message>{
|
||||||
|
//dummy message to put into LPD function
|
||||||
priority: -1,
|
priority: -1,
|
||||||
})
|
};
|
||||||
|
|
||||||
//return the intial LPD widgets with the widgets returned from the LPD function(all widgets in this stress level)
|
//return the intial LPD widgets with the widgets returned from the LPD function(all widgets in this stress level)
|
||||||
return allWidgets.concat(stressLevelLPDFunctions[stressLevel](tempMessage));
|
return allWidgets.concat(stressLevelLPDFunctions[stressLevel](tempMessage));
|
||||||
} else {
|
} else {
|
||||||
|
@ -109,18 +109,29 @@ export const minimapSlice = createSlice({
|
|||||||
},
|
},
|
||||||
|
|
||||||
addElementToWidget: {
|
addElementToWidget: {
|
||||||
prepare(widgetId: string, element: Element) {
|
prepare(widgetId: string, elements: Element[]) {
|
||||||
return { payload: { widgetId, element } };
|
return { payload: { widgetId, elements } };
|
||||||
},
|
},
|
||||||
|
|
||||||
reducer(
|
reducer(
|
||||||
state,
|
state,
|
||||||
action: PayloadAction<{ widgetId: string; element: Element }>,
|
action: PayloadAction<{ widgetId: string; elements: Element[] }>,
|
||||||
) {
|
) {
|
||||||
console.log('adding elements to widget', action.payload.element);
|
console.log('adding elements to widget', action.payload.elements);
|
||||||
state.widgets[action.payload.widgetId].elements.push(
|
const { widgetId, elements } = action.payload;
|
||||||
action.payload.element,
|
const widget = state.widgets[widgetId];
|
||||||
);
|
|
||||||
|
if (!widget) {
|
||||||
|
console.error(
|
||||||
|
`Widget with id ${widgetId} not found (addElementToWidget)`,
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
state.widgets[widgetId] = {
|
||||||
|
...widget,
|
||||||
|
elements: [...widget.elements, ...elements],
|
||||||
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user