fix(tasks): a task opened by a link does not open again on every return to the tab
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m40s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
687389df64
commit
2bb0dec744
6 files changed
+19
-5
No files matched your search
+7
-1
@@ -6,6 +6,11 @@ Das Format folgt [Keep a Changelog](https://keepachangelog.com/de/1.1.0/), die V
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.49.1] - 2026-11-01
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Aufgaben: Nach dem Sprung zu einer Aufgabe (z. B. über das Abzeichen „Erweitert“ in einer Notiz) öffnete sich deren Detailfenster bei jedem Zurückwechseln in den Aufgaben-Reiter erneut.
|
||||||
|
|
||||||
## [0.49.0] - 2026-11-01
|
## [0.49.0] - 2026-11-01
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
@@ -760,7 +765,8 @@ Das Format folgt [Keep a Changelog](https://keepachangelog.com/de/1.1.0/), die V
|
|||||||
- Geteilte Listen (Einkaufs-, Pack- und Checklisten) mit `#Kategorie`-Gruppierung, Mengenangaben und Echtzeit-Abhaken.
|
- Geteilte Listen (Einkaufs-, Pack- und Checklisten) mit `#Kategorie`-Gruppierung, Mengenangaben und Echtzeit-Abhaken.
|
||||||
- Benutzer-, Gruppen- und Admin-Verwaltung (Ersteinrichtungs-Assistent, Einladungscodes, Profilbilder, persönliche API-Keys & Webhook-Ingest `/api/v1/webhooks/ingest`, JSON-Datenexport) sowie CSS-Theme-Engine mit 4 Themes (`Dark`, `Light`, `High Contrast`, `Soft`) und PWA-Unterstützung.
|
- Benutzer-, Gruppen- und Admin-Verwaltung (Ersteinrichtungs-Assistent, Einladungscodes, Profilbilder, persönliche API-Keys & Webhook-Ingest `/api/v1/webhooks/ingest`, JSON-Datenexport) sowie CSS-Theme-Engine mit 4 Themes (`Dark`, `Light`, `High Contrast`, `Soft`) und PWA-Unterstützung.
|
||||||
|
|
||||||
[Unreleased]: https://git.dsit.me/sandrodach/MindSift/compare/v0.49.0...dev
|
[Unreleased]: https://git.dsit.me/sandrodach/MindSift/compare/v0.49.1...dev
|
||||||
|
[0.49.1]: https://git.dsit.me/sandrodach/MindSift/compare/v0.49.0...v0.49.1
|
||||||
[0.49.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.48.0...v0.49.0
|
[0.49.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.48.0...v0.49.0
|
||||||
[0.48.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.47.0...v0.48.0
|
[0.48.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.47.0...v0.48.0
|
||||||
[0.47.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.46.0...v0.47.0
|
[0.47.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.46.0...v0.47.0
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
[](#)
|
[](#)
|
||||||
[](#-schnellstart)
|
[](#-schnellstart)
|
||||||
[](#-deine-daten-gehören-dir)
|
[](#-deine-daten-gehören-dir)
|
||||||
[](CHANGELOG.md)
|
[](CHANGELOG.md)
|
||||||
|
|
||||||
**MindSift** ist eine selbst gehostete Schaltstelle für spontane Gedanken, Aufgaben mit Kanban-Board, hierarchische Outliner-Notizen, die mehrere Personen gleichzeitig bearbeiten können, und gemeinsame Listen. Alles läuft als ein einzelner Container mit eingebetteter SQLite-Datenbank, auf deinem eigenen Server.
|
**MindSift** ist eine selbst gehostete Schaltstelle für spontane Gedanken, Aufgaben mit Kanban-Board, hierarchische Outliner-Notizen, die mehrere Personen gleichzeitig bearbeiten können, und gemeinsame Listen. Alles läuft als ein einzelner Container mit eingebetteter SQLite-Datenbank, auf deinem eigenen Server.
|
||||||
|
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "mindsift-frontend",
|
"name": "mindsift-frontend",
|
||||||
"version": "0.49.0",
|
"version": "0.49.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "mindsift-frontend",
|
"name": "mindsift-frontend",
|
||||||
"version": "0.49.0",
|
"version": "0.49.1",
|
||||||
"license": "AGPL-3.0-only",
|
"license": "AGPL-3.0-only",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource-variable/inter": "5.3.0",
|
"@fontsource-variable/inter": "5.3.0",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "mindsift-frontend",
|
"name": "mindsift-frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.49.0",
|
"version": "0.49.1",
|
||||||
"license": "AGPL-3.0-only",
|
"license": "AGPL-3.0-only",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1297,6 +1297,7 @@ export const App: React.FC = () => {
|
|||||||
onOpenDocument={handleOpenDocument}
|
onOpenDocument={handleOpenDocument}
|
||||||
refreshTrigger={refreshRevision}
|
refreshTrigger={refreshRevision}
|
||||||
initialSelectedTaskId={selectedTaskId}
|
initialSelectedTaskId={selectedTaskId}
|
||||||
|
onInitialTaskShown={() => setSelectedTaskId(null)}
|
||||||
openTasksCount={stats.tasksOpenCount}
|
openTasksCount={stats.tasksOpenCount}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ interface TasksViewProps {
|
|||||||
onOpenDocument: (docId: string, blockId?: string) => void;
|
onOpenDocument: (docId: string, blockId?: string) => void;
|
||||||
refreshTrigger?: number;
|
refreshTrigger?: number;
|
||||||
initialSelectedTaskId?: string | null;
|
initialSelectedTaskId?: string | null;
|
||||||
|
// The task from initialSelectedTaskId was opened; the parent forgets it, so returning to the tab does
|
||||||
|
// not open it again
|
||||||
|
onInitialTaskShown?: () => void;
|
||||||
openTasksCount?: number; // all open tasks incl. shared lists (same as the nav bar counter)
|
openTasksCount?: number; // all open tasks incl. shared lists (same as the nav bar counter)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,6 +97,7 @@ export const TasksView: React.FC<TasksViewProps> = ({
|
|||||||
onOpenDocument,
|
onOpenDocument,
|
||||||
refreshTrigger = 0,
|
refreshTrigger = 0,
|
||||||
initialSelectedTaskId,
|
initialSelectedTaskId,
|
||||||
|
onInitialTaskShown,
|
||||||
openTasksCount,
|
openTasksCount,
|
||||||
}) => {
|
}) => {
|
||||||
// Open list and view survive switching to other tabs (like the workspace's open note)
|
// Open list and view survive switching to other tabs (like the workspace's open note)
|
||||||
@@ -177,11 +181,14 @@ export const TasksView: React.FC<TasksViewProps> = ({
|
|||||||
const [showDetailModal, setShowDetailModal] = useState(false);
|
const [showDetailModal, setShowDetailModal] = useState(false);
|
||||||
const [extraTask, setExtraTask] = useState<Thought | null>(null);
|
const [extraTask, setExtraTask] = useState<Thought | null>(null);
|
||||||
|
|
||||||
|
const onInitialTaskShownRef = useRef(onInitialTaskShown);
|
||||||
|
onInitialTaskShownRef.current = onInitialTaskShown;
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (initialSelectedTaskId) {
|
if (initialSelectedTaskId) {
|
||||||
setDetailTaskId(initialSelectedTaskId);
|
setDetailTaskId(initialSelectedTaskId);
|
||||||
setShowDetailModal(true);
|
setShowDetailModal(true);
|
||||||
setFilter('open');
|
setFilter('open');
|
||||||
|
onInitialTaskShownRef.current?.();
|
||||||
api.getThought(initialSelectedTaskId).then((th) => {
|
api.getThought(initialSelectedTaskId).then((th) => {
|
||||||
if (th) setExtraTask(th);
|
if (th) setExtraTask(th);
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
|
|||||||
Reference in new issue
Block a user