Skip to content

Commit 013f317

Browse files
committed
Release v1.1.1
1 parent dc50434 commit 013f317

10 files changed

Lines changed: 111 additions & 59 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
# 📝 Changelog
22

3-
All notable changes to the Notara project will be documented in this file.
4-
5-
## Initial Release [1.1.0]
3+
All notable changes to the Notara project will be documented in this file.
4+
5+
## [1.1.1] - 2026-03-26
6+
7+
### 🐛 Fixed
8+
9+
- Added a `New Note` button beside `Save` in the open note editor so users can create another note without getting stuck on the current note screen.
10+
- Fixed the editor transition into new-note mode so the web app opens a fresh blank note instead of reusing the previously opened note state.
11+
- Fixed the desktop Constellation page layout by restoring the expected `ResizablePanel` wrapper used by `AppLayout`, which resolves the broken installed-app rendering.
12+
13+
## Initial Release [1.1.0]
614

715
### ✨ Added
816

@@ -27,7 +35,7 @@ All notable changes to the Notara project will be documented in this file.
2735
- Fixed Pollinations desktop requests by allowing Pollinations URLs in the Tauri HTTP scope and enabling `Authorization` headers.
2836
- Fixed the to-do list date picker freeze in Tauri/AppImage builds by replacing the native `input[type="date"]` control with an in-app calendar picker.
2937

30-
## [1.1.0] - 2026-03-13
38+
## [1.1.0] - 2026-03-13
3139

