Skip to content

Commit 0f98995

Browse files
authored
Merge pull request #299 from UW-Macrostrat/strat-item-pages
Strat Item Pages
2 parents e8e8bd6 + 5258ac9 commit 0f98995

File tree

19 files changed

+472
-298
lines changed

19 files changed

+472
-298
lines changed

pages/_error/main.module.styl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,4 @@ button:hover
4141
background-color var(--background-color)
4242
color: var(text-emphasized-color) !important
4343
cursor: pointer
44-
margin 14px 0
45-
46-
a
47-
color: var(--text-emphasized-color) !important
44+
margin 14px 0
Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
import { useData } from "vike-react/useData";
2-
import { LexItemPage } from "~/components/lex";
2+
import h from "@macrostrat/hyper";
3+
import {
4+
LexItemPage,
5+
ColumnsTable,
6+
Charts,
7+
PrevalentTaxa,
8+
Timescales,
9+
} from "~/components/lex";
310

411
export function Page() {
512
const { resData, colData, taxaData, refs } = useData();
613

7-
return LexItemPage({
8-
id: resData.col_group_id,
9-
header: "groups",
10-
resData,
11-
colData,
12-
taxaData,
13-
refs,
14-
});
14+
const id = resData.environ_id;
15+
const features = colData?.features || [];
16+
const timescales = resData?.timescales || [];
17+
18+
const children = [
19+
h(ColumnsTable, {
20+
resData,
21+
colData,
22+
}),
23+
h(Charts, { features }),
24+
h(PrevalentTaxa, { taxaData }),
25+
h(Timescales, { timescales }),
26+
];
27+
28+
return LexItemPage({ children, id, refs, resData, siftLink: "environment" });
1529
}

pages/lex/economics/@id/+Page.ts

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
import { useData } from "vike-react/useData";
2-
import { LexItemPage } from "~/components/lex";
2+
import h from "@macrostrat/hyper";
3+
import {
4+
LexItemPage,
5+
ColumnsTable,
6+
Charts,
7+
PrevalentTaxa,
8+
Timescales,
9+
} from "~/components/lex";
310

411
export function Page() {
512
const { resData, colData, taxaData, refs } = useData();
613

7-
return LexItemPage({
8-
id: resData.econ_id,
9-
header: "econs",
10-
resData,
11-
colData,
12-
taxaData,
13-
refs,
14-
});
14+
const id = resData.econ_id;
15+
const features = colData?.features || [];
16+
const timescales = resData?.timescales || [];
17+
18+
const children = [
19+
h(ColumnsTable, {
20+
resData,
21+
colData,
22+
}),
23+
h(Charts, { features }),
24+
h(PrevalentTaxa, { taxaData }),
25+
h(Timescales, { timescales }),
26+
];
27+
28+
return LexItemPage({ children, id, refs, resData, siftLink: "economic" });
1529
}
Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
import { useData } from "vike-react/useData";
2-
import { LexItemPage } from "~/components/lex";
2+
import h from "@macrostrat/hyper";
3+
import {
4+
LexItemPage,
5+
ColumnsTable,
6+
Charts,
7+
PrevalentTaxa,
8+
Timescales,
9+
} from "~/components/lex";
310

411
export function Page() {
512
const { resData, colData, taxaData, refs } = useData();
613

7-
return LexItemPage({
8-
id: resData.environ_id,
9-
header: "environments",
10-
resData,
11-
colData,
12-
taxaData,
13-
refs,
14-
});
14+
const id = resData.environ_id;
15+
const features = colData?.features || [];
16+
const timescales = resData?.timescales || [];
17+
18+
const children = [
19+
h(ColumnsTable, {
20+
resData,
21+
colData,
22+
}),
23+
h(Charts, { features }),
24+
h(PrevalentTaxa, { taxaData }),
25+
h(Timescales, { timescales }),
26+
];
27+
28+
return LexItemPage({ children, id, refs, resData, siftLink: "environment" });
1529
}

pages/lex/intervals/@id/+Page.ts

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,31 @@
11
import { useData } from "vike-react/useData";
2-
import { LexItemPage } from "~/components/lex";
2+
import h from "@macrostrat/hyper";
3+
import {
4+
Intervals,
5+
LexItemPage,
6+
ColumnsTable,
7+
Charts,
8+
PrevalentTaxa,
9+
Timescales,
10+
} from "~/components/lex";
311

412
export function Page() {
513
const { resData, colData, taxaData, refs } = useData();
614

7-
return LexItemPage({
8-
id: resData.int_id,
9-
header: "intervals",
10-
resData,
11-
colData,
12-
taxaData,
13-
refs,
14-
});
15+
const id = resData.int_id;
16+
const features = colData?.features || [];
17+
const timescales = resData?.timescales || [];
18+
19+
const children = [
20+
h(Intervals, { resData }),
21+
h(ColumnsTable, {
22+
resData,
23+
colData,
24+
}),
25+
h(Charts, { features }),
26+
h(PrevalentTaxa, { taxaData }),
27+
h(Timescales, { timescales }),
28+
];
29+
30+
return LexItemPage({ children, id, refs, resData, siftLink: "interval" });
1531
}

pages/lex/lithology/@id/+Page.ts

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
import { useData } from "vike-react/useData";
2-
import { LexItemPage } from "~/components/lex";
2+
import h from "@macrostrat/hyper";
3+
import {
4+
LexItemPage,
5+
ColumnsTable,
6+
Charts,
7+
PrevalentTaxa,
8+
Timescales,
9+
} from "~/components/lex";
310

