mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-07-13 21:31:18 +02:00
Fix packet sidebar retention
This commit is contained in:
@@ -1030,6 +1030,7 @@ export function PacketVisualizer3D({
|
|||||||
// Persist visualizer controls to localStorage on change
|
// Persist visualizer controls to localStorage on change
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
saveVisualizerSettings({
|
saveVisualizerSettings({
|
||||||
|
...getVisualizerSettings(),
|
||||||
showAmbiguousPaths,
|
showAmbiguousPaths,
|
||||||
showAmbiguousNodes,
|
showAmbiguousNodes,
|
||||||
useAdvertPathHints,
|
useAdvertPathHints,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { PacketVisualizer3D } from './PacketVisualizer3D';
|
|||||||
import { RawPacketList } from './RawPacketList';
|
import { RawPacketList } from './RawPacketList';
|
||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from './ui/tabs';
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from './ui/tabs';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import { getVisualizerSettings, saveVisualizerSettings } from '../utils/visualizerSettings';
|
||||||
|
|
||||||
interface VisualizerViewProps {
|
interface VisualizerViewProps {
|
||||||
packets: RawPacket[];
|
packets: RawPacket[];
|
||||||
@@ -13,10 +14,18 @@ interface VisualizerViewProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function VisualizerView({ packets, contacts, config }: VisualizerViewProps) {
|
export function VisualizerView({ packets, contacts, config }: VisualizerViewProps) {
|
||||||
const [fullScreen, setFullScreen] = useState(false);
|
const [fullScreen, setFullScreen] = useState(() => getVisualizerSettings().hidePacketFeed);
|
||||||
const [paneFullScreen, setPaneFullScreen] = useState(false);
|
const [paneFullScreen, setPaneFullScreen] = useState(false);
|
||||||
const containerRef = useRef<HTMLDivElement>(null);
|
const containerRef = useRef<HTMLDivElement>(null);
|
||||||
|
|
||||||
|
// Persist packet feed visibility to localStorage
|
||||||
|
useEffect(() => {
|
||||||
|
const current = getVisualizerSettings();
|
||||||
|
if (current.hidePacketFeed !== fullScreen) {
|
||||||
|
saveVisualizerSettings({ ...current, hidePacketFeed: fullScreen });
|
||||||
|
}
|
||||||
|
}, [fullScreen]);
|
||||||
|
|
||||||
// Sync state when browser exits fullscreen (Escape, F11, etc.)
|
// Sync state when browser exits fullscreen (Escape, F11, etc.)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handler = () => {
|
const handler = () => {
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ export interface VisualizerSettings {
|
|||||||
pruneStaleNodes: boolean;
|
pruneStaleNodes: boolean;
|
||||||
autoOrbit: boolean;
|
autoOrbit: boolean;
|
||||||
showControls: boolean;
|
showControls: boolean;
|
||||||
|
hidePacketFeed: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const VISUALIZER_DEFAULTS: VisualizerSettings = {
|
export const VISUALIZER_DEFAULTS: VisualizerSettings = {
|
||||||
@@ -26,6 +27,7 @@ export const VISUALIZER_DEFAULTS: VisualizerSettings = {
|
|||||||
pruneStaleNodes: false,
|
pruneStaleNodes: false,
|
||||||
autoOrbit: false,
|
autoOrbit: false,
|
||||||
showControls: true,
|
showControls: true,
|
||||||
|
hidePacketFeed: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
export function getVisualizerSettings(): VisualizerSettings {
|
export function getVisualizerSettings(): VisualizerSettings {
|
||||||
@@ -74,6 +76,10 @@ export function getVisualizerSettings(): VisualizerSettings {
|
|||||||
typeof parsed.showControls === 'boolean'
|
typeof parsed.showControls === 'boolean'
|
||||||
? parsed.showControls
|
? parsed.showControls
|
||||||
: VISUALIZER_DEFAULTS.showControls,
|
: VISUALIZER_DEFAULTS.showControls,
|
||||||
|
hidePacketFeed:
|
||||||
|
typeof parsed.hidePacketFeed === 'boolean'
|
||||||
|
? parsed.hidePacketFeed
|
||||||
|
: VISUALIZER_DEFAULTS.hidePacketFeed,
|
||||||
};
|
};
|
||||||
} catch {
|
} catch {
|
||||||
return { ...VISUALIZER_DEFAULTS };
|
return { ...VISUALIZER_DEFAULTS };
|
||||||
|
|||||||
Reference in New Issue
Block a user