Skip to content

Commit 3bfd133

Browse files
committed
feat: add update notification for extension version
1 parent d701ceb commit 3bfd133

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
66

77
## Latest Release
88

9+
## [1.10.0] - 2025-03-12
10+
11+
- feat: add update notification for new extension version
12+
913
## [1.9.0] - 2025-03-12
1014

1115
- feat: add color coding for log levels in log viewer

src/extension.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
import * as vscode from 'vscode';
22
import { promptMagentoProjectSelection, showErrorMessage, activateExtension, isValidPath, deleteReportFile } from './helpers';
33
import { LogItem, ReportViewerProvider } from './logViewer';
4+
import { showUpdateNotification } from './updateNotifier';
45

56
let disposables: vscode.Disposable[] = [];
67

78
export function activate(context: vscode.ExtensionContext): void {
8-
// Get workspace folders
9+
10+
// Show Update-Popup
11+
showUpdateNotification(context);
12+
913
const workspaceFolders = vscode.workspace.workspaceFolders;
1014
const workspaceUri = workspaceFolders?.[0]?.uri || null;
1115

12-
// Get configuration with resource scope
1316
const config = vscode.workspace.getConfiguration('magentoLogViewer', workspaceUri);
1417
const isMagentoProject = config.get<string>('isMagentoProject', 'Please select');
1518

src/updateNotifier.ts

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import * as vscode from 'vscode';
2+
3+
export async function showUpdateNotification(context: vscode.ExtensionContext) {
4+
const extension = vscode.extensions.getExtension('MathiasElle.magento-log-viewer');
5+
if (!extension) {
6+
return;
7+
}
8+
9+
const currentVersion = extension.packageJSON.version;
10+
const lastVersion = context.globalState.get<string>('lastVersion');
11+
12+
if (lastVersion !== currentVersion) {
13+
const action = await vscode.window.showInformationMessage(
14+
`Magento Log Viewer wurde auf Version ${currentVersion} ✨!`,
15+
'❤️ Support this Project',
16+
'Changelog',
17+
'GitHub'
18+
);
19+
20+
if (action === 'GitHub') {
21+
vscode.env.openExternal(vscode.Uri.parse('https://github.com/OpenForgeProject/vscode-ext-magento-log-viewer'));
22+
} else if (action === 'Changelog') {
23+
const changelogPath = vscode.Uri.joinPath(extension.extensionUri, 'CHANGELOG.md');
24+
const doc = await vscode.workspace.openTextDocument(changelogPath);
25+
await vscode.window.showTextDocument(doc);
26+
} else if (action === '❤️ Support this Project') {
27+
vscode.env.openExternal(vscode.Uri.parse('https://github.com/sponsors/dermatz'));
28+
}
29+
30+
await context.globalState.update('lastVersion', currentVersion);
31+
}
32+
}

0 commit comments

Comments
 (0)