411
export function Page() {
512
const { resData, colData, taxaData, refs } = useData();
613

7-
return LexItemPage({
8-
id: resData.lith_id,
9-
header: "lithologies",
10-
resData,
11-
colData,
12-
taxaData,
13-
refs,
14-
});
14+
const id = resData.lith_id;
15+
const features = colData?.features || [];
16+
const timescales = resData?.timescales || [];
17+
18+
const children = [
19+
h(ColumnsTable, {
20+
resData,
21+
colData,
22+
}),
23+
h(Charts, { features }),
24+
h(PrevalentTaxa, { taxaData }),
25+
h(Timescales, { timescales }),
26+
];
27+
28+
return LexItemPage({ children, id, refs, resData, siftLink: "lithology" });
1529
}

pages/lex/strat-name-concepts/+Page.client.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,20 @@ import { ContentPage } from "~/layouts";
55
export function Page() {
66
return h(ContentPage, [
77
h(PageBreadcrumbs),
8-
h(
9-
"h2",
10-
"Stratigraphic names are the names of rock units, organized hierarchically."
11-
),
12-
h(
13-
"h2",
14-
"Stratigraphic concepts capture relationships between differently-named rock units."
15-
),
8+
h("div.names", [
9+
h("h2", "Stratigraphic Names"),
10+
h("p", [
11+
h("em", "Stratigraphic names"),
12+
" are the names of rock units, organized hierarchically.",
13+
]),
14+
]),
15+
h("div.concepts", [
16+
h("h2", "Stratigraphic Concepts"),
17+
h("p", [
18+
h("em", "Stratigraphic concepts"),
19+
" capture the complexity associated with the usage of stratigraphic names over a long period of time by many workers. A concept establishes a set of stratigraphic names that describe the same rock unit.",
20+
]),
21+
]),
1622
h(
1723
"h2",
1824
h(
Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,57 @@
11
import { useData } from "vike-react/useData";
2-
import { LexItemPage } from "~/components/lex";
2+
import h from "./main.module.sass";
3+
import { LexItemPage, ConceptInfo, Charts } from "~/components/lex";
4+
import { StratTag } from "~/components/general";
5+
import { LinkCard } from "~/components/cards";
36

47
export function Page() {
5-
const { resData, colData, taxaData, refs } = useData();
8+
const { resData, refs } = useData();
9+
10+
const id = resData.concept_id;
11+
12+
const { name } = resData;
13+
14+
const children = [
15+
h(ConceptInfo, { concept_id: id, showHeader: false }),
16+
h(ConceptBody, { resData }),
17+
];
618

719
return LexItemPage({
8-
id: resData.concept_id,
9-
header: "strat_name_concepts",
10-
resData,
11-
colData,
12-
taxaData,
20+
children,
21+
id,
1322
refs,
23+
resData,
24+
siftLink: "strat_name_concept",
25+
header: h("div.concept-header", [
26+
h("h1.concept-title", name),
27+
h(StratTag, { isConcept: true, fontSize: "1.6em" }),
28+
]),
1429
});
1530
}
31+
32+
function ConceptBody({ resData }) {
33+
let { strat_names, strat_ids, strat_ranks } = resData;
34+
35+
const stratNames = strat_names ? strat_names.split(",") : [];
36+
const stratIds = strat_ids ? strat_ids.split(",") : [];
37+
const stratRanks = strat_ranks ? strat_ranks.split(",") : [];
38+
const strats = stratNames.map((name, i) => ({
39+
name,
40+
id: stratIds[i],
41+
rank: stratRanks[i],
42+
}));
43+
44+
return h("div.concept-body", [
45+
h("h2.strat-names", "Strat Names"),
46+
h(
47+
"ul.strat-name-list",
48+
strats.map((strat) =>
49+
h(
50+
LinkCard,
51+
{ href: "/lex/strat-names/" + strat.id, className: "strat-name" },
52+
strat.name + " (" + strat.rank + ")"
53+
)
54+
)
55+
),
56+
]);
57+
}
Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
1-
import { pbdbDomain } from "@macrostrat-web/settings";
1+
import { apiDomain, apiV2Prefix } from "@macrostrat-web/settings";
22
import { fetchAPIData, fetchAPIRefs } from "~/_utils";
33

44
export async function data(pageContext) {
55
const concept_id = parseInt(pageContext.urlParsed.pathname.split("/")[3]);
66

77
// Await all API calls
8-
const [resData, colData, refs1, refs2] = await Promise.all([
9-
fetchAPIData("/defs/strat_name_concepts", { concept_id }),
10-
fetchAPIData("/columns", {
11-
concept_id,
12-
response: "long",
13-
format: "geojson",
14-
}),
8+
const [resData, refs1, refs2] = await Promise.all([
9+
fetch(
10+
`${apiDomain}/api/pg/strat_concepts_with_names?concept_id=eq.` +
11+
concept_id
12+
).then((res) => res.json()),
1513
fetchAPIRefs("/fossils", { concept_id }),
1614
fetchAPIRefs("/columns", { concept_id }),
1715
]);
@@ -20,17 +18,5 @@ export async function data(pageContext) {
2018
const refValues2 = refs2 ? Object.values(refs2) : [];
2119
const refs = [...refValues1, ...refValues2];
2220

23-
const cols = colData?.features
24-
?.map((feature) => feature.properties.col_id)
25-
?.join(",");
26-
27-
let taxaData = null;
28-
if (cols) {
29-
const response = await fetch(
30-
`${pbdbDomain}/data1.2/occs/prevalence.json?limit=5&coll_id=${cols}`
31-
);
32-
taxaData = await response.json();
33-
}
34-
35-
return { resData: resData[0], colData, taxaData, refs };
21+
return { resData: resData[0], refs };
3622
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.concept-header
2+
display: flex
3+
gap: .5em

0 commit comments

Comments
 (0)