Skip to content

Commit 1937d7b

Browse files
committed
Merge branch 'eodp-fossils'
* eodp-fossils: Allow switching into depth framework Fantastic fossil occurrence provider Decent fossil data occurrence facets Reorganized 'facets' Starting point for collapsing unconformities in section
2 parents 8d2931f + f3cbff6 commit 1937d7b

File tree

17 files changed

+311
-14
lines changed

17 files changed

+311
-14
lines changed

packages/column-views/src/carbon-isotopes/data-area.ts renamed to packages/column-views/src/facets/carbon-isotopes/data-area.ts

File renamed without changes.

packages/column-views/src/carbon-isotopes/data-provider.ts renamed to packages/column-views/src/facets/carbon-isotopes/data-provider.ts

File renamed without changes.

packages/column-views/src/carbon-isotopes/index.ts renamed to packages/column-views/src/facets/carbon-isotopes/index.ts

File renamed without changes.

packages/column-views/src/carbon-isotopes/isotopes-column.module.sass renamed to packages/column-views/src/facets/carbon-isotopes/isotopes-column.module.sass

File renamed without changes.

packages/column-views/src/carbon-isotopes/isotopes-column.ts renamed to packages/column-views/src/facets/carbon-isotopes/isotopes-column.ts

File renamed without changes.

packages/column-views/src/detrital-zircon/index.module.sass renamed to packages/column-views/src/facets/detrital-zircon/index.module.sass

File renamed without changes.

packages/column-views/src/detrital-zircon/index.ts renamed to packages/column-views/src/facets/detrital-zircon/index.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@ import {
66
import { IUnit } from "@macrostrat/column-views";
77
import hyper from "@macrostrat/hyper";
88
import { useDetritalMeasurements, MeasurementInfo } from "./provider";
9-
import { useMacrostratUnits } from "../data-provider";
10-
import { ColumnNotes } from "../notes";
11-
import { useMemo, useRef } from "react";
9+
import { useMacrostratUnits } from "../../data-provider";
10+
import { ColumnNotes } from "../../notes";
11+
import { useMemo } from "react";
1212
import styles from "./index.module.sass";
13-
import { useInView } from "react-spring";
1413
import classNames from "classnames";
1514

1615
const h = hyper.styled(styles);

packages/column-views/src/detrital-zircon/provider.ts renamed to packages/column-views/src/facets/detrital-zircon/provider.ts

File renamed without changes.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.fossil-collections
2+
padding-left: 0.2em
3+
font-size: 0.9em
4+
list-style: none
5+
border-left: 1px solid var(--column-stroke-color)
6+
margin: 1px 0
7+
li
8+
display: inline
9+
&:not(:last-child):after
10+
content: ", "
11+
color: var(--secondary-color)
12+
li.too-many
13+
color: var(--secondary-color)
14+
font-style: italic
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
import {
2+
getUnitHeightRange,
3+
IUnit,
4+
useMacrostratColumnData,
5+
} from "@macrostrat/column-views";
6+
import hyper from "@macrostrat/hyper";
7+
import { PBDBCollection, useFossilData } from "./provider";
8+
import { useMacrostratUnits } from "../../data-provider";
9+
import { ColumnNotes } from "../../notes";
10+
import { useMemo } from "react";
11+
import styles from "./index.module.sass";
12+
import { useColumn } from "@macrostrat/column-components";
13+
14+
const h = hyper.styled(styles);
15+
16+
interface FossilItemProps {
17+
note: {
18+
data: PBDBCollection[];
19+
unit?: IUnit;
20+
};
21+
spacing?: {
22+
below?: number;
23+
above?: number;
24+
};
25+
width?: number;
26+
height?: number;
27+
color?: string;
28+
}
29+
30+
function FossilInfo(props: FossilItemProps) {
31+
const { note, spacing } = props;
32+
const { data, unit } = note;
33+
34+
let d1 = data;
35+
36+
let tooMany = null;
37+
if (data.length > 5) {
38+
const n = data.length - 5;
39+
d1 = data.slice(0, 5);
40+
tooMany = h("li.too-many", `and ${n} more`);
41+
}
42+
43+
return h("ul.fossil-collections", [
44+
d1.map((d) => {
45+
return h("li.collection", [h(PBDBCollectionLink, { collection: d })]);
46+
}),
47+
tooMany,
48+
]);
49+
}
50+
51+
function PBDBCollectionLink({ collection }: { collection: PBDBCollection }) {
52+
return h(
53+
"a.link-id",
54+
{
55+
href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${collection.cltn_id}`,
56+
},
57+
collection.cltn_name
58+
);
59+
}
60+
61+
const matchingUnit = (dz) => (d) => d.unit_id == dz.unit_id;
62+
63+
export function PBDBFossilsColumn({ columnID, color = "magenta" }) {
64+
const data = useFossilData({ col_id: columnID });
65+
const units = useMacrostratUnits();
66+
const { axisType } = useMacrostratColumnData();
67+
68+
const notes: any[] = useMemo(() => {
69+
if (data == null || units == null) return [];
70+
let unitRefData = Array.from(data.values())
71+
.map((d) => {
72+
return {
73+
data: d,
74+
unit: units.find(matchingUnit(d[0])),
75+
};
76+
})
77+
.filter((d) => d.unit != null);
78+
79+
unitRefData.sort((a, b) => {
80+
const v1 = units.indexOf(a.unit);
81+
const v2 = units.indexOf(b.unit);
82+
return v1 > v2;
83+
});
84+
85+
return unitRefData.map((d) => {
86+
const { unit, data } = d;
87+
console.log(unit);
88+
const heightRange = getUnitHeightRange(unit, axisType);
89+
90+
console.log(heightRange);
91+
92+
return {
93+
top_height: heightRange[1],
94+
height: heightRange[0],
95+
data,
96+
unit,
97+
id: unit.unit_id,
98+
};
99+
});
100+
}, [data, units]);
101+
102+
const width = 500;
103+
const paddingLeft = 40;
104+
105+
const noteComponent = useMemo(() => {
106+
return (props) => {
107+
return h(FossilInfo, {
108+
color,
109+
...props,
110+
});
111+
};
112+
}, [width, color]);
113+
114+
if (data == null || units == null) return null;
115+
116+
return h(
117+
"div.dz-spectra",
118+
h(ColumnNotes, {
119+
width,
120+
paddingLeft,
121+
notes,
122+
noteComponent,
123+
})
124+
);
125+
}

0 commit comments

Comments
 (0)