3240
### ✨ Added
3341

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.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pinkpixel/notara",
3-
"version": "1.1.0",
3+
"version": "1.1.1",
44
"description": "Feature-rich note-taking application and markdown editor with AI assistant.",
55
"type": "module",
66
"scripts": {

src-tauri/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "notara"
3-
version = "1.1.0"
3+
version = "1.1.1"
44
description = "Notara desktop application powered by Tauri."
55
authors = ["Pink Pixel <admin@pinkpixel.dev>"]
66
license = "Apache-2.0"

src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
33
"productName": "Notara",
4-
"version": "1.1.0",
4+
"version": "1.1.1",
55
"identifier": "dev.pinkpixel.notara",
66
"build": {
77
"frontendDist": "../dist",

src/components/notes/NoteEditor.tsx

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@ import TagSelector from './TagSelector';
88
import MarkdownPreview from './MarkdownPreview';
99
import MarkdownToolbar from './MarkdownToolbar';
1010
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog';
11-
import { Maximize2, Star } from 'lucide-react';
11+
import { Maximize2, Plus, Star } from 'lucide-react';
1212
import { toast } from '@/hooks/use-toast';
1313

1414
interface NoteEditorProps {
1515
note?: Note;
1616
isNew?: boolean;
1717
onSave?: (note: Note) => void;
18+
onCreateNote?: () => void;
1819
}
1920

20-
const NoteEditor: React.FC<NoteEditorProps> = ({ note, isNew = false, onSave }) => {
21+
const NoteEditor: React.FC<NoteEditorProps> = ({ note, isNew = false, onSave, onCreateNote }) => {
2122
const {
2223
notes,
2324
tags: availableTags,
@@ -37,13 +38,22 @@ const NoteEditor: React.FC<NoteEditorProps> = ({ note, isNew = false, onSave })
3738
const editorRef = useRef<HTMLTextAreaElement>(null);
3839

3940
useEffect(() => {
41+
if (isNew) {
42+
setTitle('');
43+
setContent('');
44+
setSelectedTags([]);
45+
setIsPinned(false);
46+
setIsPreview(false);
47+
return;
48+
}
49+
4050
if (note) {
4151
setTitle(note.title);
4252
setContent(note.content);
4353
setSelectedTags(note.tags);
4454
setIsPinned(note.isPinned);
4555
}
46-
}, [note]);
56+
}, [isNew, note]);
4757

4858
const handleSave = useCallback(async () => {
4959
setIsSaving(true);
@@ -191,10 +201,19 @@ const NoteEditor: React.FC<NoteEditorProps> = ({ note, isNew = false, onSave })
191201
onChange={setSelectedTags}
192202
availableTags={availableTags}
193203
/>
194-
<Button
195-
onClick={handleSave}
196-
disabled={isSaving}
197-
className="ml-2"
204+
<Button
205+
onClick={onCreateNote}
206+
disabled={!onCreateNote}
207+
variant="outline"
208+
size="sm"
209+
>
210+
<Plus className="h-4 w-4 mr-1" />
211+
New Note
212+
</Button>
213+
<Button
214+
onClick={handleSave}
215+
disabled={isSaving}
216+
className="ml-2"
198217
size="sm"
199218
>
200219
{isSaving ? 'Saving...' : 'Save'}

src/pages/ConstellationsPage.tsx

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11

2-
import React from 'react';
3-
import AppLayout from '@/components/layout/AppLayout';
4-
import ConstellationView from '@/components/constellation/ConstellationView';
5-
6-
const ConstellationsPage: React.FC = () => {
7-
return (
8-
<AppLayout>
9-
<div className="h-full">
10-
<ConstellationView />
11-
</div>
12-
</AppLayout>
13-
);
14-
};
2+
import React from 'react';
3+
import AppLayout from '@/components/layout/AppLayout';
4+
import ConstellationView from '@/components/constellation/ConstellationView';
5+
import { ResizablePanel } from '@/components/ui/resizable';
6+
7+
const ConstellationsPage: React.FC = () => {
8+
return (
9+
<AppLayout>
10+
<ResizablePanel defaultSize={100} minSize={30}>
11+
<div className="h-full">
12+
<ConstellationView />
13+
</div>
14+
</ResizablePanel>
15+
</AppLayout>
16+
);
17+
};
1518

1619
export default ConstellationsPage;

src/pages/HomePage.tsx

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
1-
import React, { useState } from 'react';
2-
import AppLayout from '@/components/layout/AppLayout';
3-
import { useNotes } from '@/context/NotesContextTypes';
4-
import NotesList from '@/components/notes/NotesList';
5-
import NoteEditor from '@/components/notes/NoteEditor';
6-
import { Note } from '@/types';
7-
import { Button } from '@/components/ui/button';
8-
import { Plus, FileText } from 'lucide-react';
9-
import { ResizablePanel, ResizableHandle } from '@/components/ui/resizable';
10-
11-
const HomePage: React.FC = () => {
12-
const { notes, activeNote, setActiveNote, addNote, deleteNote } = useNotes();
13-
const [isCreatingNote, setIsCreatingNote] = useState(false);
1+
import React, { useCallback, useEffect, useState } from 'react';
2+
import AppLayout from '@/components/layout/AppLayout';
3+
import { useNotes } from '@/context/NotesContextTypes';
4+
import NotesList from '@/components/notes/NotesList';
5+
import NoteEditor from '@/components/notes/NoteEditor';
6+
import { Note } from '@/types';
7+
import { Button } from '@/components/ui/button';
8+
import { Plus, FileText } from 'lucide-react';
9+
import { ResizablePanel, ResizableHandle } from '@/components/ui/resizable';
10+
import { useLocation, useNavigate } from 'react-router-dom';
11+
12+
const HomePage: React.FC = () => {
13+
const { notes, activeNote, setActiveNote, deleteNote } = useNotes();
14+
const [isCreatingNote, setIsCreatingNote] = useState(false);
15+
const location = useLocation();
16+
const navigate = useNavigate();
1417

1518
const handleSelectNote = (note: Note) => {
1619
setActiveNote(note);
1720
setIsCreatingNote(false);
1821
};
1922

20-
const handleCreateNote = () => {
21-
setActiveNote(null);
22-
setIsCreatingNote(true);
23-
};
23+
const handleCreateNote = useCallback(() => {
24+
setActiveNote(null);
25+
setIsCreatingNote(true);
26+
}, [setActiveNote]);
27+
28+
useEffect(() => {
29+
if (location.state?.createNote) {
30+
handleCreateNote();
31+
navigate(location.pathname, { replace: true, state: null });
32+
}
33+
}, [handleCreateNote, location.pathname, location.state, navigate]);
2434

2535
const handleSaveNewNote = (note: Note) => {
2636
setActiveNote(note);
@@ -50,11 +60,20 @@ const HomePage: React.FC = () => {
5060

5161
<ResizablePanel defaultSize={70}>
5262
<div className="h-full border-l border-border/30">
53-
{isCreatingNote ? (
54-
<NoteEditor isNew={true} onSave={handleSaveNewNote} />
55-
) : activeNote ? (
56-
<NoteEditor note={activeNote} />
57-
) : (
63+
{isCreatingNote ? (
64+
<NoteEditor
65+
key="new-note-editor"
66+
isNew={true}
67+
onSave={handleSaveNewNote}
68+
onCreateNote={handleCreateNote}
69+
/>
70+
) : activeNote ? (
71+
<NoteEditor
72+
key={activeNote.id}
73+
note={activeNote}
74+
onCreateNote={handleCreateNote}
75+
/>
76+
) : (
5877
<div className="h-full flex flex-col items-center justify-center p-8 text-center">
5978
<div className="w-16 h-16 mb-4 rounded-full bg-primary/10 flex items-center justify-center">
6079
<FileText className="w-6 h-6 text-primary" />

src/pages/NoteViewPage.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,16 @@ const NoteViewPage: React.FC = () => {
4545
<ArrowLeft className="h-4 w-4 mr-1" />
4646
Back
4747
</Button>
48-
</div>
49-
{note ? (
50-
<NoteEditor note={note} />
51-
) : (
52-
<div className="p-10 text-center">
53-
<p className="text-muted-foreground">Loading note...</p>
54-
</div>
48+
</div>
49+
{note ? (
50+
<NoteEditor
51+
note={note}
52+
onCreateNote={() => navigate('/', { state: { createNote: true } })}
53+
/>
54+
) : (
55+
<div className="p-10 text-center">
56+
<p className="text-muted-foreground">Loading note...</p>
57+
</div>
5558
)}
5659
</div>
5760
</ResizablePanel>

0 commit comments

Comments
 (0)