Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,20 @@ export function deactivate() {
*/
function startTokenExpirationCheck(context: vscode.ExtensionContext) {
let lastNotifiedExpiration = false;
// Tracks whether a valid token has been observed since activation, so the notification
// only fires for an expiration that happens during this session, not a stale connection
// left over from before a VS Code restart.
let hasObservedValidToken = false;

tokenExpirationTimer = setInterval(() => {
const dvHelper = new DataverseHelper(context);
const isExpired = dvHelper.isCurrentConnectionTokenExpired();

if (isExpired && !lastNotifiedExpiration) {
if (!isExpired) {
// Reset notification flag when token is refreshed
hasObservedValidToken = true;
lastNotifiedExpiration = false;
} else if (hasObservedValidToken && !lastNotifiedExpiration) {
// Get current connection to create tree item for reconnect
const conn = dvHelper.getCurrentWorkspaceConnection();

Expand Down Expand Up @@ -97,9 +105,6 @@ function startTokenExpirationCheck(context: vscode.ExtensionContext) {
if (conn) {
vscode.commands.executeCommand("dvdt.explorer.connections.updateStatusBar", conn);
}
} else if (!isExpired) {
// Reset notification flag when token is refreshed
lastNotifiedExpiration = false;
}
}, TOKEN_CHECK_INTERVAL);
}
Loading