Skip to content

Commit c812f15

Browse files
updated
1 parent 156ca33 commit c812f15

2 files changed

Lines changed: 31 additions & 21 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "api-documenter",
3-
"version": "1.0.5",
3+
"version": "1.0.6",
44
"description": "Self-hosted Postman alternative with folder-level RBAC and offline-first documentation",
55
"main": "./out/main/index.js",
66
"author": "Praneeth Kulukuri",

src/renderer/src/components/UpdaterNotifier.tsx

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export function UpdaterNotifier() {
55
const [version, setVersion] = useState<string | null>(null)
66
const [progress, setProgress] = useState<number>(0)
77
const [visible, setVisible] = useState(false)
8+
const [closeHovered, setCloseHovered] = useState(false)
89

910
useEffect(() => {
1011
const removeStatus = (window as any).electronAPI.onUpdateStatus((newStatus: string, newVersion?: string) => {
@@ -42,30 +43,38 @@ export function UpdaterNotifier() {
4243
if (!visible) return null
4344

4445
return (
45-
<div className="fixed bottom-6 right-6 z-[200] animate-in slide-in-from-right-10 duration-500">
46-
<div className="bg-[#111] border border-white/10 rounded-2xl p-5 shadow-2xl flex flex-col gap-4 w-[320px] backdrop-blur-xl">
47-
<div className="flex items-center gap-3">
48-
<div className="bg-white/5 p-2.5 rounded-xl border border-white/10">
46+
<div
47+
className="animate-in slide-in-from-right-10 duration-500"
48+
style={{ position: 'fixed', bottom: '24px', right: '24px', zIndex: 200 }}
49+
>
50+
<div style={{
51+
background: '#111111', border: '1px solid rgba(255,255,255,0.1)', borderRadius: '16px',
52+
padding: '20px', boxShadow: '0 25px 50px -12px rgba(0,0,0,0.5)',
53+
display: 'flex', flexDirection: 'column', gap: '16px', width: '320px',
54+
backdropFilter: 'blur(24px)', position: 'relative'
55+
}}>
56+
<div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
57+
<div style={{ background: 'rgba(255,255,255,0.05)', padding: '10px', borderRadius: '12px', border: '1px solid rgba(255,255,255,0.1)', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
4958
{status === 'downloaded' ? (
50-
<svg className="w-5 h-5 text-emerald-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="2.5">
59+
<svg style={{ width: '20px', height: '20px', color: '#34d399' }} fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="2.5">
5160
<path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" />
5261
</svg>
5362
) : status === 'error' ? (
54-
<svg className="w-5 h-5 text-red-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="2.5">
63+
<svg style={{ width: '20px', height: '20px', color: '#f87171' }} fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="2.5">
5564
<path strokeLinecap="round" strokeLinejoin="round" d="M6 18L18 6M6 6l12 12" />
5665
</svg>
5766
) : (
58-
<div className="w-5 h-5 border-2 border-white/20 border-t-white rounded-full animate-spin" />
67+
<div className="animate-spin" style={{ width: '20px', height: '20px', border: '2px solid rgba(255,255,255,0.2)', borderTopColor: '#FFFFFF', borderRadius: '50%' }} />
5968
)}
6069
</div>
61-
<div>
62-
<h4 className="text-[14px] font-bold text-white mb-0.5">
70+
<div style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
71+
<h4 style={{ fontSize: '14px', fontWeight: 700, color: '#FFFFFF', margin: 0 }}>
6372
{status === 'available' && 'Update Available'}
6473
{status === 'downloading' && 'Downloading Update'}
6574
{status === 'downloaded' && 'Update Ready'}
6675
{status === 'error' && 'Update Failed'}
6776
</h4>
68-
<p className="text-[12px] text-neutral-400 font-medium">
77+
<p style={{ fontSize: '12px', color: '#9CA3AF', fontWeight: 500, margin: 0 }}>
6978
{status === 'available' && `Version ${version} is ready`}
7079
{status === 'downloading' && `Fetching software overhaul...`}
7180
{status === 'downloaded' && `Installing v${version} now!`}
@@ -75,36 +84,37 @@ export function UpdaterNotifier() {
7584
</div>
7685

7786
{(status === 'downloading' || status === 'available') && (
78-
<div className="space-y-2">
79-
<div className="h-1.5 w-100 bg-white/5 rounded-full overflow-hidden">
87+
<div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>
88+
<div style={{ height: '6px', width: '100%', background: 'rgba(255,255,255,0.05)', borderRadius: '9999px', overflow: 'hidden' }}>
8089
<div
81-
className="h-full bg-white transition-all duration-300 ease-out"
82-
style={{ width: `${progress}%` }}
90+
style={{ height: '100%', background: '#FFFFFF', width: `${progress}%`, transition: 'width 300ms ease-out' }}
8391
/>
8492
</div>
85-
<div className="flex justify-between items-center text-[10px] uppercase tracking-widest font-bold text-neutral-500">
93+
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', fontSize: '10px', textTransform: 'uppercase', letterSpacing: '0.1em', fontWeight: 700, color: '#737373' }}>
8694
<span>{progress}%</span>
8795
<span>Secure Layer</span>
8896
</div>
8997
</div>
9098
)}
9199

92100
{status === 'downloaded' && (
93-
<div className="text-[10px] uppercase tracking-widest font-extrabold text-emerald-500/80 flex items-center gap-2">
94-
<span className="flex h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse" />
101+
<div style={{ fontSize: '10px', textTransform: 'uppercase', letterSpacing: '0.1em', fontWeight: 800, color: 'rgba(16, 185, 129, 0.8)', display: 'flex', alignItems: 'center', gap: '8px' }}>
102+
<span className="animate-pulse" style={{ display: 'flex', height: '6px', width: '6px', borderRadius: '50%', background: '#10b981' }} />
95103
Restarting to apply v{version}
96104
</div>
97105
)}
98106

99107
<button
100108
onClick={() => setVisible(false)}
101-
className="absolute top-3 right-3 text-neutral-600 hover:text-white transition-colors"
109+
style={{ position: 'absolute', top: '12px', right: '12px', color: closeHovered ? '#FFFFFF' : '#52525B', background: 'transparent', border: 'none', cursor: 'pointer', padding: '4px', transition: 'color 150ms ease' }}
110+
onMouseEnter={() => setCloseHovered(true)}
111+
onMouseLeave={() => setCloseHovered(false)}
102112
>
103-
<svg className="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
113+
<svg style={{ width: '16px', height: '16px' }} fill="none" viewBox="0 0 24 24" stroke="currentColor">
104114
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M6 18L18 6M6 6l12 12" />
105115
</svg>
106116
</button>
107117
</div>
108118
</div>
109119
)
110-
}
120+
}

0 commit comments

Comments
 (0)