{favList.map((app) => (
@@ -436,7 +493,11 @@ export default function FederatedDashboard() {
{/* Your Apps (non-favorites) */}
-
dragging && dragging.from === "other" && e.preventDefault()} onDrop={onDropToEnd("other") }>
+ dragging && dragging.from === "other" && e.preventDefault()}
+ onDrop={onDropToEnd("other")}
+ >
Your Apps
{otherList.map((app) => (
@@ -490,4 +551,18 @@ export default function FederatedDashboard() {
);
}
-// NOTE: Dev-only sanity checks were removed to maximize Canvas compatibility.
+// Dev-only sanity checks (Node-agnostic)
+const __DEV__ = (typeof globalThis !== "undefined" && (globalThis as any)?.process?.env?.NODE_ENV !== "production");
+if (__DEV__) {
+ try {
+ const ids = new Set();
+ for (const a of APP_CATALOG) {
+ if (!a.id || !a.name || !a.category) throw new Error("App missing id/name/category");
+ if (ids.has(a.id)) throw new Error("Duplicate app id: " + a.id);
+ ids.add(a.id);
+ }
+ } catch (e) {
+ // eslint-disable-next-line no-console
+ console.warn("[Dashboard] sanity check:", e);
+ }
+}