···
38
38
"name": "Launch All Services",
39
39
"configurations": [
40
40
"Backend (dev:mock)",
41
41
-
"Webapp Dev",
41
41
+
"Webapp Dev",
42
42
"Webapp Extension Dev"
43
43
],
44
44
"stopAll": true
···
54
54
const handleExtensionTokenGeneration = async () => {
55
55
try {
56
56
setMessage('Generating extension tokens...');
57
57
-
57
57
+
58
58
const tokens = await apiClient.generateExtensionTokens();
59
59
await ExtensionService.sendTokensToExtension(tokens);
60
60
ExtensionService.clearExtensionTokensRequested();
61
61
-
61
61
+
62
62
setMessage('Extension tokens generated successfully!');
63
63
-
63
63
+
64
64
// Redirect to library after successful extension token generation
65
65
setTimeout(() => router.push('/library'), 1000);
66
66
} catch (extensionError: any) {
67
67
console.error('Failed to generate extension tokens:', extensionError);
68
68
ExtensionService.clearExtensionTokensRequested();
69
69
setMessage('Login successful, but failed to generate extension tokens');
70
70
-
70
70
+
71
71
// Still redirect to library after a delay
72
72
setTimeout(() => router.push('/library'), 2000);
73
73
}
···
7
7
8
8
if (event.data?.type === 'EXTENSION_TOKENS') {
9
9
// Forward tokens to background script
10
10
-
chrome.runtime.sendMessage({
11
11
-
type: 'WEBAPP_TOKENS_RECEIVED',
12
12
-
accessToken: event.data.accessToken,
13
13
-
refreshToken: event.data.refreshToken
14
14
-
}).catch((error) => {
15
15
-
console.error('Failed to forward tokens to background script:', error);
16
16
-
});
10
10
+
chrome.runtime
11
11
+
.sendMessage({
12
12
+
type: 'WEBAPP_TOKENS_RECEIVED',
13
13
+
accessToken: event.data.accessToken,
14
14
+
refreshToken: event.data.refreshToken,
15
15
+
})
16
16
+
.catch((error) => {
17
17
+
console.error('Failed to forward tokens to background script:', error);
18
18
+
});
17
19
}
18
20
});
···
54
54
});
55
55
}, []);
56
56
57
57
-
const getStoredRefreshToken = useCallback(async (): Promise<string | null> => {
57
57
+
const getStoredRefreshToken = useCallback(async (): Promise<
58
58
+
string | null
59
59
+
> => {
58
60
return new Promise((resolve) => {
59
61
if (typeof chrome !== 'undefined' && chrome.storage) {
60
62
chrome.storage.local.get(['refreshToken'], (result) => {
···
130
132
131
133
if (typeof chrome !== 'undefined' && chrome.runtime?.onMessage) {
132
134
chrome.runtime.onMessage.addListener(handleAuthStateChange);
133
133
-
135
135
+
134
136
return () => {
135
137
chrome.runtime.onMessage.removeListener(handleAuthStateChange);
136
138
};