Skip to content

Commit 943d077

Browse files
committed
fix ts errors
1 parent 9df2e0c commit 943d077

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

src/popup/popup.ts

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
} from '../background/chatgpt/chatgpt.js';
55

66
/* Element selectors */
7-
const selectors = {
7+
const selectors: { [key: string]: string } = {
88
fixCodeBtn: 'fix-code-btn',
99
getComplexityBtn: 'get-complexity-btn',
1010
infoMessage: 'info-message',
@@ -19,7 +19,7 @@ const selectors = {
1919
};
2020

2121
/* Chrome storage keys */
22-
const storageKeys = {
22+
const storageKeys: { [key: string]: string } = {
2323
analyzeCodeResponse: 'analyzeCodeResponse',
2424
fixCodeResponse: 'fixCodeResponse',
2525
lastAction: 'lastAction',
@@ -28,7 +28,7 @@ const storageKeys = {
2828
};
2929

3030
/* Retrieve elements from DOM */
31-
const elements = {};
31+
const elements: { [key: string]: HTMLElement | null } = {};
3232
for (let key in selectors) {
3333
elements[key] = document.getElementById(selectors[key]);
3434
}
@@ -47,19 +47,19 @@ function disableAllButtons(disabled: boolean): void {
4747
}
4848

4949
function clearResponse(): void {
50-
analyzeCodeResponse.textContent = '';
51-
fixCodeResponse.textContent = '';
50+
analyzeCodeResponse!.textContent = '';
51+
fixCodeResponse!.textContent = '';
5252
fixCodeContainer!.classList.add('hidden');
53-
analyzeCodeResponse.classList.add('hidden');
53+
analyzeCodeResponse!.classList.add('hidden');
5454
chrome.storage.local.set({ 'fixCodeResponse': '' });
5555
chrome.storage.local.set({ 'analyzeCodeResponse': '' });
5656
}
5757

5858
function setInfoMessage(message: string, duration: number) {
59-
let oldMessage = infoMessage.textContent;
60-
infoMessage.textContent = message;
59+
let oldMessage = infoMessage!.textContent;
60+
infoMessage!.textContent = message;
6161
setTimeout(() => {
62-
infoMessage.textContent = oldMessage;
62+
infoMessage!.textContent = oldMessage;
6363
}, duration);
6464
}
6565

@@ -113,8 +113,8 @@ function processCode(
113113
Offer a brief explanation(1 - 2 lines max) for each complexity analysis.
114114
Keep your analysis direct and succinct.
115115
`;
116-
infoMessage.textContent = 'Analyzing code complexity ...';
117-
analyzeCodeResponse.classList.remove('hidden');
116+
infoMessage!.textContent = 'Analyzing code complexity ...';
117+
analyzeCodeResponse!.classList.remove('hidden');
118118
fixCodeContainer!.classList.add('hidden');
119119
}
120120
else if (action === "fix") {
@@ -123,11 +123,11 @@ function processCode(
123123
If only the function definition is provided, your task is to generate the optimal solution for this problem.
124124
Conversely, if the code is provided below, there is most likely error(s) in the code.
125125
Please correct any potential issues that is preventing the submission f rom being accepted.
126-
If the code I provide is already correct and optimized, return it as is.
126+
If the provided code is already correct and optimized, return it as is.
127127
All code should be returned in plain text, with no usage of code blocks, and only essential inline comments are permitted.
128128
`;
129-
infoMessage.textContent = 'Creating the solution ...';
130-
analyzeCodeResponse.classList.add('hidden');
129+
infoMessage!.textContent = 'Creating the solution ...';
130+
analyzeCodeResponse!.classList.add('hidden');
131131
fixCodeContainer!.classList.remove('hidden');
132132
}
133133
prompt += '\n Heres the code \n' + codeText;
@@ -139,17 +139,17 @@ function processCode(
139139
if (event.type === 'answer' && event.data) {
140140
response += event.data.text;
141141
if (action === "fix") {
142-
fixCodeResponse.textContent = response;
142+
fixCodeResponse!.textContent = response;
143143
}
144144
else if (action === "analyze") {
145-
analyzeCodeResponse.textContent = response;
145+
analyzeCodeResponse!.textContent = response;
146146
}
147147
}
148148
if (event.type === 'done') {
149-
chrome.storage.local.set({ 'analyzeCodeResponse': analyzeCodeResponse.textContent });
150-
chrome.storage.local.set({ 'fixCodeResponse': fixCodeResponse.textContent });
149+
chrome.storage.local.set({ 'analyzeCodeResponse': analyzeCodeResponse!.textContent });
150+
chrome.storage.local.set({ 'fixCodeResponse': fixCodeResponse!.textContent });
151151
chrome.storage.local.set({ 'lastAction': action });
152-
infoMessage.textContent = problemTitle;
152+
infoMessage!.textContent = problemTitle;
153153
disableAllButtons(false);
154154
(window as any).Prism.highlightAll();
155155
}
@@ -177,8 +177,8 @@ async function main(): Promise<void> {
177177
if (parseInt(data.fontSize) >= 18) {
178178
let width = (parseInt(data.fontSize) * 24 + 200);
179179
document.body.style.width = `${width + 20}px`;
180-
fixCodeContainer.style.maxWidth = `${width}px`;
181-
analyzeCodeResponse.style.maxWidth = `${width}px`;
180+
fixCodeContainer!.style.maxWidth = `${width}px`;
181+
analyzeCodeResponse!.style.maxWidth = `${width}px`;
182182
}
183183

184184
let sizes = document.getElementsByClassName('material-button');
@@ -190,26 +190,26 @@ async function main(): Promise<void> {
190190

191191
chrome.storage.local.get('analyzeCodeResponse', function (data) {
192192
if (data.analyzeCodeResponse) {
193-
analyzeCodeResponse.textContent = data.analyzeCodeResponse;
193+
analyzeCodeResponse!.textContent = data.analyzeCodeResponse;
194194
(window as any).Prism.highlightAll();
195195
}
196196
});
197197

198198
chrome.storage.local.get('fixCodeResponse', function (data) {
199199
if (data.fixCodeResponse) {
200-
fixCodeResponse.textContent = data.fixCodeResponse;
200+
fixCodeResponse!.textContent = data.fixCodeResponse;
201201
(window as any).Prism.highlightAll();
202202
}
203203
});
204204

205205
chrome.storage.local.get('lastAction', function (data) {
206206
if (data.lastAction) {
207207
if (data.lastAction === "analyze") {
208-
analyzeCodeResponse.classList.remove('hidden');
209-
fixCodeContainer.classList.add('hidden');
208+
analyzeCodeResponse!.classList.remove('hidden');
209+
fixCodeContainer!.classList.add('hidden');
210210
}
211211
else if (data.lastAction === "fix") {
212-
analyzeCodeResponse.classList.add('hidden');
212+
analyzeCodeResponse!.classList.add('hidden');
213213
fixCodeContainer!.classList.remove('hidden');
214214
}
215215
}
@@ -219,7 +219,7 @@ async function main(): Promise<void> {
219219

220220
// get language from storage and set the classname of the code block to it
221221
chrome.storage.local.get('language', function (data) {
222-
fixCodeResponse.classList.add('language-' + data.language);
222+
fixCodeResponse!.classList.add('language-' + data.language);
223223
});
224224

225225
// get name of current tab and set info message to it if its a leetcode problem
@@ -241,8 +241,8 @@ async function main(): Promise<void> {
241241
initActionButton('fix-code-btn', 'fix', chatGPTProvider);
242242
initCopyButton();
243243
initClearButton();
244-
elements['getComplexityBtn'].classList.remove('hidden');
245-
elements['fixCodeBtn'].classList.remove('hidden');
244+
elements['getComplexityBtn']!.classList.remove('hidden');
245+
elements['fixCodeBtn']!.classList.remove('hidden');
246246
}
247247
else {
248248
displayLoginMessage();
@@ -259,19 +259,19 @@ async function main(): Promise<void> {
259259

260260
function initCopyButton(): void {
261261
const copyButton = elements['copyCodeBtn'];
262-
copyButton.onclick = async () => {
262+
copyButton!.onclick = async () => {
263263
setInfoMessage('Copied Code', 3000);
264-
if (fixCodeResponse.textContent) {
265-
await navigator.clipboard.writeText(fixCodeResponse.textContent);
264+
if (fixCodeResponse!.textContent) {
265+
await navigator.clipboard.writeText(fixCodeResponse!.textContent);
266266
}
267267
};
268-
copyButton.classList.remove('hidden');
268+
copyButton!.classList.remove('hidden');
269269
}
270270

271271
// init clear code button
272272
function initClearButton(): void {
273273
const clearButton = elements['clearCodeBtn']
274-
clearButton.onclick = async () => {
274+
clearButton!.onclick = async () => {
275275
setInfoMessage('Cleared Response', 3000);
276276
clearResponse();
277277
};
@@ -288,7 +288,7 @@ function handleError(error: Error): void {
288288
}
289289

290290
function displayLoginMessage(): void {
291-
elements['loginBtn'].classList.remove('hidden');
291+
elements['loginBtn']!.classList.remove('hidden');
292292
infoMessage!.textContent =
293293
'Log into ChatGPT in your browser to get started';
294294
}
@@ -306,7 +306,7 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
306306
if (message.action === 'setTabInfo') {
307307
const urlPattern = /^https:\/\/leetcode\.com\/problems\/.*\/?/;
308308
if (message.url.match(urlPattern)) {
309-
infoMessage.textContent = message.title;
309+
infoMessage!.textContent = message.title;
310310
}
311311
}
312312
});

0 commit comments

Comments
 (0)