diff --git a/packages/app/src/pages/home/home-projects-view.tsx b/packages/app/src/pages/home/home-projects-view.tsx
index 2cd70594ef3..76b755547ec 100644
--- a/packages/app/src/pages/home/home-projects-view.tsx
+++ b/packages/app/src/pages/home/home-projects-view.tsx
@@ -36,6 +36,7 @@ export type HomeProjectsViewProps = {
projectsForServer: (server: ServerConnection.Any) => LocalProject[]
recentForServer: (server: ServerConnection.Any) => LocalProject[]
showRecentForServer: (server: ServerConnection.Any) => boolean
+ onDismissRecent: (server: ServerConnection.Any) => void
homedirForServer: (server: ServerConnection.Any) => string
collapsed: (server: ServerConnection.Any) => boolean
canDefaultServer: boolean
@@ -115,7 +116,7 @@ export function HomeProjectsView(props: HomeProjectsViewProps) {
{...contextMenuProps}
server={props.servers[0]}
projects={props.projects}
- items={props.recentForServer(props.servers[0])}
+ items={props.showRecentForServer(props.servers[0]) ? props.recentForServer(props.servers[0]) : []}
/>
}
>
@@ -132,7 +133,7 @@ export function HomeProjectsView(props: HomeProjectsViewProps) {
const healthy = () => !!props.serverHealth(item)?.healthy
const hasProjects = () => projects().length > 0
const showRecent = () => props.showRecentForServer(item)
- const hasChildren = () => hasProjects() || recent().length > 0
+ const hasChildren = () => hasProjects() || (showRecent() && recent().length > 0)
const collapsed = () => props.collapsed(item)
return (
@@ -155,7 +156,7 @@ export function HomeProjectsView(props: HomeProjectsViewProps) {
{...contextMenuProps}
server={item}
projects={projects()}
- items={recent()}
+ items={showRecent() ? recent() : []}
/>
}
>
@@ -435,8 +436,19 @@ function HomeProjectEmpty(
{props.language.t("home.project.add")}
0}>
-
+
{props.language.t("home.recentlyClosed")}
+
+ }
+ aria-label={props.language.t("common.dismiss")}
+ onClick={() => props.onDismissRecent(props.server)}
+ />
+
{(project) => }
diff --git a/packages/app/src/pages/home/home-projects.tsx b/packages/app/src/pages/home/home-projects.tsx
index d7397986524..3d3e73736f1 100644
--- a/packages/app/src/pages/home/home-projects.tsx
+++ b/packages/app/src/pages/home/home-projects.tsx
@@ -2,11 +2,14 @@ import type { HomeProjectsController } from "./home-projects-controller"
import { HomeProjectsView } from "./home-projects-view"
import type { HomeScrollController } from "./home-scroll-controller"
import { ServerConnection } from "@/context/servers"
+import { createStore } from "solid-js/store"
export function HomeProjects(props: { projects: HomeProjectsController; scroll: HomeScrollController }) {
const recentMode = new Map()
+ const [dismissedRecent, setDismissedRecent] = createStore({} as Record)
const showRecentForServer = (server: ServerConnection.Any) => {
const key = ServerConnection.key(server)
+ if (dismissedRecent[key]) return false
if (recentMode.get(key)) return true
if (props.projects.server.projects(server).length > 0) return false
recentMode.set(key, true)
@@ -23,6 +26,7 @@ export function HomeProjects(props: { projects: HomeProjectsController; scroll:
projectsForServer={props.projects.server.projects}
recentForServer={props.projects.project.recentForServer}
showRecentForServer={showRecentForServer}
+ onDismissRecent={(server) => setDismissedRecent(ServerConnection.key(server), true)}
homedirForServer={props.projects.project.homedirForServer}
collapsed={props.projects.server.collapsed}
canDefaultServer={props.projects.server.canDefault()}