Skip to content

Commit 90fe377

Browse files
🐛 📝 (Pinned documentations + CHANGELOG) - Pinned documentations are not correctly removed when unpinned + Add publication date in CHANGELOG
1 parent 951d554 commit 90fe377

3 files changed

Lines changed: 55 additions & 28 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog],
66
and this project adheres to [Semantic Versioning].
77

8-
## Unreleased
8+
<!-- ## Unreleased -->
9+
10+
## [0.3.0] - 2024-08-27
911

1012
### Added
1113

@@ -74,3 +76,5 @@ and this project adheres to [Semantic Versioning].
7476

7577
[0.1.0]: https://github.com/baptistelechat/codeX/releases/tag/v0.1.0
7678
[0.2.0]: https://github.com/baptistelechat/codeX/releases/tag/v0.2.0
79+
[0.2.1]: https://github.com/baptistelechat/codeX/releases/tag/v0.2.1
80+
[0.3.0]: https://github.com/baptistelechat/codeX/releases/tag/v0.3.0

src/app/Sidebar/sidebar.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,15 @@ const loadDocumentations = (
7171
pinnedDocumentations,
7272
favoriteDocumentations,
7373
hideDocumentations,
74-
searchMode
74+
true
7575
);
7676

7777
documentations = sortDocumentations(
7878
newDocumentations,
7979
pinnedDocumentations,
8080
favoriteDocumentations,
8181
hideDocumentations,
82-
searchMode
82+
false
8383
);
8484

8585
const container = document.getElementById("documentation-container");

src/lib/utils/pinnedDocumentations/togglePinned.ts

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import getAllDocumentations from "../documentation/getAllDocumentations";
21
import getDocumentationName from "../getDocumentationName";
32
import { DocumentationViewProvider } from "../provider/DocumentationViewProvider";
43
import { showInformationMessage } from "../showMessage";
@@ -7,15 +6,60 @@ const togglePinned = async (
76
provider: DocumentationViewProvider,
87
documentationId: string
98
) => {
10-
const index = provider._pinnedDocumentations.indexOf(documentationId);
9+
const pinnedDocumentationIndex =
10+
provider._pinnedDocumentations.indexOf(documentationId);
11+
12+
const documentationIndex = provider._documentations.findIndex(
13+
(documentation) => documentation.id === documentationId
14+
);
15+
16+
const searchDocumentationIndex = provider._searchDocumentations.findIndex(
17+
(documentation) => documentation.id === documentationId
18+
);
19+
20+
if (pinnedDocumentationIndex !== -1) {
21+
provider._pinnedDocumentations.splice(pinnedDocumentationIndex, 1);
22+
23+
if (documentationIndex !== -1) {
24+
provider._documentations[documentationIndex].isPinned = false;
25+
}
26+
27+
if (searchDocumentationIndex !== -1) {
28+
provider._searchDocumentations[searchDocumentationIndex].isPinned = false;
29+
}
1130

12-
if (index !== -1) {
13-
provider._pinnedDocumentations.splice(index, 1);
1431
showInformationMessage(
1532
`${getDocumentationName(provider, documentationId)} unpinned.`
1633
);
1734
} else {
1835
provider._pinnedDocumentations.push(documentationId);
36+
37+
if (documentationIndex !== -1) {
38+
provider._documentations[documentationIndex].isPinned = true;
39+
}
40+
41+
if (searchDocumentationIndex !== -1) {
42+
provider._searchDocumentations[searchDocumentationIndex].isPinned = true;
43+
44+
provider._documentations.push(
45+
provider._searchDocumentations[searchDocumentationIndex]
46+
);
47+
48+
const seenIds = new Set();
49+
50+
const uniqueDocumentations = provider._documentations.filter(
51+
(documentation) => {
52+
if (seenIds.has(documentation.id)) {
53+
return false;
54+
}
55+
seenIds.add(documentation.id);
56+
return true;
57+
}
58+
);
59+
60+
provider._documentations = uniqueDocumentations;
61+
}
62+
1963
showInformationMessage(
2064
`${getDocumentationName(provider, documentationId)} pinned for later.`
2165
);
@@ -24,27 +68,6 @@ const togglePinned = async (
2468
await provider.savePinnedDocumentations();
2569

2670
if (provider._view) {
27-
const pinnedDocumentations = await getAllDocumentations(provider, [
28-
...provider._pinnedDocumentations,
29-
...provider._searchDocumentations
30-
.filter((documentation) => documentation.isPinned)
31-
.map((documentation) => documentation.id),
32-
]);
33-
34-
const seenIds = new Set();
35-
36-
const uniqueDocumentations = provider._documentations.filter(
37-
(documentation) => {
38-
if (seenIds.has(documentation.id)) {
39-
return false;
40-
}
41-
seenIds.add(documentation.id);
42-
return true;
43-
}
44-
);
45-
46-
provider._documentations = uniqueDocumentations;
47-
4871
provider._view.webview.postMessage({
4972
type: "setDocumentations",
5073
documentations: provider._documentations,

0 commit comments

Comments
 (0)