diff --git a/packages/web/src/app/[domain]/browse/[...path]/components/treePreviewPanel.tsx b/packages/web/src/app/[domain]/browse/[...path]/components/treePreviewPanel.tsx
index ada848eff..557e84dd3 100644
--- a/packages/web/src/app/[domain]/browse/[...path]/components/treePreviewPanel.tsx
+++ b/packages/web/src/app/[domain]/browse/[...path]/components/treePreviewPanel.tsx
@@ -1,10 +1,10 @@
-
import { Separator } from "@/components/ui/separator";
import { getRepoInfoByName } from "@/actions";
import { PathHeader } from "@/app/[domain]/components/pathHeader";
import { getFolderContents } from "@/features/fileTree/api";
import { isServiceError } from "@/lib/utils";
import { PureTreePreviewPanel } from "./pureTreePreviewPanel";
+import { FolderOpen } from "lucide-react";
interface TreePreviewPanelProps {
path: string;
@@ -26,6 +26,33 @@ export const TreePreviewPanel = async ({ path, repoName, revisionName }: TreePre
return
diff --git a/packages/web/src/features/fileTree/api.ts b/packages/web/src/features/fileTree/api.ts
index 6b5ab574f..5f2244ae3 100644
--- a/packages/web/src/features/fileTree/api.ts
+++ b/packages/web/src/features/fileTree/api.ts
@@ -39,6 +39,13 @@ export const getTree = async (params: { repoName: string, revisionName: string,
const normalizedPaths = paths.map(path => normalizePath(path));
+ // Verify that the revision is not empty
+ try{
+ await git.raw(["rev-parse","--verify",revisionName])
+ }catch(_error){
+ return {tree:{}}
+ }
+
let result: string = '';
try {
@@ -106,6 +113,13 @@ export const getFolderContents = async (params: { repoName: string, revisionName
}
const normalizedPath = normalizePath(path);
+ // Verify that the revision is not empty
+ try{
+ await git.raw(["rev-parse","--verify",revisionName])
+ } catch(_error){
+ return [];
+ }
+
let result: string;
try {
result = await git.raw([
diff --git a/packages/web/src/features/fileTree/components/fileTreePanel.tsx b/packages/web/src/features/fileTree/components/fileTreePanel.tsx
index 89696eba4..3221c1e06 100644
--- a/packages/web/src/features/fileTree/components/fileTreePanel.tsx
+++ b/packages/web/src/features/fileTree/components/fileTreePanel.tsx
@@ -13,6 +13,7 @@ import useCaptureEvent from "@/hooks/useCaptureEvent";
import { measure, unwrapServiceError } from "@/lib/utils";
import { useQuery } from "@tanstack/react-query";
import { SearchIcon } from "lucide-react";
+import { FolderOpen } from "lucide-react";
import { useCallback, useEffect, useRef, useState } from "react";
import { useHotkeys } from "react-hotkeys-hook";
import {
@@ -55,7 +56,7 @@ export const FileTreePanel = ({ order }: FileTreePanelProps) => {
paths: Array.from(openPaths),
})
), 'getTree');
-
+
captureEvent('wa_file_tree_loaded', {
durationMs: result.durationMs,
});
@@ -189,6 +190,12 @@ export const FileTreePanel = ({ order }: FileTreePanelProps) => {
+ ) : !data.tree.children || data.tree.children.length === 0 ? (
+
+
+
No files yet
+
This repository doesn't have any code yet
+
) : (
{
+ if (!nodes.children || nodes.children.length === 0) {
+ return null;
+ }
+
return (
<>
{nodes.children.map((node) => {