Skip to content

Commit 86696aa

Browse files
committed
update version filter to supported in
1 parent e40fb01 commit 86696aa

File tree

1 file changed

+34
-18
lines changed

1 file changed

+34
-18
lines changed

src/components/docs/DocsFilters.astro

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import docs from "../../assets/docs/docs.json";
66
const latest = docs.skriptVersion.match(/\d+\.(\d+)/)!!;
77
const latestMinor = parseInt(latest[1], 10)!! - 1;
88
9-
let versions = [latest[0] + " (New)"];
10-
for (let i = latestMinor; i > latestMinor - 4; i--) {
9+
const versions = [];
10+
for (let i = latestMinor + 1; i > latestMinor - 4; i--) {
1111
versions.push(`2.${i}`);
1212
}
1313
@@ -48,17 +48,22 @@ for (let i = latestMinor; i > latestMinor - 4; i--) {
4848

4949
export interface Filter {
5050
types: string[];
51-
versions: string[];
51+
version: string;
5252
}
5353

54-
let filter: Filter = {types: [], versions: []}
54+
let filter: Filter = {types: [], version: ""};
5555

5656
function handleClick(button: HTMLButtonElement) {
57+
const text = button.textContent!!.trim();
5758
const isType = button.getAttribute("data-type") === "type";
5859
if (isType) {
59-
toggle(filter.types, button.textContent!!.trim());
60+
toggle(filter.types, text);
6061
} else {
61-
toggle(filter.versions, button.textContent!!.trim());
62+
if (text === filter.version) {
63+
filter.version = "";
64+
} else {
65+
filter.version = text;
66+
}
6267
}
6368

6469
// update rest of buttons
@@ -68,7 +73,7 @@ for (let i = latestMinor; i > latestMinor - 4; i--) {
6873
if (button.getAttribute("data-type") === "type") {
6974
match = filter.types.includes(button.textContent!!.trim());
7075
} else {
71-
match = filter.versions.includes(button.textContent!!.trim());
76+
match = filter.version === button.textContent!!.trim();
7277
}
7378

7479
if (match) {
@@ -102,24 +107,31 @@ for (let i = latestMinor; i > latestMinor - 4; i--) {
102107

103108
element.classList.add("hidden-by-type");
104109
} else {
105-
if (filter.versions.length === 0) {
110+
if (filter.version === "") {
106111
element.classList.remove("hidden-by-version");
107112
return;
108113
}
109114

110-
if (filter.versions.find(it => it.includes("New")) && element.getAttribute("data-new") === "true") {
115+
if (filter.version.includes("New") && element.getAttribute("data-new") === "true") {
111116
element.classList.remove("hidden-by-version");
112117
return;
113118
}
114119

115-
for (const v of filter.versions) {
116-
if (element.getAttribute("data-since")?.includes(v)) {
117-
element.classList.remove("hidden-by-version");
118-
return;
119-
}
120+
const since = element.getAttribute("data-since");
121+
if (since === null) {
122+
element.classList.remove("hidden-by-version");
123+
return;
120124
}
121125

122-
element.classList.add("hidden-by-version");
126+
const minor = parseInt(filter.version.match(/\d+\.(\d+)/)!![1], 10);
127+
since.matchAll(/\d+\.(\d+)/g).forEach((match) => {
128+
const otherMinor = parseInt(match[1], 10);
129+
130+
if (otherMinor > minor) {
131+
element.classList.add("hidden-by-version");
132+
return;
133+
}
134+
});
123135
}
124136
});
125137
}
@@ -169,7 +181,6 @@ for (let i = latestMinor; i > latestMinor - 4; i--) {
169181
filters.style.top = `${document.getElementById("nav")!!.offsetHeight}px`;
170182
}
171183

172-
173184
updatePosition();
174185
window.addEventListener("DOMContentLoaded", () => {
175186
updatePosition();
@@ -214,9 +225,14 @@ for (let i = latestMinor; i > latestMinor - 4; i--) {
214225
)}
215226
</div>
216227

217-
<h3>Version</h3>
228+
<h3>Supported in</h3>
218229
<div class="flex flex-wrap gap-2">
219-
{versions.map(x =>
230+
<button data-type="version" class="filter-button p-2 rounded-md text-center
231+
bg-skript text-white font-bold
232+
hover:cursor-pointer hover:opacity-80 transition">
233+
{versions[0]}
234+
</button>
235+
{versions.slice(1).map(x =>
220236
<button data-type="version" class="filter-button p-2 rounded-md text-center
221237
bg-l-bg-secondary dark:bg-d-bg-secondary
222238
hover:cursor-pointer hover:opacity-80 transition">

0 commit comments

Comments
 (0)