feat: show popularity score

This commit is contained in:
julius 2025-03-12 14:39:42 +01:00
parent 5b8f476997
commit 4f30888c5c
Signed by: julius
GPG Key ID: C80A63E6A5FD7092
2 changed files with 43 additions and 28 deletions

View File

@ -67,6 +67,7 @@ export const GraphComponent = () => {
}
function handlePopularity() {
popularityLabel(!popularity);
setPopularity(!popularity);
}
@ -122,6 +123,20 @@ export const GraphComponent = () => {
}
setData({ nodes: data.nodes, edges: newEdges });
}
function popularityLabel(popularity: boolean) {
const newNodes = data.nodes;
console.log(data.nodes);
if (popularity) {
newNodes.forEach(
(node) => (node.subLabel = `pop.: ${node.data.inDegree.toFixed(1)}`)
);
} else {
newNodes.forEach((node) => (node.subLabel = undefined));
}
setData({ nodes: newNodes, edges: data.edges });
}
useEffect(() => {
if (mutuality) colorMatches(false);
colorMatches(mutuality);

View File

@ -2,58 +2,58 @@ import { Theme } from "reagraph";
export const customTheme: Theme = {
canvas: {
background: 'aliceblue',
background: "aliceblue",
},
node: {
fill: '#69F',
activeFill: '#36C',
fill: "#69F",
activeFill: "#36C",
opacity: 1,
selectedOpacity: 1,
inactiveOpacity: 0.333,
label: {
color: '#404040',
stroke: 'white',
activeColor: 'black'
color: "#404040",
stroke: "white",
activeColor: "black",
},
subLabel: {
color: '#ddd',
stroke: 'transparent',
activeColor: '#1DE9AC'
}
color: "#404040",
stroke: "white",
activeColor: "black",
},
},
lasso: {
border: '1px solid #55aaff',
background: 'rgba(75, 160, 255, 0.1)'
border: "1px solid #55aaff",
background: "rgba(75, 160, 255, 0.1)",
},
ring: {
fill: '#69F',
activeFill: '#36C'
fill: "#69F",
activeFill: "#36C",
},
edge: {
fill: '#bed4ff',
activeFill: '#36C',
fill: "#bed4ff",
activeFill: "#36C",
opacity: 1,
selectedOpacity: 1,
inactiveOpacity: 0.333,
label: {
stroke: '#fff',
color: '#2A6475',
activeColor: '#1DE9AC',
fontSize: 6
}
stroke: "#fff",
color: "#2A6475",
activeColor: "#1DE9AC",
fontSize: 6,
},
},
arrow: {
fill: '#bed4ff',
activeFill: '#36C'
fill: "#bed4ff",
activeFill: "#36C",
},
cluster: {
stroke: '#D8E6EA',
stroke: "#D8E6EA",
opacity: 1,
selectedOpacity: 1,
inactiveOpacity: 0.1,
label: {
stroke: '#fff',
color: '#2A6475'
}
}
stroke: "#fff",
color: "#2A6475",
},
},
};