修复MAP_EXTENT状态更新的BUG
This commit is contained in:
@@ -21,7 +21,7 @@ import { useGetIdentity, useLogout } from "@refinedev/core";
|
||||
import { HamburgerMenu, RefineThemedLayoutHeaderProps } from "@refinedev/mui";
|
||||
import React, { useContext, useState } from "react";
|
||||
import { ProjectSelector } from "@components/project/ProjectSelector";
|
||||
import { setMapWorkspace, setNetworkName } from "@config/config";
|
||||
import { setMapExtent, setMapWorkspace, setNetworkName } from "@config/config";
|
||||
|
||||
type IUser = {
|
||||
id: number;
|
||||
@@ -53,11 +53,18 @@ export const Header: React.FC<RefineThemedLayoutHeaderProps> = ({
|
||||
setShowProjectSelector(true);
|
||||
};
|
||||
|
||||
const handleProjectSelect = (workspace: string, networkName: string) => {
|
||||
const handleProjectSelect = (
|
||||
workspace: string,
|
||||
networkName: string,
|
||||
extent: number[],
|
||||
) => {
|
||||
setMapWorkspace(workspace);
|
||||
setNetworkName(networkName);
|
||||
setMapExtent(extent);
|
||||
localStorage.setItem("NEXT_PUBLIC_MAP_WORKSPACE", workspace);
|
||||
localStorage.setItem("NEXT_PUBLIC_NETWORK_NAME", networkName);
|
||||
localStorage.setItem("NEXT_PUBLIC_MAP_EXTENT", extent.join(","));
|
||||
localStorage.removeItem(`${workspace}_map_view`);
|
||||
setShowProjectSelector(false);
|
||||
window.location.reload();
|
||||
};
|
||||
|
||||
@@ -19,7 +19,7 @@ import { useState } from "react";
|
||||
|
||||
interface ProjectSelectorProps {
|
||||
open: boolean;
|
||||
onSelect: (workspace: string, networkName: string, extent?: number[]) => void;
|
||||
onSelect: (workspace: string, networkName: string, extent: number[]) => void;
|
||||
onClose?: () => void;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ export const ProjectSelector: React.FC<ProjectSelectorProps> = ({
|
||||
}) => {
|
||||
const [workspace, setWorkspace] = useState(PROJECTS[0].workspace);
|
||||
const [networkName, setNetworkName] = useState(PROJECTS[0].networkName);
|
||||
const [extent, setExtent] = useState<number[] | undefined>(
|
||||
const [extent, setExtent] = useState<number[]>(
|
||||
PROJECTS[0].extent,
|
||||
);
|
||||
const [customMode, setCustomMode] = useState(false);
|
||||
|
||||
@@ -34,22 +34,19 @@ export const ProjectProvider: React.FC<{ children: React.ReactNode }> = ({
|
||||
applyConfig(
|
||||
savedWorkspace,
|
||||
savedNetwork,
|
||||
savedExtent ? savedExtent.split(",").map(Number) : undefined,
|
||||
savedExtent ? savedExtent.split(",").map(Number) : config.MAP_EXTENT,
|
||||
);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const applyConfig = async (ws: string, net: string, extent?: number[]) => {
|
||||
const applyConfig = async (ws: string, net: string, extent: number[]) => {
|
||||
setMapWorkspace(ws);
|
||||
setNetworkName(net);
|
||||
if (extent) {
|
||||
setMapExtent(extent);
|
||||
localStorage.setItem("NEXT_PUBLIC_MAP_EXTENT", extent.join(","));
|
||||
// Reset extent cache
|
||||
localStorage.removeItem(`${ws}_map_view`);
|
||||
}
|
||||
|
||||
setCurrentProject({ workspace: ws, networkName: net, extent: extent || config.MAP_EXTENT });
|
||||
setMapExtent(extent);
|
||||
localStorage.setItem("NEXT_PUBLIC_MAP_EXTENT", extent.join(","));
|
||||
// Reset extent cache
|
||||
localStorage.removeItem(`${ws}_map_view`);
|
||||
setCurrentProject({ workspace: ws, networkName: net, extent: extent });
|
||||
|
||||
// Save to localStorage
|
||||
localStorage.setItem("NEXT_PUBLIC_MAP_WORKSPACE", ws);
|
||||
|
||||
Reference in New Issue
Block a user