Skip to content

Commit 9fdc5d2

Browse files
committed
Release v1.2.1: Improve titlebar design and welcome screen behavior
1 parent 962daf1 commit 9fdc5d2

7 files changed

Lines changed: 65 additions & 37 deletions

File tree

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,26 @@ All notable changes to MarkViewPro will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.2.1] - 2026-01-26
9+
10+
### Improved
11+
- **Titlebar Design**: Cleaner, more professional titlebar
12+
- Removed left-side branding when files are open
13+
- "MarkView Pro" title now centered when no files are open
14+
- Title disappears when tabs are visible
15+
- More space for tabs and controls
16+
- **Welcome Screen Behavior**: Smarter welcome tab handling
17+
- Welcome tab automatically closes when opening first file
18+
- Welcome tab closes when creating new document
19+
- Welcome tab closes when dropping files
20+
- Prevents cluttering workspace with welcome screen
21+
22+
### Technical
23+
- Added `hasOpenFiles` prop to Titlebar component
24+
- Improved tab replacement logic for welcome screen
25+
- Enhanced drag and drop to handle welcome tab closure
26+
- Cleaner conditional rendering of title vs tabs
27+
828
## [1.2.0] - 2026-01-26
929

1030
### Added
@@ -142,6 +162,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
142162
- Vite build system
143163
- Automated CI/CD pipeline with GitHub Actions
144164

165+
[1.2.1]: https://github.com/OffLine911/MarkViewPro/releases/tag/v1.2.1
145166
[1.2.0]: https://github.com/OffLine911/MarkViewPro/releases/tag/v1.2.0
146167
[1.1.7]: https://github.com/OffLine911/MarkViewPro/releases/tag/v1.1.7
147168
[1.1.6]: https://github.com/OffLine911/MarkViewPro/releases/tag/v1.1.6

frontend/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "markview-pro",
33
"private": true,
4-
"version": "1.2.0",
4+
"version": "1.2.1",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

frontend/package.json.md5

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2eb219998c14429877260ecb9e5d34ee
1+
b38268aa7185cc6afe6ed595f0155e34

frontend/src/App.tsx

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ export default function App() {
6868

6969
const files = e.dataTransfer?.files;
7070
if (files && files.length > 0) {
71+
// If this is the welcome tab and it's not modified, close it before adding new files
72+
if (tabs.length === 1 && tabs[0].fileName === 'Welcome to MarkView Pro' && !tabs[0].isModified) {
73+
closeTab(tabs[0].id);
74+
}
75+
7176
for (let i = 0; i < files.length; i++) {
7277
const file = files[i];
7378
if (file.name.endsWith('.md') || file.name.endsWith('.markdown')) {
@@ -93,7 +98,7 @@ export default function App() {
9398
document.removeEventListener('dragleave', handleDragLeave);
9499
document.removeEventListener('drop', handleDrop);
95100
};
96-
}, [addTab]);
101+
}, [addTab, closeTab, tabs]);
97102

98103
// Apply zoom level
99104
useEffect(() => {
@@ -103,14 +108,25 @@ export default function App() {
103108
const handleOpen = useCallback(async () => {
104109
const result = await openFile();
105110
if (result) {
111+
// If this is the welcome tab and it's not modified, replace it
112+
if (tabs.length === 1 && tabs[0].fileName === 'Welcome to MarkView Pro' && !tabs[0].isModified) {
113+
closeTab(tabs[0].id);
114+
}
106115
addTab(fileName || 'Untitled', filePath, content);
107116
}
108-
}, [openFile, addTab, fileName, filePath, content]);
117+
}, [openFile, addTab, closeTab, tabs, fileName, filePath, content]);
109118

110119
const handleNew = useCallback(() => {
120+
// If this is the welcome tab and it's not modified, replace it
121+
if (tabs.length === 1 && tabs[0].fileName === 'Welcome to MarkView Pro' && !tabs[0].isModified) {
122+
closeTab(tabs[0].id);
123+
}
111124
newFile();
112125
addTab('New Document', null, '');
113-
}, [newFile, addTab]);
126+
}, [newFile, addTab, closeTab, tabs]);
127+
128+
// Check if we have any real files open (not just welcome screen)
129+
const hasOpenFiles = tabs.length > 1 || (tabs.length === 1 && tabs[0].fileName !== 'Welcome to MarkView Pro');
114130

