Skip to content

useLayoutManager

Save, load, rename and delete named chart layouts. Captures indicators, drawings, symbol and period. Optional auto-save with a 5-second debounce.

Layouts persist through the provider storage adapter when it is configured (the layouts namespace), and fall back to raw localStorage otherwise — layouts saved by 2.0.3 and earlier under the legacy klinecharts_layout* keys are migrated automatically on first use.

import { useLayoutManager } from "react-klinecharts-ui";
const {
layouts,
saveLayout,
loadLayout,
deleteLayout,
renameLayout,
refreshLayouts,
autoSaveEnabled,
setAutoSaveEnabled,
} = useLayoutManager();
PropertyTypeDescription
layoutsLayoutEntry[]List of saved layout entries
saveLayout(name: string) => string | nullSave current state; returns layout ID
loadLayout(id: string) => booleanLoad and apply a layout by ID
deleteLayout(id: string) => voidDelete a layout
renameLayout(id: string, name: string) => booleanRename a layout
refreshLayouts() => voidRefresh the list from the persistence backend
autoSaveEnabledbooleanWhether auto-save is enabled
setAutoSaveEnabled(enabled: boolean) => voidToggle auto-save
interface LayoutEntry {
id: string;
name: string;
symbol: string;
period: string;
timestamp: number;
lastModified: number;
state: ChartLayoutState;
}
interface ChartLayoutState {
version: string;
meta: { symbol: string; period: string; timestamp: number; lastModified: number };
indicators: Array<{ paneId: string; name: string; calcParams: any[]; visible: boolean }>;
drawings: Array<{ name: string; points: any[]; styles?: any; extendData?: any }>;
}

Layouts reproduce each indicator’s secondary-axis binding 1:1 (see useIndicators → Y-axis binding).