diff --git a/optuna_dashboard/ts/components/Settings.tsx b/optuna_dashboard/ts/components/Settings.tsx index e1e67cc9..87061283 100644 --- a/optuna_dashboard/ts/components/Settings.tsx +++ b/optuna_dashboard/ts/components/Settings.tsx @@ -11,8 +11,7 @@ import { Box, } from "@mui/material" import ClearIcon from "@mui/icons-material/Clear" -import { useRecoilState } from "recoil" -import { plotBackendRenderingState, usePlotlyColorThemeState } from "../state" +import { usePlotBackendRendering, usePlotlyColorThemeState } from "../state" interface SettingsProps { handleClose: () => void @@ -21,9 +20,8 @@ interface SettingsProps { export const Settings = ({ handleClose }: SettingsProps) => { const theme = useTheme() const [plotlyColorTheme, setPlotlyColorTheme] = usePlotlyColorThemeState() - const [plotBackendRendering, setPlotBackendRendering] = useRecoilState( - plotBackendRenderingState - ) + const [plotBackendRendering, setPlotBackendRendering] = + usePlotBackendRendering() const handleDarkModeColorChange = (event: SelectChangeEvent) => { const dark = event.target.value as PlotlyColorThemeDark diff --git a/optuna_dashboard/ts/state.ts b/optuna_dashboard/ts/state.ts index 88b794f5..dbe5c6a6 100644 --- a/optuna_dashboard/ts/state.ts +++ b/optuna_dashboard/ts/state.ts @@ -43,11 +43,6 @@ export const artifactIsAvailable = atom({ default: false, }) -export const plotBackendRenderingState = atom({ - key: "plotBackendRendering", - default: false, -}) - export const plotlypyIsAvailableState = atom({ key: "plotlypyIsAvailable", default: true, @@ -63,6 +58,10 @@ export const studyDetailLoadingState = atom>({ default: {}, }) +export const usePlotBackendRendering = () => { + return useLocalStorage("plotBackendRendering", false) +} + export const usePlotlyColorThemeState = () => { return useLocalStorage("plotlyColorTheme", { dark: "default", @@ -124,7 +123,7 @@ export const usePlotlyColorTheme = (mode: string): Partial => { } export const useBackendRender = (): boolean => { - const plotBackendRendering = useRecoilValue(plotBackendRenderingState) + const [plotBackendRendering, _] = usePlotBackendRendering() const plotlypyIsAvailable = useRecoilValue(plotlypyIsAvailableState) if (plotBackendRendering) {