115131
const handleSave = useCallback(async () => {
116132
if (filePath) {
@@ -191,8 +207,7 @@ export default function App() {
191207
)}
192208

193209
<Titlebar
194-
fileName={fileName}
195-
isModified={isModified}
210+
hasOpenFiles={hasOpenFiles}
196211
onNew={handleNew}
197212
onOpen={handleOpen}
198213
onSave={handleSave}
@@ -206,12 +221,14 @@ export default function App() {
206221
isFullscreen={isFullscreen}
207222
/>
208223

209-
<TabBar
210-
tabs={tabs}
211-
activeTabId={activeTabId}
212-
onTabClick={setActiveTabId}
213-
onTabClose={closeTab}
214-
/>
224+
{hasOpenFiles && (
225+
<TabBar
226+
tabs={tabs}
227+
activeTabId={activeTabId}
228+
onTabClick={setActiveTabId}
229+
onTabClose={closeTab}
230+
/>
231+
)}
215232

216233
<div className="flex flex-1 overflow-hidden">
217234
<Sidebar

frontend/src/components/Titlebar/Titlebar.tsx

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ import {
2222
import { useSettings } from '../../hooks/useSettings';
2323

2424
interface TitlebarProps {
25-
fileName: string | null;
26-
isModified: boolean;
25+
hasOpenFiles: boolean;
2726
onNew: () => void;
2827
onOpen: () => void;
2928
onSave: () => void;
@@ -38,8 +37,7 @@ interface TitlebarProps {
3837
}
3938

4039
export function Titlebar({
41-
fileName,
42-
isModified,
40+
hasOpenFiles,
4341
onNew,
4442
onOpen,
4543
onSave,
@@ -84,13 +82,6 @@ export function Titlebar({
8482
className="flex items-center h-10 px-2 select-none titlebar-bg wails-drag"
8583
>
8684
<div className="flex items-center gap-0.5 wails-no-drag">
87-
<div className="flex items-center gap-1.5 px-2 mr-1">
88-
<div className="w-4 h-4 rounded bg-gradient-to-br from-cyan-400 to-blue-500" />
89-
<span className="text-xs font-semibold text-zinc-300 dark:text-zinc-300 titlebar-text">MarkViewPro</span>
90-
</div>
91-
92-
<div className="h-4 w-px bg-zinc-700 mx-1" />
93-
9485
<button
9586
onClick={onToggleSidebar}
9687
className="titlebar-btn"
@@ -146,17 +137,16 @@ export function Titlebar({
146137
</div>
147138
</div>
148139

149-
<div className="flex-1 flex items-center justify-center min-w-0">
150-
<div className="flex items-center gap-2 text-xs text-zinc-400 truncate select-none wails-no-drag">
151-
<FileText className="w-3.5 h-3.5 flex-shrink-0 text-zinc-500" />
152-
<span className="truncate font-medium text-zinc-300">
153-
{fileName || 'Untitled'}
154-
</span>
155-
{isModified && (
156-
<span className="w-1.5 h-1.5 rounded-full bg-amber-500 flex-shrink-0" title="Unsaved changes" />
157-
)}
140+
{!hasOpenFiles && (
141+
<div className="flex-1 flex items-center justify-center min-w-0">
142+
<div className="flex items-center gap-2 select-none wails-no-drag">
143+
<div className="w-5 h-5 rounded bg-gradient-to-br from-cyan-400 to-blue-500" />
144+
<span className="text-sm font-semibold text-zinc-300 titlebar-text">MarkView Pro</span>
145+
</div>
158146
</div>
159-
</div>
147+
)}
148+
149+
{hasOpenFiles && <div className="flex-1" />}
160150

161151
<div className="flex items-center gap-0.5 wails-no-drag">
162152
<button onClick={onPrint} className="titlebar-btn" title="Print (Ctrl+P)">

wails.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"info": {
1414
"companyName": "MarkViewPro",
1515
"productName": "MarkViewPro",
16-
"productVersion": "1.2.0",
16+
"productVersion": "1.2.1",
1717
"copyright": "Copyright © 2024 MarkViewPro Contributors",
1818
"comments": "A modern Markdown viewer and editor"
1919
},

0 commit comments

Comments
 (0)