-
+ {!isRaw && !query ? (
+
+ 🦗
+
+ ) : (
+
+ )}
{isRaw
? rawLoading
@@ -123,8 +130,11 @@ export function DashboardGrid({
(query ? "No matching raw files" : "No raw recordings yet")
: query
? "No matching projects"
- : "No projects yet"}
+ : "It's looking empty in here..."}
+ {!isRaw && !query && (
+
+ )}
{isRaw && rawError && (
void refreshRaw()}>Retry
)}
diff --git a/src/components/video-editor/dashboard/DashboardSidebar.tsx b/src/components/video-editor/dashboard/DashboardSidebar.tsx
index 21097509..758e1744 100644
--- a/src/components/video-editor/dashboard/DashboardSidebar.tsx
+++ b/src/components/video-editor/dashboard/DashboardSidebar.tsx
@@ -1,3 +1,4 @@
+import { RecordNewButton } from "./RecordNewButton";
import { SidebarCards } from "./SidebarCards";
import { FolderRow } from "./FolderRow";
import { Cloud, File, GearSix, House, Plus, UserCircle } from "@/components/ui/icons";
@@ -10,6 +11,8 @@ import type { DashboardModel } from "./useDashboardModel";
import { FOLDER_COLORS } from "./useProjectFolders";
export function DashboardSidebar({
+ busy,
+ run,
folders,
save,
section,
@@ -21,6 +24,8 @@ export function DashboardSidebar({
accountLabel,
}: Pick<
DashboardProps & DashboardModel,
+ | "busy"
+ | "run"
| "folders"
| "save"
| "section"
@@ -37,7 +42,7 @@ export function DashboardSidebar({
aria-label="Library navigation"
className="flex w-48 shrink-0 flex-col bg-transparent px-4 pb-5 pt-12 lg:w-56"
>
-
+
Recordly
+
) {
+}: Pick<
+ DashboardProps & DashboardModel,
+ "onImportFile" | "query" | "setQuery" | "run" | "busy" | "isRaw"
+>) {
return (
<>
-
void run(() => window.electronAPI.showRecordingHud())}
- disabled={busy}
- className="h-10 gap-2 text-[13px]"
- style={{ WebkitAppRegion: "no-drag" } as CSSProperties}
- >
-
- New
-
+
+ void run(onImportFile)}
+ className="h-10 shrink-0 gap-2 text-[13px]"
+ >
+
+ Import
+
+
>
);
diff --git a/src/components/video-editor/dashboard/RecordNewButton.tsx b/src/components/video-editor/dashboard/RecordNewButton.tsx
new file mode 100644
index 00000000..a671cf34
--- /dev/null
+++ b/src/components/video-editor/dashboard/RecordNewButton.tsx
@@ -0,0 +1,27 @@
+import { Plus } from "@/components/ui/icons";
+import { Button } from "@/components/ui/button";
+import { cn } from "@/lib/utils";
+
+export function RecordNewButton({
+ busy,
+ run,
+ className,
+ first = false,
+}: {
+ busy: boolean;
+ run: (action: () => Promise
) => Promise;
+ className?: string;
+ first?: boolean;
+}) {
+ return (
+ void run(() => window.electronAPI.showRecordingHud())}
+ className={cn("h-10 shrink-0 gap-2 text-[13px]", className)}
+ >
+
+ {first ? "Record your first video" : "Record new"}
+
+ );
+}
diff --git a/src/components/video-editor/layout/EditorHeader.tsx b/src/components/video-editor/layout/EditorHeader.tsx
index a1e9a48f..69bf87cc 100644
--- a/src/components/video-editor/layout/EditorHeader.tsx
+++ b/src/components/video-editor/layout/EditorHeader.tsx
@@ -184,7 +184,7 @@ export function EditorHeader(props: Props) {
)}
-