summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components
diff options
context:
space:
mode:
authorDavid Hill <[email protected]>2026-03-17 19:54:14 +0000
committerGitHub <[email protected]>2026-03-17 19:54:14 +0000
commit7daea69e13e5a17278fe244273fdeb141b0369d6 (patch)
tree4d421611992fb686a052b72ff928711f6805dc35 /packages/app/src/components
parent0772a9591807d15c369c37edc01b9018bdc6e7d1 (diff)
downloadopencode-7daea69e13e5a17278fe244273fdeb141b0369d6.tar.gz
opencode-7daea69e13e5a17278fe244273fdeb141b0369d6.zip
tweak(ui): add an empty state to the sidebar when no projects (#17971)
Co-authored-by: Shoubhit Dash <[email protected]>
Diffstat (limited to 'packages/app/src/components')
-rw-r--r--packages/app/src/components/titlebar.tsx63
1 files changed, 33 insertions, 30 deletions
diff --git a/packages/app/src/components/titlebar.tsx b/packages/app/src/components/titlebar.tsx
index 345903420..77de1a73c 100644
--- a/packages/app/src/components/titlebar.tsx
+++ b/packages/app/src/components/titlebar.tsx
@@ -77,6 +77,7 @@ export function Titlebar() {
const canBack = createMemo(() => history.index > 0)
const canForward = createMemo(() => history.index < history.stack.length - 1)
+ const hasProjects = createMemo(() => layout.projects.list().length > 0)
const back = () => {
const next = backPath(history)
@@ -251,36 +252,38 @@ export function Titlebar() {
</div>
</div>
</Show>
- <div
- class="flex items-center gap-0 transition-transform"
- classList={{
- "translate-x-0": !layout.sidebar.opened(),
- "-translate-x-[36px]": layout.sidebar.opened(),
- "duration-180 ease-out": !layout.sidebar.opened(),
- "duration-180 ease-in": layout.sidebar.opened(),
- }}
- >
- <Tooltip placement="bottom" value={language.t("common.goBack")} openDelay={2000}>
- <Button
- variant="ghost"
- icon="chevron-left"
- class="titlebar-icon w-6 h-6 p-0 box-border"
- disabled={!canBack()}
- onClick={back}
- aria-label={language.t("common.goBack")}
- />
- </Tooltip>
- <Tooltip placement="bottom" value={language.t("common.goForward")} openDelay={2000}>
- <Button
- variant="ghost"
- icon="chevron-right"
- class="titlebar-icon w-6 h-6 p-0 box-border"
- disabled={!canForward()}
- onClick={forward}
- aria-label={language.t("common.goForward")}
- />
- </Tooltip>
- </div>
+ <Show when={hasProjects()}>
+ <div
+ class="flex items-center gap-0 transition-transform"
+ classList={{
+ "translate-x-0": !layout.sidebar.opened(),
+ "-translate-x-[36px]": layout.sidebar.opened(),
+ "duration-180 ease-out": !layout.sidebar.opened(),
+ "duration-180 ease-in": layout.sidebar.opened(),
+ }}
+ >
+ <Tooltip placement="bottom" value={language.t("common.goBack")} openDelay={2000}>
+ <Button
+ variant="ghost"
+ icon="chevron-left"
+ class="titlebar-icon w-6 h-6 p-0 box-border"
+ disabled={!canBack()}
+ onClick={back}
+ aria-label={language.t("common.goBack")}
+ />
+ </Tooltip>
+ <Tooltip placement="bottom" value={language.t("common.goForward")} openDelay={2000}>
+ <Button
+ variant="ghost"
+ icon="chevron-right"
+ class="titlebar-icon w-6 h-6 p-0 box-border"
+ disabled={!canForward()}
+ onClick={forward}
+ aria-label={language.t("common.goForward")}
+ />
+ </Tooltip>
+ </div>
+ </Show>
</div>
</div>
<div id="opencode-titlebar-left" class="flex items-center gap-3 min-w-0 px-2" />