Skip to content

Commit 6016aa1

Browse files
committed
feat: Implement configurable file count and size limits, add a new dropdown menu component, and update application branding assets.
1 parent 8ac0f4d commit 6016aa1

12 files changed

Lines changed: 451 additions & 11 deletions

File tree

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
{
2-
"name": "openconvert-vite",
2+
"name": "openconvert",
33
"private": true,
44
"version": "1.3.3",
55
"type": "module",
66
"main": "dist-electron/main.js",
77
"scripts": {
88
"dev": "vite",
99
"build:ts": "tsc -b && vite build",
10-
"build": "tsc -b && vite build && electron-builder",
10+
"build:linux": "tsc -b && vite build && electron-builder --linux",
11+
"build:windows": "tsc -b && vite build && electron-builder --win",
12+
"build:mac": "tsc -b && vite build && electron-builder --mac",
1113
"lint": "eslint .",
1214
"preview": "vite preview"
1315
},

public/logo.png

19.7 KB
Loading

public/vite.svg

Lines changed: 0 additions & 1 deletion
This file was deleted.

resources/icon.png

100644100755
-14.9 KB
Loading

resources/logo.ico

100644100755
-21.1 KB
Binary file not shown.

resources/logo.png

-1.07 MB
Binary file not shown.

src/components/Sidebar.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export default function AppSidebar({
6363

6464
{/* Bottom section: Settings */}
6565
<div className="flex flex-col gap-1 px-2 pb-3">
66+
<div className="h-px bg-white/10 mx-2 mb-1" />
6667
{settingsNavItems.map(({ id, label, icon: Icon }) => (
6768
<TooltipProvider key={id} delayDuration={300}>
6869
<Tooltip>

src/components/Titlebar.tsx

Lines changed: 85 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
import { useState, useEffect } from 'react'
2-
import { Minus, Square, Copy, X, PanelLeft } from 'lucide-react'
2+
import { Minus, Square, Copy, X, PanelLeft, HelpCircle, BookOpen, Download, MessageSquare, Sparkles } from 'lucide-react'
33
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'
4+
import {
5+
DropdownMenu,
6+
DropdownMenuContent,
7+
DropdownMenuItem,
8+
DropdownMenuSeparator,
9+
DropdownMenuTrigger,
10+
} from '@/components/ui/dropdown-menu'
411

512
interface TitlebarProps {
613
isSidebarExpanded: boolean
@@ -21,8 +28,27 @@ export default function Titlebar({ isSidebarExpanded, onToggleSidebar }: Titleba
2128
<div className="flex justify-between items-center bg-[#0a0a0b] h-10 w-full select-none text-white border-b border-white/5 flex-shrink-0"
2229
style={{ WebkitAppRegion: 'drag' } as React.CSSProperties}
2330
>
24-
{/* Left side: Sidebar toggle icon */}
25-
<div className="flex items-center pl-2" style={{ WebkitAppRegion: 'no-drag' } as React.CSSProperties}>
31+
{/* Left side: Logo and Sidebar toggle */}
32+
<div className="flex items-center gap-2 pl-2" style={{ WebkitAppRegion: 'no-drag' } as React.CSSProperties}>
33+
{/* Logo */}
34+
<TooltipProvider delayDuration={300}>
35+
<Tooltip>
36+
<TooltipTrigger asChild>
37+
<div className="flex items-center gap-2 px-1">
38+
<img
39+
src="/logo.png"
40+
alt="OpenConvert"
41+
className="w-7 h-7"
42+
/>
43+
</div>
44+
</TooltipTrigger>
45+
<TooltipContent side="bottom">
46+
OpenConvert
47+
</TooltipContent>
48+
</Tooltip>
49+
</TooltipProvider>
50+
51+
{/* Sidebar toggle */}
2652
<TooltipProvider delayDuration={300}>
2753
<Tooltip>
2854
<TooltipTrigger asChild>
@@ -41,8 +67,63 @@ export default function Titlebar({ isSidebarExpanded, onToggleSidebar }: Titleba
4167
</TooltipProvider>
4268
</div>
4369

44-
{/* Right side: Window controls */}
70+
{/* Right side: Help menu and Window controls */}
4571
<div className="flex h-full" style={{ WebkitAppRegion: 'no-drag' } as React.CSSProperties}>
72+
{/* Help Menu */}
73+
<DropdownMenu>
74+
<TooltipProvider delayDuration={300}>
75+
<Tooltip>
76+
<TooltipTrigger asChild>
77+
<DropdownMenuTrigger asChild>
78+
<button
79+
className="w-12 h-full flex items-center justify-center text-zinc-500 hover:bg-zinc-800 hover:text-zinc-300 transition-colors duration-150"
80+
aria-label="Help"
81+
>
82+
<HelpCircle size={16} />
83+
</button>
84+
</DropdownMenuTrigger>
85+
</TooltipTrigger>
86+
<TooltipContent side="bottom">
87+
Help
88+
</TooltipContent>
89+
</Tooltip>
90+
</TooltipProvider>
91+
<DropdownMenuContent
92+
className="bg-zinc-900 border-zinc-800 text-zinc-200 min-w-[200px]"
93+
align="end"
94+
sideOffset={8}
95+
>
96+
<DropdownMenuItem
97+
className="flex items-center gap-2 cursor-pointer hover:bg-zinc-800 focus:bg-zinc-800"
98+
onClick={() => console.log('App Guide Tours')}
99+
>
100+
<BookOpen size={14} />
101+
<span className="text-sm">App Guide Tours</span>
102+
</DropdownMenuItem>
103+
<DropdownMenuItem
104+
className="flex items-center gap-2 cursor-pointer hover:bg-zinc-800 focus:bg-zinc-800"
105+
onClick={() => console.log('Check for Updates')}
106+
>
107+
<Download size={14} />
108+
<span className="text-sm">Check for Updates</span>
109+
</DropdownMenuItem>
110+
<DropdownMenuSeparator className="bg-zinc-800" />
111+
<DropdownMenuItem
112+
className="flex items-center gap-2 cursor-pointer hover:bg-zinc-800 focus:bg-zinc-800"
113+
onClick={() => console.log('Support')}
114+
>
115+
<Sparkles size={14} />
116+
<span className="text-sm">Support</span>
117+
</DropdownMenuItem>
118+
<DropdownMenuItem
119+
className="flex items-center gap-2 cursor-pointer hover:bg-zinc-800 focus:bg-zinc-800"
120+
onClick={() => console.log('Feedback')}
121+
>
122+
<MessageSquare size={14} />
123+
<span className="text-sm">Feedback</span>
124+
</DropdownMenuItem>
125+
</DropdownMenuContent>
126+
</DropdownMenu>
46127
<TooltipProvider delayDuration={300}>
47128
<Tooltip>
48129
<TooltipTrigger asChild>

0 commit comments

Comments
 (0)