From c65ec6b2b790de60676016fbcfd74ca0ccc54b02 Mon Sep 17 00:00:00 2001 From: tmaog Date: Tue, 20 May 2025 16:19:04 +0200 Subject: [PATCH] fix: default platform bug --- .../Properties/Nodes/CodingQuestionNodeProperties.tsx | 6 +++--- src/types/polyglotElements/elementMapping.tsx | 9 +++++++++ .../polyglotElements/nodes/AnalyzingPlottingDataNode.ts | 1 + src/types/polyglotElements/nodes/BrainstormingNode.ts | 1 + src/types/polyglotElements/nodes/CalculationNode.ts | 1 + src/types/polyglotElements/nodes/CasesEvaluationNode.ts | 1 + .../polyglotElements/nodes/CloseEndedQuestionNode.ts | 1 + src/types/polyglotElements/nodes/CodingQuestionNode.ts | 3 ++- .../polyglotElements/nodes/CollaborativeModelingNode.ts | 1 + .../polyglotElements/nodes/CreateKeywordsListNode.ts | 1 + src/types/polyglotElements/nodes/FindSolutionNode.ts | 1 + src/types/polyglotElements/nodes/FlowChartNode.ts | 1 + src/types/polyglotElements/nodes/ImageEvaluationNode.ts | 1 + src/types/polyglotElements/nodes/InnovationPitchNode.ts | 1 + src/types/polyglotElements/nodes/LessonTextNode.ts | 1 + .../polyglotElements/nodes/MemoriseKeywordsListNode.ts | 1 + src/types/polyglotElements/nodes/MindMapNode.ts | 1 + .../polyglotElements/nodes/MultipleChoiceQuestionNode.ts | 1 + src/types/polyglotElements/nodes/NewTypeNode.ts | 1 + src/types/polyglotElements/nodes/OpenQuestionNode.ts | 1 + src/types/polyglotElements/nodes/ProblemSolvingNode.ts | 1 + .../polyglotElements/nodes/PromptEngineeringNode.ts | 1 + src/types/polyglotElements/nodes/ReadMaterialNode.ts | 1 + src/types/polyglotElements/nodes/ScanningNode.ts | 1 + src/types/polyglotElements/nodes/SimulationNode.ts | 1 + src/types/polyglotElements/nodes/SummaryNode.ts | 1 + src/types/polyglotElements/nodes/TrueFalseNode.ts | 1 + src/types/polyglotElements/nodes/UMLModelingNode.ts | 1 + src/types/polyglotElements/nodes/WatchVideoNode.ts | 1 + src/utils/utils.ts | 2 ++ 30 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/components/Properties/Nodes/CodingQuestionNodeProperties.tsx b/src/components/Properties/Nodes/CodingQuestionNodeProperties.tsx index 0d17e646..6a1a2b76 100644 --- a/src/components/Properties/Nodes/CodingQuestionNodeProperties.tsx +++ b/src/components/Properties/Nodes/CodingQuestionNodeProperties.tsx @@ -9,7 +9,7 @@ const CodingQuestionNodeProperties = () => { return ( <> @@ -24,8 +24,8 @@ const CodingQuestionNodeProperties = () => { constraints={{ onChange: (event) => setLanguage(event.target.value) }} options={ <> - - + + } /> diff --git a/src/types/polyglotElements/elementMapping.tsx b/src/types/polyglotElements/elementMapping.tsx index 8e79c9c4..ddc78aab 100644 --- a/src/types/polyglotElements/elementMapping.tsx +++ b/src/types/polyglotElements/elementMapping.tsx @@ -21,6 +21,7 @@ type ElementToReactFlowComponentMapping = { }; type ElementToNameMapping = { [elementType: string]: string }; type ElementToIconMapping = { [elementType: string]: string | undefined }; +type ElementToPlatformMapping = { [elementType: string]: string | undefined }; type ElementToGroupMapping = { [elementType: string]: string | undefined }; type ElementToDefaultDataMapping = { [elementType: string]: T }; type ElementToTransformDataMapping = { @@ -33,6 +34,7 @@ type MappingType = { name: string; icon?: string; group?: string; + platform?: string; propertiesComponent: PropertiesComponent; elementComponent: ReactFlowComponent; defaultData: K['data'] & V['data']; @@ -44,6 +46,7 @@ class PolyglotComponentMapping { private _elementMapping: ElementToReactFlowComponentMapping = {}; private _nameMapping: ElementToNameMapping = {}; private _iconMapping: ElementToIconMapping = {}; + private _defaulPlatformMapping: ElementToPlatformMapping = {}; private _groupMapping: ElementToGroupMapping = {}; private _defaultDataMapping: ElementToDefaultDataMapping = {}; private _transformMapping: ElementToTransformDataMapping = {}; @@ -55,6 +58,7 @@ class PolyglotComponentMapping { name, icon, group, + platform, propertiesComponent, elementComponent, defaultData, @@ -69,6 +73,7 @@ class PolyglotComponentMapping { this._elementMapping[elementType] = elementComponent; this._nameMapping[elementType] = name; this._iconMapping[elementType] = icon; + this._defaulPlatformMapping[elementType] = platform; this._groupMapping[elementType] = group; this._defaultDataMapping[elementType] = defaultData; this._transformMapping[elementType] = transformData; @@ -90,6 +95,10 @@ class PolyglotComponentMapping { return this._iconMapping; } + get defaultPlatformMapping(): Readonly { + return this._defaulPlatformMapping; + } + get groupMapping(): Readonly { return this._groupMapping; } diff --git a/src/types/polyglotElements/nodes/AnalyzingPlottingDataNode.ts b/src/types/polyglotElements/nodes/AnalyzingPlottingDataNode.ts index 450557ea..ac064483 100644 --- a/src/types/polyglotElements/nodes/AnalyzingPlottingDataNode.ts +++ b/src/types/polyglotElements/nodes/AnalyzingPlottingDataNode.ts @@ -18,6 +18,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Analyzing-Plotting Data', icon: icon.src, group: 'apply_assessment', + platform: 'WebApp', propertiesComponent: AnalyzingPlottingDataNodeProperties, elementComponent: ReactFlowAnalyzingPlottingDataNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/BrainstormingNode.ts b/src/types/polyglotElements/nodes/BrainstormingNode.ts index e1d75733..d44c3b17 100644 --- a/src/types/polyglotElements/nodes/BrainstormingNode.ts +++ b/src/types/polyglotElements/nodes/BrainstormingNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Brainstorming', icon: icon.src, group: 'create_assessment', + platform: 'WebApp', propertiesComponent: BrainstormingNodeProperties, elementComponent: ReactFlowBrainstormingNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CalculationNode.ts b/src/types/polyglotElements/nodes/CalculationNode.ts index a2169c0b..d833cdf7 100644 --- a/src/types/polyglotElements/nodes/CalculationNode.ts +++ b/src/types/polyglotElements/nodes/CalculationNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Calculation', icon: icon.src, group: 'apply_assessment', + platform: 'WebApp', propertiesComponent: CalculationNodeProperties, elementComponent: ReactFlowCalculationNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CasesEvaluationNode.ts b/src/types/polyglotElements/nodes/CasesEvaluationNode.ts index 80594b62..6c72c9d5 100644 --- a/src/types/polyglotElements/nodes/CasesEvaluationNode.ts +++ b/src/types/polyglotElements/nodes/CasesEvaluationNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Cases Evaluation', icon: icon.src, group: 'understand_assessment', + platform: 'WebApp', propertiesComponent: CasesEvaluationNodeProperties, elementComponent: ReactFlowCasesEvaluationNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CloseEndedQuestionNode.ts b/src/types/polyglotElements/nodes/CloseEndedQuestionNode.ts index d76d76fd..a569ac0b 100644 --- a/src/types/polyglotElements/nodes/CloseEndedQuestionNode.ts +++ b/src/types/polyglotElements/nodes/CloseEndedQuestionNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Close Ended Question', icon: icon.src, group: 'remember_assessment', + platform: 'WebApp', propertiesComponent: CloseEndedQuestionNodeProperties, elementComponent: ReactFlowCloseEndedQuestionNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CodingQuestionNode.ts b/src/types/polyglotElements/nodes/CodingQuestionNode.ts index 2101859f..449f9398 100644 --- a/src/types/polyglotElements/nodes/CodingQuestionNode.ts +++ b/src/types/polyglotElements/nodes/CodingQuestionNode.ts @@ -20,6 +20,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Coding Question', icon: icon.src, group: 'create_assessment', + platform: 'CodingWebApp', propertiesComponent: CodingQuestionNodeProperties, elementComponent: ReactFlowCodingQuestionNode, defaultData: { @@ -30,7 +31,7 @@ int main() { Console.WriteLine("Hello World!"); return 0; }`, - language: 'csharp', + language: 'javascript', ...defaultPolyglotNodeData, }, }); diff --git a/src/types/polyglotElements/nodes/CollaborativeModelingNode.ts b/src/types/polyglotElements/nodes/CollaborativeModelingNode.ts index 6a13706c..63a9f2fd 100644 --- a/src/types/polyglotElements/nodes/CollaborativeModelingNode.ts +++ b/src/types/polyglotElements/nodes/CollaborativeModelingNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Collaborative Modeling', icon: icon.src, group: 'understand_assessment', + platform: 'WebApp', propertiesComponent: CollaborativeModelingNodeProperties, elementComponent: ReactFlowCollaborativeModelingNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CreateKeywordsListNode.ts b/src/types/polyglotElements/nodes/CreateKeywordsListNode.ts index 1a4bc525..c172bff1 100644 --- a/src/types/polyglotElements/nodes/CreateKeywordsListNode.ts +++ b/src/types/polyglotElements/nodes/CreateKeywordsListNode.ts @@ -24,6 +24,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Create keywords list', icon: icon.src, group: 'remember_learning', + platform: 'WebApp', propertiesComponent: CreateKeywordsListNodeProperties, elementComponent: ReactFlowCreateKeywordsListNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/FindSolutionNode.ts b/src/types/polyglotElements/nodes/FindSolutionNode.ts index 4fd7f53e..4cccf190 100644 --- a/src/types/polyglotElements/nodes/FindSolutionNode.ts +++ b/src/types/polyglotElements/nodes/FindSolutionNode.ts @@ -26,6 +26,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Find Solution', icon: icon.src, group: 'create_learning', + platform: 'WebApp', propertiesComponent: FindSolutionNodeProperties, elementComponent: ReactFlowFindSolutionNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/FlowChartNode.ts b/src/types/polyglotElements/nodes/FlowChartNode.ts index bfcc0e0a..57434e3a 100644 --- a/src/types/polyglotElements/nodes/FlowChartNode.ts +++ b/src/types/polyglotElements/nodes/FlowChartNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Flow Chart', icon: icon.src, group: 'understand_assessment', + platform: 'WebApp', propertiesComponent: FlowChartNodeProperties, elementComponent: ReactFlowFlowChartNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/ImageEvaluationNode.ts b/src/types/polyglotElements/nodes/ImageEvaluationNode.ts index 4fbd0663..84d496a3 100644 --- a/src/types/polyglotElements/nodes/ImageEvaluationNode.ts +++ b/src/types/polyglotElements/nodes/ImageEvaluationNode.ts @@ -22,6 +22,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Image Evaluation', icon: icon.src, group: 'apply_assessment', + platform: 'WebApp', propertiesComponent: ImageEvaluationNodeProperties, elementComponent: ReactFlowImageEvaluationNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/InnovationPitchNode.ts b/src/types/polyglotElements/nodes/InnovationPitchNode.ts index b078e874..b482baba 100644 --- a/src/types/polyglotElements/nodes/InnovationPitchNode.ts +++ b/src/types/polyglotElements/nodes/InnovationPitchNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Innovation Pitch', icon: icon.src, group: 'create_assessment', + platform: 'WebApp', propertiesComponent: InnovationPitchNodeProperties, elementComponent: ReactFlowInnovationPitchNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/LessonTextNode.ts b/src/types/polyglotElements/nodes/LessonTextNode.ts index 0f17a5af..e7a17255 100644 --- a/src/types/polyglotElements/nodes/LessonTextNode.ts +++ b/src/types/polyglotElements/nodes/LessonTextNode.ts @@ -18,6 +18,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Lesson (Text)', icon: icon.src, group: ' ', + platform: 'WebApp', propertiesComponent: LessonTextNodeProperties, elementComponent: ReactFlowLessonNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/MemoriseKeywordsListNode.ts b/src/types/polyglotElements/nodes/MemoriseKeywordsListNode.ts index 2e6b2165..1a0010b1 100644 --- a/src/types/polyglotElements/nodes/MemoriseKeywordsListNode.ts +++ b/src/types/polyglotElements/nodes/MemoriseKeywordsListNode.ts @@ -25,6 +25,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Memorise keywords list', icon: icon.src, group: 'remember_learning', + platform: 'WebApp', propertiesComponent: MemoriseKeywordsListNodeProperties, elementComponent: ReactFlowMemoriseKeywordsListNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/MindMapNode.ts b/src/types/polyglotElements/nodes/MindMapNode.ts index dc7015b3..57cda580 100644 --- a/src/types/polyglotElements/nodes/MindMapNode.ts +++ b/src/types/polyglotElements/nodes/MindMapNode.ts @@ -26,6 +26,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'MindMap', icon: icon.src, group: 'understand_learning', + platform: 'WebApp', propertiesComponent: MindMapNodeProperties, elementComponent: ReactFlowMindMapNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/MultipleChoiceQuestionNode.ts b/src/types/polyglotElements/nodes/MultipleChoiceQuestionNode.ts index 10bbf6bd..e802bc90 100644 --- a/src/types/polyglotElements/nodes/MultipleChoiceQuestionNode.ts +++ b/src/types/polyglotElements/nodes/MultipleChoiceQuestionNode.ts @@ -20,6 +20,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Multiple Choice Question', icon: icon.src, group: 'remember_assessment', + platform: 'WebApp', propertiesComponent: MultipleChoiceQuestionNodeProperties, elementComponent: ReactFlowMultipleChoiceQuestionNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/NewTypeNode.ts b/src/types/polyglotElements/nodes/NewTypeNode.ts index c2226d1c..72bfcc6d 100644 --- a/src/types/polyglotElements/nodes/NewTypeNode.ts +++ b/src/types/polyglotElements/nodes/NewTypeNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'New Type xText', icon: icon.src, group: '', + platform: 'WebApp', propertiesComponent: NewTypeNodeProperties, elementComponent: ReactFlowNewTypeNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/OpenQuestionNode.ts b/src/types/polyglotElements/nodes/OpenQuestionNode.ts index 74a9fe26..d61a04a5 100644 --- a/src/types/polyglotElements/nodes/OpenQuestionNode.ts +++ b/src/types/polyglotElements/nodes/OpenQuestionNode.ts @@ -20,6 +20,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Open Question', icon: icon.src, group: 'remember_assessment', + platform: 'WebApp', propertiesComponent: OpenQuestionNodeProperties, elementComponent: ReactFlowOpenQuestionNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/ProblemSolvingNode.ts b/src/types/polyglotElements/nodes/ProblemSolvingNode.ts index 02d23438..a1811ee9 100644 --- a/src/types/polyglotElements/nodes/ProblemSolvingNode.ts +++ b/src/types/polyglotElements/nodes/ProblemSolvingNode.ts @@ -26,6 +26,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Problem Solving', icon: icon.src, group: 'apply_learning', + platform: 'WebApp', propertiesComponent: ProblemSolvingNodeProperties, elementComponent: ReactFlowProblemSolvingNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/PromptEngineeringNode.ts b/src/types/polyglotElements/nodes/PromptEngineeringNode.ts index 33c28011..2200958d 100644 --- a/src/types/polyglotElements/nodes/PromptEngineeringNode.ts +++ b/src/types/polyglotElements/nodes/PromptEngineeringNode.ts @@ -26,6 +26,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Prompt Engineering', icon: icon.src, group: 'apply_learning', + platform: 'WebApp', propertiesComponent: PromptEngineeringNodeProperties, elementComponent: ReactFlowPromptEngineeringNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/ReadMaterialNode.ts b/src/types/polyglotElements/nodes/ReadMaterialNode.ts index 6a857395..ee6b5cb0 100644 --- a/src/types/polyglotElements/nodes/ReadMaterialNode.ts +++ b/src/types/polyglotElements/nodes/ReadMaterialNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Read material', icon: icon.src, group: 'remember_learning', + platform: 'WebApp', propertiesComponent: ReadMaterialNodeProperties, elementComponent: ReactFlowReadMaterialNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/ScanningNode.ts b/src/types/polyglotElements/nodes/ScanningNode.ts index 15295b6a..b8591ea4 100644 --- a/src/types/polyglotElements/nodes/ScanningNode.ts +++ b/src/types/polyglotElements/nodes/ScanningNode.ts @@ -18,6 +18,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'AR Scan', icon: icon.src, group: 'understand_learning', + platform: 'MuNDAR', propertiesComponent: ScanningNodeProperties, elementComponent: ReactFlowScanningNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/SimulationNode.ts b/src/types/polyglotElements/nodes/SimulationNode.ts index f76b18ba..204a09fd 100644 --- a/src/types/polyglotElements/nodes/SimulationNode.ts +++ b/src/types/polyglotElements/nodes/SimulationNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Simulation', icon: icon.src, group: 'create_assessment', + platform: 'WebApp', propertiesComponent: SimulationNodeProperties, elementComponent: ReactFlowSimulationNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/SummaryNode.ts b/src/types/polyglotElements/nodes/SummaryNode.ts index 587c8ec7..125b68a2 100644 --- a/src/types/polyglotElements/nodes/SummaryNode.ts +++ b/src/types/polyglotElements/nodes/SummaryNode.ts @@ -20,6 +20,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Summary', icon: icon.src, group: 'understand_learning', + platform: 'WebApp', propertiesComponent: SummaryNodeProperties, elementComponent: ReactFlowSummaryNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/TrueFalseNode.ts b/src/types/polyglotElements/nodes/TrueFalseNode.ts index 472229fb..c8b72de2 100644 --- a/src/types/polyglotElements/nodes/TrueFalseNode.ts +++ b/src/types/polyglotElements/nodes/TrueFalseNode.ts @@ -22,6 +22,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'True False', icon: icon.src, group: 'remember_assessment', + platform: 'WebApp', propertiesComponent: TrueFalseNodeProperties, elementComponent: ReactFlowTrueFalseNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/UMLModelingNode.ts b/src/types/polyglotElements/nodes/UMLModelingNode.ts index aeee85fe..06f51af5 100644 --- a/src/types/polyglotElements/nodes/UMLModelingNode.ts +++ b/src/types/polyglotElements/nodes/UMLModelingNode.ts @@ -24,6 +24,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'UML Modeling', icon: icon.src, group: 'understand_assessment', + platform: 'PapyrusWeb', propertiesComponent: UMLModelingNodeProperties, elementComponent: ReactFlowUMLModelingNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/WatchVideoNode.ts b/src/types/polyglotElements/nodes/WatchVideoNode.ts index ec6b76ab..aa57df2c 100644 --- a/src/types/polyglotElements/nodes/WatchVideoNode.ts +++ b/src/types/polyglotElements/nodes/WatchVideoNode.ts @@ -18,6 +18,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Watch Video', icon: icon.src, group: 'remember_learning', + platform: 'WebApp', propertiesComponent: WatchVideoNodeProperties, elementComponent: ReactFlowWatchVideoNode, defaultData: { diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 30fb5c4f..2958e845 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -79,6 +79,7 @@ export const createNewDefaultPolyglotNode: ( title: 'New Node', description: '', difficulty: 1, + platform: polyglotNodeComponentMapping.defaultPlatformMapping[nodeType], data: polyglotNodeComponentMapping.defaultDataMapping[nodeType], reactFlow: { id: id, @@ -101,6 +102,7 @@ const configUnconditionalEdge = [ 'MemoriseKeywordsListNode', 'PromptEngineeringNode', 'ProblemSolvingNode', + 'CodingQuestionNode', ]; export const createNewDefaultPolyglotEdge = (