From 330cce7a7e4591433d343226d713210b00ec069f Mon Sep 17 00:00:00 2001
From: Alicia Sykes
Date: Thu, 29 Feb 2024 21:52:44 +0000
Subject: [PATCH] Updates service lists props, adds new route for viewing
listing
---
web/src/components/form/Button.astro | 8 +-
web/src/components/form/FontAwesome.svelte | 11 +
web/src/components/scafold/MainCard.astro | 1 +
web/src/components/things/Comments.svelte | 32 +-
web/src/components/things/Search.svelte | 2 +-
web/src/components/things/ServiceList.astro | 39 +-
.../components/things/SmartSuggestions.svelte | 2 +-
web/src/layouts/Layout.astro | 2 +-
web/src/pages/[...listing].astro | 352 ++++++++++++++++++
web/src/pages/[...section].astro | 2 +-
web/src/pages/about.astro | 20 +-
web/src/pages/all.astro | 3 +-
web/src/pages/search/index.astro | 11 +
web/src/styles/values.css | 2 +
web/src/types/Service.ts | 1 +
web/src/utils/fetch-data.ts | 2 +-
16 files changed, 452 insertions(+), 38 deletions(-)
create mode 100644 web/src/pages/[...listing].astro
diff --git a/web/src/components/form/Button.astro b/web/src/components/form/Button.astro
index 4f9a365..f0174cd 100644
--- a/web/src/components/form/Button.astro
+++ b/web/src/components/form/Button.astro
@@ -1,10 +1,14 @@
---
-const { text, url } = Astro.props;
+const {
+ text,
+ url,
+ className,
+} = Astro.props;
---
-
+
diff --git a/web/src/components/form/FontAwesome.svelte b/web/src/components/form/FontAwesome.svelte
index 835ca43..3af7980 100644
--- a/web/src/components/form/FontAwesome.svelte
+++ b/web/src/components/form/FontAwesome.svelte
@@ -18,6 +18,17 @@
owner: solidIcons.faUser,
language: solidIcons.faFileCode,
+ download: solidIcons.faDownload,
+ faceGood: solidIcons.faSmile,
+ faceMeh: solidIcons.faMeh,
+ faceBad: solidIcons.faFrown,
+
+ // Website Detailed Stats
+ blacklistFound: solidIcons.faDoNotEnter,
+ blacklistNotFound: solidIcons.faShieldCheck,
+ redirectFound: solidIcons.faDiamondTurnRight,
+ redirectNotFound: solidIcons.faSquareCheck,
+
// Meta info icons
openSource: brands.faOsi,
closedSource: solidIcons.faHexagonExclamation,
diff --git a/web/src/components/scafold/MainCard.astro b/web/src/components/scafold/MainCard.astro
index 5e1cc92..d0b1b97 100644
--- a/web/src/components/scafold/MainCard.astro
+++ b/web/src/components/scafold/MainCard.astro
@@ -13,5 +13,6 @@
border: 2px solid var(--foreground);
box-shadow: 6px 6px 0 var(--foreground);
background: var(--accent-fg);
+ position: relative;
}
diff --git a/web/src/components/things/Comments.svelte b/web/src/components/things/Comments.svelte
index 52f5ccc..c588be3 100644
--- a/web/src/components/things/Comments.svelte
+++ b/web/src/components/things/Comments.svelte
@@ -1,23 +1,19 @@
diff --git a/web/src/components/things/Search.svelte b/web/src/components/things/Search.svelte
index 0f0799d..2b74b1a 100644
--- a/web/src/components/things/Search.svelte
+++ b/web/src/components/things/Search.svelte
@@ -23,7 +23,7 @@
if (!cat) return '/'
if (!sec) return `/${slugify(cat)}`
if (!itm) return `/${slugify(cat)}/${slugify(sec)}`
- return `/${slugify(cat)}/${slugify(sec)}#${slugify(itm)}`;
+ return `/${slugify(cat)}/${slugify(sec)}/${slugify(itm)}`;
};
const makeResultText = (cat?: string, sec?: string, itm?: string) => {
diff --git a/web/src/components/things/ServiceList.astro b/web/src/components/things/ServiceList.astro
index 35e4dc5..77487fa 100644
--- a/web/src/components/things/ServiceList.astro
+++ b/web/src/components/things/ServiceList.astro
@@ -8,7 +8,23 @@ import { slugify } from '@utils/fetch-data';
import GitHubMetrics from '@components/things/ItemGitHubMetrics.astro';
-const { services, subHeading, buttonLink, noGitHubMetrics } = Astro.props;
+interface Props {
+ services: Service[];
+ subHeading?: boolean;
+ buttonLink?: string;
+ noGitHubMetrics?: boolean;
+ sectionName: string;
+ categoryName: string;
+}
+
+const {
+ services,
+ subHeading,
+ buttonLink,
+ noGitHubMetrics,
+ sectionName,
+ categoryName,
+} = Astro.props;
---
@@ -36,6 +52,9 @@ const { services, subHeading, buttonLink, noGitHubMetrics } = Astro.props;
{services.map((service: Service) => (
-
+
+
+
![]()
) }
+
@@ -101,7 +123,7 @@ const { services, subHeading, buttonLink, noGitHubMetrics } = Astro.props;
)}
- {buttonLink && ( )}
+ {buttonLink && ( )}
@@ -217,7 +239,18 @@ const { services, subHeading, buttonLink, noGitHubMetrics } = Astro.props;
}
}
-section :global(.button) {
+.view-service {
+ a {
+ padding: 0.25rem 0.6rem;
+ color: var(--accent-3);
+ width: fit-content;
+ position: absolute;
+ right: 1rem;
+ transform: scale(0.8);
+ }
+}
+
+section :global(.view-all) {
width: fit-content;
position: absolute;
right: 1rem;
diff --git a/web/src/components/things/SmartSuggestions.svelte b/web/src/components/things/SmartSuggestions.svelte
index a306367..67d5f3c 100644
--- a/web/src/components/things/SmartSuggestions.svelte
+++ b/web/src/components/things/SmartSuggestions.svelte
@@ -28,7 +28,7 @@
(category.sections || []).forEach((section) => {
(section.services || []).forEach((service) => {
if (fetchedServices.includes(normalize(service.name))) {
- const path = `/${slugify(category.name)}/${slugify(section.name)}#${slugify(service.name)}`
+ const path = `/${slugify(category.name)}/${slugify(section.name)}/${slugify(service.name)}`
tmpResults.push({ ...service, path });
return;
}
diff --git a/web/src/layouts/Layout.astro b/web/src/layouts/Layout.astro
index 331640f..9f659e9 100644
--- a/web/src/layouts/Layout.astro
+++ b/web/src/layouts/Layout.astro
@@ -57,7 +57,7 @@ const {
-