in packages/graph-explorer/src/modules/SearchSidebar/NodeSearchResult.tsx [60:95]
function AddOrRemoveButton({
vertex,
...props
}: ButtonProps & { vertex: Vertex }) {
const mutation = useAddToGraphMutation();
const removeFromGraph = useRemoveNodeFromGraph(vertex.id);
const hasBeenAdded = useHasVertexBeenAddedToGraph(vertex.id);
if (hasBeenAdded) {
return (
<IconButton
icon={<MinusCircleIcon />}
variant="text"
className="rounded-full"
size="small"
onClick={stopPropagation(removeFromGraph)}
tooltipText="Remove node from view"
{...props}
/>
);
}
return (
<IconButton
variant="text"
className="rounded-full"
size="small"
onClick={stopPropagation(() => mutation.mutate({ vertices: [vertex] }))}
disabled={mutation.isPending}
tooltipText="Add node to view"
{...props}
>
{mutation.isPending ? <Spinner /> : <PlusCircleIcon />}
</IconButton>
);
}