MCPcopy Create free account
hub / github.com/botbotrobotics/BotBrain / loadScripts

Function loadScripts

frontend/src/components/map-view.tsx:84–148  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

82
83 // Dynamically load the required scripts
84 const loadScripts = async () => {
85 try {
86 // Make ROSLIB available globally for ros2d
87 if (!window.ROSLIB) {
88 window.ROSLIB = ROSLIB;
89 }
90
91 // Check if scripts are already loaded
92 if (window.ROS2D && window.createjs) {
93 initializeMap();
94 return;
95 }
96
97 // Load EaselJS first (CreateJS)
98 const easelScript = document.createElement('script');
99 easelScript.src = 'https://cdn.jsdelivr.net/npm/easeljs@1.0.2/lib/easeljs.min.js';
100 easelScript.async = true;
101
102 await new Promise((resolve, reject) => {
103 easelScript.onload = resolve;
104 easelScript.onerror = reject;
105 document.head.appendChild(easelScript);
106 });
107
108 // Load EventEmitter2
109 const eventEmitterScript = document.createElement('script');
110 eventEmitterScript.src = 'https://cdn.jsdelivr.net/npm/eventemitter2@6.4.9/lib/eventemitter2.min.js';
111 eventEmitterScript.async = true;
112
113 await new Promise((resolve, reject) => {
114 eventEmitterScript.onload = () => {
115 console.log('EventEmitter2 loaded successfully');
116 resolve(true);
117 };
118 eventEmitterScript.onerror = reject;
119 document.head.appendChild(eventEmitterScript);
120 });
121
122 // Load ROS2D
123 const ros2dScript = document.createElement('script');
124 ros2dScript.src = '/ros2d.min.js'; // We'll need to copy this to public folder
125 ros2dScript.async = true;
126
127 await new Promise((resolve, reject) => {
128 ros2dScript.onload = () => {
129 console.log('ROS2D loaded successfully');
130 resolve(true);
131 };
132 ros2dScript.onerror = (error) => {
133 console.error('Failed to load ROS2D:', error);
134 reject(error);
135 };
136 document.head.appendChild(ros2dScript);
137 });
138
139 // Give a small delay to ensure all scripts are fully initialized
140 await new Promise(resolve => setTimeout(resolve, 100));
141

Callers 1

MapViewFunction · 0.85

Calls 2

initializeMapFunction · 0.85
logMethod · 0.80

Tested by

no test coverage detected