feat: remove init flag in sidebar store, use persist

This commit is contained in:
Matthew Russell
2023-07-20 12:53:48 +01:00
parent febcbdd991
commit 888ea7df1f
3 changed files with 25 additions and 17 deletions
+3 -3
View File
@@ -62,7 +62,7 @@ const TitleUpdater = ({
export const MarketPage = () => {
const { marketId } = useParams();
const navigate = useNavigate();
const { init, view, setView } = useSidebar();
const { view, setView } = useSidebar();
const { screenSize } = useScreenDimensions();
const largeScreen = ['lg', 'xl', 'xxl', 'xxxl'].includes(screenSize);
const update = useGlobalStore((store) => store.update);
@@ -84,10 +84,10 @@ export const MarketPage = () => {
// Make sidebar open on deal ticket by default
useEffect(() => {
if (init && view === null) {
if (view === null) {
setView({ type: ViewType.Order });
}
}, [init, view, setView]);
}, [view, setView]);
const tradeView = useMemo(() => {
if (largeScreen) {
@@ -36,7 +36,7 @@ const WithdrawalsIndicator = () => {
};
export const Portfolio = () => {
const { init, view, setView } = useSidebar();
const { view, setView } = useSidebar();
const { updateTitle } = usePageTitleStore((store) => ({
updateTitle: store.updateTitle,
}));
@@ -47,10 +47,10 @@ export const Portfolio = () => {
// Make transfer sidebar open by default
useEffect(() => {
if (init && view === null) {
if (view === null) {
setView({ type: ViewType.Transfer });
}
}, [init, view, setView]);
}, [view, setView]);
const onMarketClick = useMarketClickHandler(true);
const [sizes, handleOnLayoutChange] = usePaneLayout({ id: 'portfolio' });
+19 -11
View File
@@ -14,6 +14,9 @@ import { Settings } from '../settings';
import { Tooltip } from '../../components/tooltip';
import { WithdrawContainer } from '../withdraw-container';
import { Routes as AppRoutes } from '../../pages/client-router';
import { persist } from 'zustand/middleware';
const STORAGE_KEY = 'vega_sidebar_store';
export enum ViewType {
Order = 'Order',
@@ -265,18 +268,23 @@ const CloseSidebar = () => {
};
export const useSidebar = create<{
init: boolean;
view: SidebarView | null;
setView: (view: SidebarView | null) => void;
}>()((set) => ({
init: true,
view: null,
setView: (x) =>
set(() => {
if (x === null) {
return { view: null, init: false };
}
}>()(
persist(
(set) => ({
view: null,
setView: (x) =>
set(() => {
if (x === null) {
return { view: null };
}
return { view: x, init: false };
return { view: x };
}),
}),
}));
{
name: STORAGE_KEY,
}
)
);