Files
ruvnet--RuView/ui/mobile/src/stores/settingsStore.ts
T
ruv fdc7142dfa feat: Implement RSSI service for iOS and Web platforms
- Added IosRssiService to handle synthetic RSSI data for iOS.
- Created WebRssiService to simulate RSSI scanning on the web.
- Defined shared types for WifiNetwork and RssiService in rssi.service.ts.
- Introduced simulation service to generate synthetic sensing data.
- Implemented WebSocket service for real-time data handling with reconnection logic.
- Established Zustand stores for managing application state related to MAT and pose data.
- Developed theme context and utility functions for consistent styling and formatting.
- Added type definitions for various application entities including API responses and sensing data.
- Created utility functions for color mapping and URL validation.
- Configured TypeScript settings for the mobile application.
2026-03-02 10:30:33 -05:00

48 lines
1.1 KiB
TypeScript

import AsyncStorage from '@react-native-async-storage/async-storage';
import { create } from 'zustand';
import { createJSONStorage, persist } from 'zustand/middleware';
export type Theme = 'light' | 'dark' | 'system';
export interface SettingsState {
serverUrl: string;
rssiScanEnabled: boolean;
theme: Theme;
alertSoundEnabled: boolean;
setServerUrl: (url: string) => void;
setRssiScanEnabled: (value: boolean) => void;
setTheme: (theme: Theme) => void;
setAlertSoundEnabled: (value: boolean) => void;
}
export const useSettingsStore = create<SettingsState>()(
persist(
(set) => ({
serverUrl: 'http://localhost:3000',
rssiScanEnabled: false,
theme: 'system',
alertSoundEnabled: true,
setServerUrl: (url) => {
set({ serverUrl: url });
},
setRssiScanEnabled: (value) => {
set({ rssiScanEnabled: value });
},
setTheme: (theme) => {
set({ theme });
},
setAlertSoundEnabled: (value) => {
set({ alertSoundEnabled: value });
},
}),
{
name: 'wifi-densepose-settings',
storage: createJSONStorage(() => AsyncStorage),
},
),
);