diff --git a/manager-ui/src/TauriApp.tsx b/manager-ui/src/TauriApp.tsx
index a9fe3f8..c553b33 100644
--- a/manager-ui/src/TauriApp.tsx
+++ b/manager-ui/src/TauriApp.tsx
@@ -1,10 +1,10 @@
import React, { useEffect } from 'react';
import './App.css';
import { useTauriManagerStore } from '@stores/tauri/useTauriManagerStore';
-import { BluetoothSearchScreen } from './screens/bluetoothSearch';
-import { useAsyncBridgeEvent, useAsyncBridgeRequest } from './hooks/useAsyncBridge';
+import { BluetoothSearchLayout } from './layouts/bluetoothSearch';
+import { useAsyncBridgeEvent, useAsyncBridgeRequest } from '@hooks/useAsyncBridge';
import { useShallow } from 'zustand/react/shallow';
-import { DeviceStateScreen } from '@screens/deviceState';
+import { DeviceStateLayout } from './layouts/deviceState';
export const TauriApp: React.FC = () => {
const [isFirstRender, setFirstRender] = React.useState(true);
@@ -12,8 +12,7 @@ export const TauriApp: React.FC = () => {
useShallow((state) => [state.handleAsyncBridgeEvent, state.connectedAddresses])
);
- const state = useTauriManagerStore((state) => state);
- console.log('state', state);
+ const currentState = useTauriManagerStore((state) => state.currentViewedDeviceState());
// Add the event listener to the bridge, which listener is
// provided by the store.
@@ -31,7 +30,11 @@ export const TauriApp: React.FC = () => {
return (
- {connectedAddresses.size !== 0 ? : }
+ {connectedAddresses.size !== 0 && currentState ? (
+
+ ) : (
+
+ )}
);
};
diff --git a/manager-ui/src/WebApp.tsx b/manager-ui/src/WebApp.tsx
index 77e42ab..6971375 100644
--- a/manager-ui/src/WebApp.tsx
+++ b/manager-ui/src/WebApp.tsx
@@ -3,7 +3,6 @@
import React, { useState } from 'react';
import { generate_soundcore_service_uuids, getSoundcoreMacPrefixes } from '@wasm/manager_wasm';
import { useWebManagerStore } from '@stores/web/useWebManagerStore';
-import { DeviceStateCard } from '@components/DeviceStateCard/deviceStateCard';
import { BLEDeviceFactory } from './ble/bleDevice';
import {
Button,
@@ -17,9 +16,9 @@ import {
NavbarItem,
Spinner
} from '@nextui-org/react';
-import { EqualizerCard } from '@components/EqualizerCard/equalizerCard';
import { BlurredOverlay } from '@components/atoms/blurredOverlay';
import { ChevronDown, Unplug } from 'lucide-react';
+import { DeviceStateLayout } from './layouts/deviceState';
enum ConnectionDialogStatus {
DIALOG_OPEN,
@@ -98,8 +97,7 @@ export const WebApp: React.FC = () => {
{state ? (
-
-
+
) : (
<>
diff --git a/manager-ui/src/screens/bluetoothSearch.tsx b/manager-ui/src/layouts/bluetoothSearch.tsx
similarity index 98%
rename from manager-ui/src/screens/bluetoothSearch.tsx
rename to manager-ui/src/layouts/bluetoothSearch.tsx
index 6324af6..30b45bd 100644
--- a/manager-ui/src/screens/bluetoothSearch.tsx
+++ b/manager-ui/src/layouts/bluetoothSearch.tsx
@@ -6,7 +6,7 @@ import { Button, Listbox, ListboxItem, Progress, Spinner } from '@nextui-org/rea
import { ArrowRight, RefreshCcw } from 'lucide-react';
import { BlurredOverlay } from '@components/atoms/blurredOverlay';
-export const BluetoothSearchScreen: React.FC = () => {
+export const BluetoothSearchLayout: React.FC = () => {
const {
isLoading: isScanLoading,
startScan,
diff --git a/manager-ui/src/layouts/deviceState.tsx b/manager-ui/src/layouts/deviceState.tsx
new file mode 100644
index 0000000..aff48f7
--- /dev/null
+++ b/manager-ui/src/layouts/deviceState.tsx
@@ -0,0 +1,13 @@
+import React from 'react';
+import { DeviceStateCard } from '@components/DeviceStateCard/deviceStateCard';
+import { SoundcoreDeviceState } from '@generated-types/soundcore-lib';
+import { EqualizerCard } from '@components/EqualizerCard/equalizerCard';
+
+export const DeviceStateLayout: React.FC<{ state: SoundcoreDeviceState }> = ({ state }) => {
+ return (
+ <>
+
+
+ >
+ );
+};
diff --git a/manager-ui/src/screens/deviceState.tsx b/manager-ui/src/screens/deviceState.tsx
deleted file mode 100644
index 8486f5a..0000000
--- a/manager-ui/src/screens/deviceState.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { DeviceStateCard } from '@components/DeviceStateCard/deviceStateCard';
-import { useTauriManagerStore } from '@stores/tauri/useTauriManagerStore';
-import { useShallow } from 'zustand/react/shallow';
-
-export const DeviceStateScreen = (): JSX.Element => {
- const [connectedAddresses, currentViewedDevice] = useTauriManagerStore(
- useShallow((state) => [state.connectedAddresses, state.currentViewedDevice])
- );
-
- const currentState = useTauriManagerStore((state) => state.currentViewedDeviceState());
-
- if (!currentViewedDevice || !currentState) {
- return
No device selected
;
- }
- return (
- <>
-
- {process.env.NODE_ENV === 'development' && (
- <>
-
Connected Devices
-
- {connectedAddresses.values.map((addr, idx) => (
- - {addr}
- ))}
-
-
Device State
-
{JSON.stringify(currentState)}
- >
- )}
- >
- );
-};