mirror of
https://github.com/Buriburizaem0n/admin-frontend-domain.git
synced 2026-02-04 12:40:08 +00:00
Dashboard Redesign (#48)
* feat: add user_template setting * style: header * style: page padding * style: header * feat: header now time * style: login page * feat: nav indicator * style: button inset shadow * style: footer text size * feat: header show login_ip * fix: error toast * fix: frontend_templates setting * fix: lint * feat: pr auto format * chore: auto-fix linting and formatting issues --------- Co-authored-by: hamster1963 <hamster1963@users.noreply.github.com>
This commit is contained in:
@@ -1,56 +1,71 @@
|
||||
import { createContext, useContext, useEffect, useMemo } from "react"
|
||||
import { useServerStore } from "./useServerStore"
|
||||
import { getServerGroups } from "@/api/server-group"
|
||||
import { getServers } from "@/api/server"
|
||||
import { getServerGroups } from "@/api/server-group"
|
||||
import { ServerContextProps } from "@/types"
|
||||
import { createContext, useContext, useEffect, useMemo } from "react"
|
||||
import { useLocation } from "react-router-dom"
|
||||
import { toast } from "sonner"
|
||||
|
||||
const ServerContext = createContext<ServerContextProps>({});
|
||||
import { useServerStore } from "./useServerStore"
|
||||
|
||||
const ServerContext = createContext<ServerContextProps>({})
|
||||
|
||||
interface ServerProviderProps {
|
||||
children: React.ReactNode;
|
||||
withServer?: boolean;
|
||||
withServerGroup?: boolean;
|
||||
children: React.ReactNode
|
||||
withServer?: boolean
|
||||
withServerGroup?: boolean
|
||||
}
|
||||
|
||||
export const ServerProvider: React.FC<ServerProviderProps> = ({ children, withServer, withServerGroup }) => {
|
||||
const serverGroup = useServerStore(store => store.serverGroup);
|
||||
const setServerGroup = useServerStore(store => store.setServerGroup);
|
||||
export const ServerProvider: React.FC<ServerProviderProps> = ({
|
||||
children,
|
||||
withServer,
|
||||
withServerGroup,
|
||||
}) => {
|
||||
const serverGroup = useServerStore((store) => store.serverGroup)
|
||||
const setServerGroup = useServerStore((store) => store.setServerGroup)
|
||||
|
||||
const server = useServerStore(store => store.server);
|
||||
const setServer = useServerStore(store => store.setServer);
|
||||
const server = useServerStore((store) => store.server)
|
||||
const setServer = useServerStore((store) => store.setServer)
|
||||
|
||||
const location = useLocation();
|
||||
const location = useLocation()
|
||||
|
||||
useEffect(() => {
|
||||
if (withServerGroup)
|
||||
(async () => {
|
||||
try {
|
||||
const sg = await getServerGroups();
|
||||
setServerGroup(sg);
|
||||
} catch (error) {
|
||||
setServerGroup(undefined);
|
||||
const sg = await getServerGroups()
|
||||
setServerGroup(sg)
|
||||
} catch (error: any) {
|
||||
toast("ServerProvider Error", {
|
||||
description: error.message,
|
||||
})
|
||||
setServerGroup(undefined)
|
||||
}
|
||||
})();
|
||||
})()
|
||||
if (withServer)
|
||||
(async () => {
|
||||
try {
|
||||
const s = await getServers();
|
||||
const serverData = s.map(({ id, name }) => ({ id, name }));
|
||||
setServer(serverData);
|
||||
} catch (error) {
|
||||
setServer(undefined);
|
||||
const s = await getServers()
|
||||
const serverData = s.map(({ id, name }) => ({ id, name }))
|
||||
setServer(serverData)
|
||||
} catch (error: any) {
|
||||
toast("ServerProvider Error", {
|
||||
description: error.message,
|
||||
})
|
||||
setServer(undefined)
|
||||
}
|
||||
})();
|
||||
})()
|
||||
}, [location.pathname])
|
||||
|
||||
const value: ServerContextProps = useMemo(() => ({
|
||||
servers: server,
|
||||
serverGroups: serverGroup,
|
||||
}), [server, serverGroup]);
|
||||
return <ServerContext.Provider value={value}>{children}</ServerContext.Provider>;
|
||||
const value: ServerContextProps = useMemo(
|
||||
() => ({
|
||||
servers: server,
|
||||
serverGroups: serverGroup,
|
||||
}),
|
||||
[server, serverGroup],
|
||||
)
|
||||
return <ServerContext.Provider value={value}>{children}</ServerContext.Provider>
|
||||
}
|
||||
|
||||
export const useServer = () => {
|
||||
return useContext(ServerContext);
|
||||
};
|
||||
return useContext(ServerContext)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user