From fd21264e91b092ebee8e2f49b71effe2f70fa939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Sp=C3=B6ttel?= <1682504+fspoettel@users.noreply.github.com> Date: Sat, 15 Jun 2024 13:08:50 +0200 Subject: [PATCH] feat: highlight active filters --- src/components/filters/primitives/filter-container.tsx | 1 + src/components/ui/collapsible.module.css | 8 ++++++++ src/components/ui/collapsible.tsx | 4 +++- src/pages/deck-create/deck-create-choose-investigator.tsx | 3 +++ src/pages/deck-create/deck-create.module.css | 2 ++ src/pages/deck-create/deck-create.tsx | 3 +++ src/pages/deck-view/deck-view.module.css | 6 ++++-- src/pages/deck-view/sidebar/sidebar.module.css | 1 - 8 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/components/filters/primitives/filter-container.tsx b/src/components/filters/primitives/filter-container.tsx index e56fbd26..990229d6 100644 --- a/src/components/filters/primitives/filter-container.tsx +++ b/src/components/filters/primitives/filter-container.tsx @@ -49,6 +49,7 @@ export function FilterContainer({ open={open} sub={alwaysShowFilterString || !open ? filterString || "All" : undefined} title={title} + variant={filterString && filterString !== "All" ? "active" : undefined} > {nonCollapsibleContent} {children} diff --git a/src/components/ui/collapsible.module.css b/src/components/ui/collapsible.module.css index e193f58c..4ab595a0 100644 --- a/src/components/ui/collapsible.module.css +++ b/src/components/ui/collapsible.module.css @@ -2,10 +2,18 @@ padding: 0.5rem; border: 1px solid transparent; border-radius: var(--rounded); + + &.active { + border-color: var(--nord-6); + } } .collapsible[data-state="open"] { border: 1px solid rgba(255, 255, 255, 0.05); + + &.active { + border-color: var(--nord-6); + } } .collapsible > * + * { diff --git a/src/components/ui/collapsible.tsx b/src/components/ui/collapsible.tsx index cacaafcf..23a44e6b 100644 --- a/src/components/ui/collapsible.tsx +++ b/src/components/ui/collapsible.tsx @@ -18,6 +18,7 @@ type Props = Omit & { sub?: React.ReactNode; title: React.ReactNode; header?: React.ReactNode; + variant?: "active"; }; export function Collapsible({ @@ -29,12 +30,13 @@ export function Collapsible({ sub, title, header, + variant, ...rest }: Props) { return ( diff --git a/src/pages/deck-create/deck-create-choose-investigator.tsx b/src/pages/deck-create/deck-create-choose-investigator.tsx index 52475e10..b5e5f528 100644 --- a/src/pages/deck-create/deck-create-choose-investigator.tsx +++ b/src/pages/deck-create/deck-create-choose-investigator.tsx @@ -5,6 +5,7 @@ import { Filters } from "@/components/filters/filters"; import { Button } from "@/components/ui/button"; import { ListLayout } from "@/layouts/list-layout"; import { useStore } from "@/store"; +import { useDocumentTitle } from "@/utils/use-document-title"; import { useGoBack } from "@/utils/useBack"; import { DeckCollection } from "../browse/deck-collection/deck-collection"; @@ -16,6 +17,8 @@ function DeckCreateChooseInvestigator() { const resetFilters = useStore((state) => state.resetFilters); const setActiveList = useStore((state) => state.setActiveList); + useDocumentTitle("Choose investigator"); + useEffect(() => { setActiveList("create_deck"); return () => { diff --git a/src/pages/deck-create/deck-create.module.css b/src/pages/deck-create/deck-create.module.css index f27ab3a9..f5370867 100644 --- a/src/pages/deck-create/deck-create.module.css +++ b/src/pages/deck-create/deck-create.module.css @@ -91,6 +91,8 @@ .editor-nav { padding: 0.25rem; + display: flex; + gap: 0.5rem; } .card-selections { diff --git a/src/pages/deck-create/deck-create.tsx b/src/pages/deck-create/deck-create.tsx index f0eaeedd..a45e1b8a 100644 --- a/src/pages/deck-create/deck-create.tsx +++ b/src/pages/deck-create/deck-create.tsx @@ -2,6 +2,7 @@ import { useEffect } from "react"; import { useParams } from "wouter"; import { useStore } from "@/store"; +import { useDocumentTitle } from "@/utils/use-document-title"; import { DeckCreateInner } from "./deck-create-inner"; @@ -12,6 +13,8 @@ function DeckCreate() { const destroy = useStore((state) => state.resetCreate); const initialize = useStore((state) => state.initCreate); + useDocumentTitle("Create deck"); + useEffect(() => { initialize(code); return () => { diff --git a/src/pages/deck-view/deck-view.module.css b/src/pages/deck-view/deck-view.module.css index 99884f66..75fa9e98 100644 --- a/src/pages/deck-view/deck-view.module.css +++ b/src/pages/deck-view/deck-view.module.css @@ -7,7 +7,6 @@ grid-template-areas: "header" "sidebar" - "description" "decklist"; padding-bottom: 1rem; @@ -16,7 +15,6 @@ grid-template-columns: 24rem 1fr; grid-template-areas: "sidebar header" - "sidebar description" "sidebar decklist"; grid-template-rows: min-content min-content 1fr; } @@ -36,6 +34,10 @@ .content { grid-area: decklist; + + & > * + * { + margin-top: 1rem; + } } .floating { diff --git a/src/pages/deck-view/sidebar/sidebar.module.css b/src/pages/deck-view/sidebar/sidebar.module.css index 0161a58b..f57c8c91 100644 --- a/src/pages/deck-view/sidebar/sidebar.module.css +++ b/src/pages/deck-view/sidebar/sidebar.module.css @@ -15,7 +15,6 @@ flex-flow: row wrap; gap: 1rem; list-style: none; - margin-top: 1rem; } .detail {