diff --git a/bun.lockb b/bun.lockb
index f36000aa..65f64203 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/package.json b/package.json
index 0af639ac..6869b910 100644
--- a/package.json
+++ b/package.json
@@ -40,8 +40,8 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-is": "^18.3.1",
- "react-redux": "^8.0.5",
- "react-select": "^5.7.0",
+ "react-redux": "^9.1.2",
+ "react-select": "^5.8.1",
"react-textarea-autosize": "^8.4.0",
"redux-logger": "^3.0.6",
"styled-components": "^6.0.0-beta.5",
diff --git a/src/components/three-fiber/canvas-router.tsx b/src/components/three-fiber/canvas-router.tsx
index 8d4dddd1..e6c6ef0b 100644
--- a/src/components/three-fiber/canvas-router.tsx
+++ b/src/components/three-fiber/canvas-router.tsx
@@ -12,7 +12,7 @@ import {Canvas} from '@react-three/fiber';
import {DefinitionVersionMap, KeyColorType} from '@the-via/reader';
import cubeySrc from 'assets/models/cubey.glb';
import glbSrc from 'assets/models/keyboard_components.glb';
-import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
+import React, {Suspense, useCallback, useEffect, useMemo, useRef} from 'react';
import {shallowEqual} from 'react-redux';
import {
getCustomDefinitions,
@@ -40,6 +40,7 @@ import {Test} from '../n-links/keyboard/test';
import {Camera} from './camera';
import {LoaderCubey} from './loader-cubey';
import {UpdateUVMaps} from './update-uv-maps';
+
useGLTF.preload(cubeySrc, true, true);
useGLTF.preload(glbSrc, true, true);
@@ -62,7 +63,21 @@ const KeyboardBG: React.FC<{
);
}, shallowEqual);
+
export const CanvasRouter = () => {
+ return (
+