Skip to content

Commit 8455200

Browse files
committed
VersionBox component
1 parent 34da3fb commit 8455200

File tree

2 files changed

+76
-45
lines changed

2 files changed

+76
-45
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
import { MTA_CURRENT_VERSION } from "@src/content.constants";
3+
import { extractVersion, isVersionLE, renderRevisionLink } from "@src/utils/general";
4+
import ItemDescription from "./ItemDescription.astro";
5+
6+
interface Props {
7+
added?: string;
8+
updated?: string;
9+
removed?: string;
10+
}
11+
12+
const { added = "", updated = "", removed = "" } = Astro.props;
13+
14+
const addedVersion = extractVersion(added);
15+
const updatedVersion = extractVersion(updated);
16+
17+
const showAdded = !!addedVersion && isVersionLE(MTA_CURRENT_VERSION.full, addedVersion);
18+
const showUpdated = !!updatedVersion && isVersionLE(MTA_CURRENT_VERSION.full, updatedVersion);
19+
const showRemoved = !!removed;
20+
21+
const shouldShowBox = showRemoved || showAdded || showUpdated;
22+
---
23+
{
24+
!shouldShowBox ? (
25+
<ItemDescription>
26+
<slot/>
27+
</ItemDescription>
28+
) : (
29+
<div
30+
class={`added-updated-description-box${showRemoved ? " removed-box" : ""}`}
31+
>
32+
<div class="added-updated-description-box-header">
33+
<p>
34+
{showRemoved ? (
35+
<>
36+
<strong>Before</strong>{" "}
37+
<span set:html={renderRevisionLink(removed)} />
38+
</>
39+
) : (
40+
<>
41+
{showUpdated && (
42+
<strong>
43+
Updated in{" "}
44+
<span
45+
set:html={renderRevisionLink(updated)}
46+
/>
47+
</strong>
48+
)}
49+
50+
{showUpdated && showAdded && " | "}
51+
52+
{showAdded && (
53+
<strong>
54+
Added in{" "}
55+
<span
56+
set:html={renderRevisionLink(added)}
57+
/>
58+
</strong>
59+
)}
60+
</>
61+
)}
62+
</p>
63+
</div>
64+
65+
<div class="added-updated-description-box-body">
66+
<ItemDescription>
67+
<slot/>
68+
</ItemDescription>
69+
</div>
70+
</div>
71+
)
72+
}

web/src/pages/reference/[func].astro

Lines changed: 4 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import PreviewImages from '@src/components/PreviewImages.astro';
2020
import TemplateList from '@src/components/TemplateList.astro';
2121
2222
import { marked } from 'marked';
23+
import VersionBox from '@src/components/VersionBox.astro';
2324
2425
export async function getStaticPaths() {
2526
const functions = await getCollection('functions');
@@ -111,51 +112,9 @@ const oopList = Array.isArray(funcInfo.oop) ? funcInfo.oop : funcInfo.oop ? [fun
111112

112113
<!-- Description -->
113114
{funcInfo.version ? (() => {
114-
const CURRENT = MTA_CURRENT_VERSION.full;
115-
116-
const addedVersionRaw = funcInfo.version.added || "";
117-
const updatedVersionRaw = funcInfo.version.updated || "";
118-
const removedVersionRaw = funcInfo.version.removed || "";
119-
120-
const addedVersion = extractVersion(addedVersionRaw);
121-
const updatedVersion = extractVersion(updatedVersionRaw);
122-
123-
const showAdded = !!addedVersion && isVersionLE(CURRENT, addedVersion);
124-
const showUpdated = !!updatedVersion && isVersionLE(CURRENT, updatedVersion);
125-
const showRemoved = !!removedVersionRaw;
126-
127-
if (!showRemoved && !showAdded && !showUpdated) {
128-
return (
129-
<ItemDescription description={funcInfo.description} requiresReview={funcInfo.requiresReview} />
130-
);
131-
}
132-
133-
return (
134-
<div class={`added-updated-description-box${showRemoved ? " removed-box" : ""}`}>
135-
<div class="added-updated-description-box-header">
136-
<p>
137-
{showRemoved ? (
138-
<>
139-
<strong>Before</strong> <span set:html={renderRevisionLink(removedVersionRaw)} />
140-
</>
141-
) : (
142-
<>
143-
{showUpdated && (
144-
<strong>Updated in <span set:html={renderRevisionLink(updatedVersionRaw)} /></strong>
145-
)}
146-
{showUpdated && showAdded && ' | '}
147-
{showAdded && (
148-
<strong>Added in <span set:html={renderRevisionLink(addedVersionRaw)} /></strong>
149-
)}
150-
</>
151-
)}
152-
</p>
153-
</div>
154-
<div class="added-updated-description-box-body">
155-
<ItemDescription description={funcInfo.description} requiresReview={funcInfo.requiresReview} />
156-
</div>
157-
</div>
158-
);
115+
<VersionBox added={funcInfo.version.added || ""} updated={funcInfo.version.updated || ""} removed={funcInfo.version.removed || ""}>
116+
<ItemDescription description={funcInfo.description} requiresReview={funcInfo.requiresReview} />
117+
</VersionBox>
159118
})() : (
160119
<ItemDescription description={funcInfo.description} requiresReview={funcInfo.requiresReview} />
161120
)}

0 commit comments

Comments
 (0)