diff --git a/src/views/pds.tsx b/src/views/pds.tsx index b36ff3e..3c82bbb 100644 --- a/src/views/pds.tsx +++ b/src/views/pds.tsx @@ -4,7 +4,7 @@ import { InferXRPCBodyOutput } from "@atcute/lexicons"; import * as TID from "@atcute/tid"; import { A, useLocation, useParams } from "@solidjs/router"; import { createWindowVirtualizer } from "@tanstack/solid-virtual"; -import { createResource, createSignal, For, Show } from "solid-js"; +import { createEffect, createResource, createSignal, For, on, onCleanup, Show } from "solid-js"; import { Button } from "../components/button"; import DidHoverCard from "../components/hover-card/did"; import { setPDS } from "../components/navbar"; @@ -19,13 +19,27 @@ const RepoCard = (props: { onToggle: () => void; }) => { const expanded = () => props.expanded; + const [collapsing, setCollapsing] = createSignal(false); + + createEffect( + on(expanded, (curr, prev) => { + if (prev && !curr) { + setCollapsing(true); + const t = setTimeout(() => setCollapsing(false), 250); + onCleanup(() => clearTimeout(t)); + } + }), + ); + + const animating = () => expanded() || collapsing(); return (
@@ -37,7 +51,7 @@ const RepoCard = (props: { > @@ -65,7 +79,7 @@ const RepoCard = (props: {
{ left: 0, width: "100%", overflow: "visible", + "transition-property": "z-index", + "transition-delay": isExpanded() ? "0ms" : "250ms", }} >