mirror of
https://github.com/netbirdio/dashboard.git
synced 2026-01-26 01:21:04 +00:00
* Update axa oidc library and package.json * Update ACL port state to show correct value * Filter user groups by unique groups only * Add peer multiselect, optimize dropdown performance for peer selection, remove 'all' group from some dropdowns, various ui / ux optimizations * Add peer multiselect, optimize dropdown performance for peer selection, remove 'all' group from some dropdowns, various ui / ux optimizations
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import * as React from "react";
|
|
import { useState } from "react";
|
|
import { GroupedRoute } from "@/interfaces/Route";
|
|
import RouteAddRoutingPeerModal from "@/modules/routes/RouteAddRoutingPeerModal";
|
|
|
|
type Props = {
|
|
children: React.ReactNode;
|
|
};
|
|
|
|
const GroupedRouteContext = React.createContext(
|
|
{} as {
|
|
openAddRoutingPeerModal: (groupedRoute: GroupedRoute) => void;
|
|
},
|
|
);
|
|
|
|
export const RouteAddRoutingPeerProvider = ({ children }: Props) => {
|
|
const [groupedRoute, setGroupedRoute] = useState<GroupedRoute>();
|
|
const [modal, setModal] = useState(false);
|
|
const openAddRoutingPeerModal = (groupedRoute: GroupedRoute) => {
|
|
setGroupedRoute(groupedRoute);
|
|
setModal(true);
|
|
};
|
|
|
|
return (
|
|
<GroupedRouteContext.Provider value={{ openAddRoutingPeerModal }}>
|
|
{children}
|
|
{modal && groupedRoute && (
|
|
<RouteAddRoutingPeerModal
|
|
groupedRoute={groupedRoute}
|
|
modal={modal}
|
|
setModal={setModal}
|
|
/>
|
|
)}
|
|
</GroupedRouteContext.Provider>
|
|
);
|
|
};
|
|
|
|
export const useAddRoutingPeer = () => {
|
|
const context = React.useContext(GroupedRouteContext);
|
|
if (context === undefined) {
|
|
throw new Error(
|
|
"useGroupedRoute must be used within a GroupedRouteProvider",
|
|
);
|
|
}
|
|
return context;
|
|
};
|