From 6d37abbd8d584c5f80cead01869daeabc65d1c0e Mon Sep 17 00:00:00 2001 From: scanash00 Date: Thu, 12 Feb 2026 02:57:48 -0900 Subject: [PATCH] not found page, some improvements to login page and trending --- backend/internal/db/tags.go | 26 +++----- web/src/App.tsx | 3 +- web/src/components/navigation/Sidebar.tsx | 3 - web/src/views/NotFound.tsx | 35 ++++++++++ web/src/views/auth/Login.tsx | 81 +++++++++++++---------- 5 files changed, 93 insertions(+), 55 deletions(-) create mode 100644 web/src/views/NotFound.tsx diff --git a/backend/internal/db/tags.go b/backend/internal/db/tags.go index 66381e2..225b4fe 100644 --- a/backend/internal/db/tags.go +++ b/backend/internal/db/tags.go @@ -11,53 +11,47 @@ func (db *DB) GetTrendingTags(limit int) ([]TrendingTag, error) { var query string if db.driver == "postgres" { query = ` - SELECT tag, SUM(cnt) as count FROM ( - SELECT value as tag, COUNT(*) as cnt + SELECT tag, COUNT(*) as count FROM ( + SELECT value as tag, author_did FROM annotations, json_array_elements_text(tags_json::json) as value WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > NOW() - INTERVAL '14 days' - GROUP BY tag UNION ALL - SELECT value as tag, COUNT(*) as cnt + SELECT value as tag, author_did FROM highlights, json_array_elements_text(tags_json::json) as value WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > NOW() - INTERVAL '14 days' - GROUP BY tag UNION ALL - SELECT value as tag, COUNT(*) as cnt + SELECT value as tag, author_did FROM bookmarks, json_array_elements_text(tags_json::json) as value WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > NOW() - INTERVAL '14 days' - GROUP BY tag ) combined GROUP BY tag - HAVING SUM(cnt) >= 2 + HAVING COUNT(DISTINCT author_did) >= 3 ORDER BY count DESC LIMIT $1 ` } else { query = ` - SELECT tag, SUM(cnt) as count FROM ( - SELECT json_each.value as tag, COUNT(*) as cnt + SELECT tag, COUNT(*) as count FROM ( + SELECT json_each.value as tag, author_did FROM annotations, json_each(annotations.tags_json) WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > datetime('now', '-14 days') - GROUP BY tag UNION ALL - SELECT json_each.value as tag, COUNT(*) as cnt + SELECT json_each.value as tag, author_did FROM highlights, json_each(highlights.tags_json) WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > datetime('now', '-14 days') - GROUP BY tag UNION ALL - SELECT json_each.value as tag, COUNT(*) as cnt + SELECT json_each.value as tag, author_did FROM bookmarks, json_each(bookmarks.tags_json) WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > datetime('now', '-14 days') - GROUP BY tag ) combined GROUP BY tag - HAVING SUM(cnt) >= 2 + HAVING COUNT(DISTINCT author_did) >= 3 ORDER BY count DESC LIMIT ? ` diff --git a/web/src/App.tsx b/web/src/App.tsx index aa896a0..8cee4fd 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -27,6 +27,7 @@ import { } from "./routes/wrappers"; import About from "./views/About"; import AdminModeration from "./views/core/AdminModeration"; +import NotFound from "./views/NotFound"; function UrlRedirect() { const [searchParams] = useSearchParams(); @@ -241,7 +242,7 @@ export default function App() { } /> - } /> + } /> ); diff --git a/web/src/components/navigation/Sidebar.tsx b/web/src/components/navigation/Sidebar.tsx index 5aaf863..484e4e4 100644 --- a/web/src/components/navigation/Sidebar.tsx +++ b/web/src/components/navigation/Sidebar.tsx @@ -87,9 +87,6 @@ export default function Sidebar() { className="px-3 hover:opacity-80 transition-opacity w-fit flex items-center gap-2.5" > Margin - - Margin -