summaryrefslogtreecommitdiff
path: root/util/getLinkColor.ts
diff options
context:
space:
mode:
authorThomas F. K. Jorna <[email protected]>2022-09-27 15:09:17 +0200
committerThomas F. K. Jorna <[email protected]>2022-09-27 15:09:17 +0200
commita575d14b6621d5464d33d52ca642f2db70c3e370 (patch)
tree5a1d38227a93b1bf2b152ed4af5820a59c34cf91 /util/getLinkColor.ts
parentfa84c052b221d157fa869cd4912acd538b5005a0 (diff)
fix: move a ton of functions to separate files
Diffstat (limited to 'util/getLinkColor.ts')
-rw-r--r--util/getLinkColor.ts82
1 files changed, 82 insertions, 0 deletions
diff --git a/util/getLinkColor.ts b/util/getLinkColor.ts
new file mode 100644
index 0000000..33f7094
--- /dev/null
+++ b/util/getLinkColor.ts
@@ -0,0 +1,82 @@
+import { initialColoring, initialVisuals } from '../components/config'
+import { LinksByNodeId } from '../pages'
+import { getLinkNodeColor } from './getLinkNodeColor'
+import { getThemeColor } from './getThemeColor'
+
+export const getLinkColor = ({
+ sourceId,
+ targetId,
+ needsHighlighting,
+ theme,
+ visuals,
+ highlightColors,
+ opacity,
+ linksByNodeId,
+ coloring,
+ cluster,
+}: {
+ sourceId: string
+ targetId: string
+ needsHighlighting: boolean
+ theme: any
+ visuals: typeof initialVisuals
+ highlightColors: Record<string, any>
+ opacity: number
+ linksByNodeId: LinksByNodeId
+ coloring: typeof initialColoring
+ cluster: any
+}) => {
+ if (!visuals.linkHighlight && !visuals.linkColorScheme && !needsHighlighting) {
+ const nodeColor = getLinkNodeColor({
+ sourceId,
+ targetId,
+ linksByNodeId,
+ visuals,
+ coloring,
+ cluster,
+ })
+ return getThemeColor(nodeColor, theme)
+ }
+
+ if (!needsHighlighting && !visuals.linkColorScheme) {
+ const nodeColor = getLinkNodeColor({
+ sourceId,
+ targetId,
+ linksByNodeId,
+ visuals,
+ coloring,
+ cluster,
+ })
+ return highlightColors[nodeColor][visuals.backgroundColor](visuals.highlightFade * opacity)
+ }
+
+ if (!needsHighlighting) {
+ return highlightColors[visuals.linkColorScheme][visuals.backgroundColor](
+ visuals.highlightFade * opacity,
+ )
+ }
+
+ if (!visuals.linkHighlight && !visuals.linkColorScheme) {
+ const nodeColor = getLinkNodeColor({
+ sourceId,
+ targetId,
+ linksByNodeId,
+ visuals,
+ coloring,
+ cluster,
+ })
+ return getThemeColor(nodeColor, theme)
+ }
+
+ if (!visuals.linkHighlight) {
+ return getThemeColor(visuals.linkColorScheme, theme)
+ }
+
+ if (!visuals.linkColorScheme) {
+ return highlightColors[
+ getLinkNodeColor({ sourceId, targetId, linksByNodeId, visuals, coloring, cluster })
+ ][visuals.linkHighlight](opacity)
+ }
+
+ return highlightColors[visuals.linkColorScheme][visuals.linkHighlight](opacity)
+}