diff --git a/package.json b/package.json
index 731b381..b6a7945 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
},
"dependencies": {
"@iconify-json/material-symbols": "^1.1.82",
+ "@iconify-json/simple-icons": "^1.1.109",
"@kobalte/core": "^0.13.3",
"@solidjs/router": "^0.13.6",
"@solidjs/start": "^1.0.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 17fcfb1..9bca235 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@iconify-json/material-symbols':
specifier: ^1.1.82
version: 1.1.82
+ '@iconify-json/simple-icons':
+ specifier: ^1.1.109
+ version: 1.1.109
'@kobalte/core':
specifier: ^0.13.3
version: 0.13.3(solid-js@1.8.18)
@@ -500,6 +503,9 @@ packages:
'@iconify-json/material-symbols@1.1.82':
resolution: {integrity: sha512-E67LgMFiAbEVF7rE38ulZU6NeXcPvayFF4hUUqt3g33tWrLsDNqEFTSsPt03l34rH5uGGtHIakTqtBlZ+/hRkw==}
+ '@iconify-json/simple-icons@1.1.109':
+ resolution: {integrity: sha512-vIhIJQDdbS5R6kSyIHVBRCaR2jiFjVlbVtB4PAoLjQL45vJRHMTwkrFa536XcX7yW69HbQkoanydcyDjknI6pw==}
+
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
@@ -3634,6 +3640,10 @@ snapshots:
dependencies:
'@iconify/types': 2.0.0
+ '@iconify-json/simple-icons@1.1.109':
+ dependencies:
+ '@iconify/types': 2.0.0
+
'@iconify/types@2.0.0': {}
'@iconify/utils@2.1.25':
diff --git a/src/components/Chip.tsx b/src/components/Chip.tsx
index f5dc333..c6dee38 100644
--- a/src/components/Chip.tsx
+++ b/src/components/Chip.tsx
@@ -8,20 +8,26 @@ const Chip: ParentComponent<{
classList?: {
[k: string]: boolean | undefined;
};
+ href?: string;
}> = (props) => {
return (
-
{props.children}
-
+
);
};
diff --git a/src/components/Nav.tsx b/src/components/Nav.tsx
index 6b1938c..d87c286 100644
--- a/src/components/Nav.tsx
+++ b/src/components/Nav.tsx
@@ -21,6 +21,9 @@ export default function Nav() {
Servers
+
+ Releases
+
diff --git a/src/initdata.js b/src/initdata.js
index 4eaac72..6fad254 100644
--- a/src/initdata.js
+++ b/src/initdata.js
@@ -145,20 +145,6 @@ const fetchServerInfo = async (domain) => {
// A server is considered outdated if a newer version has been available for more than 30 days.
const releaseIndex = releases.findIndex((v) => v.version === version);
- console.log(
- releaseIndex,
- version,
- releases[releaseIndex].version,
- releases[releaseIndex].publishedAt,
- );
- if (releaseIndex > 0) {
- console.log(
- Date.now() - Date.parse(releases[releaseIndex - 1].publishedAt),
- releases[releaseIndex - 1].publishedAt,
- Date.now() - Date.parse(releases[releaseIndex - 1].publishedAt) >
- 1000 * 60 * 60 * 24 * 30,
- );
- }
const versionOutdated =
releaseIndex > 0 &&
Date.now() - Date.parse(releases[releaseIndex - 1].publishedAt) >
diff --git a/src/routes/releases.tsx b/src/routes/releases.tsx
index ee008be..e739d2a 100644
--- a/src/routes/releases.tsx
+++ b/src/routes/releases.tsx
@@ -1,6 +1,66 @@
+import { For } from 'solid-js';
+import releasesJson from '../../.output/data/releases.json';
+import {
+ Accordion,
+ AccordionContent,
+ AccordionItem,
+ AccordionTrigger,
+} from '~/components/ui/accordion';
+import Markdown from '~/components/Markdown';
+import SimpleIconsGithub from '~icons/simple-icons/github';
+import { useSearchParams } from '@solidjs/router';
+
+const releases = releasesJson as Release[];
+
export interface Release {
version: string;
publishedAt: string;
githubUrl: string;
body: string;
}
+
+export default function ReleasesPage() {
+ const [searchParams] = useSearchParams();
+
+ return (
+
+
+
+
+
+
+
+ {(release) => (
+
+
+
+ {release.version}
+
+ {new Date(release.publishedAt).toLocaleDateString()}
+
+
+
+
+
+
+
+ {release.body}
+
+
+ )}
+
+
+
+ );
+}
diff --git a/src/routes/servers.tsx b/src/routes/servers.tsx
index d383ac3..246b407 100644
--- a/src/routes/servers.tsx
+++ b/src/routes/servers.tsx
@@ -118,6 +118,17 @@ export default function ServersPage() {
+
Mbin {server.version}