|
1 | | -import { copyTextToClipboard, deferToNextLoop } from '../utils.js'; |
| 1 | +import { copyTextToClipboard, deferToNextLoop, safeLocalStorageSetItem } from '../utils.js'; |
2 | 2 | import { downloadPublicKeyIfPossible } from './public-key-download.js'; |
3 | 3 | import { tooltipHandler } from './tooltip.js'; |
4 | 4 | import { tokenEditor, headerEditor, payloadEditor } from './instances.js'; |
@@ -178,6 +178,32 @@ function markAsInvalidWithElement(element, clearTokenEditor = true) { |
178 | 178 | } |
179 | 179 | } |
180 | 180 |
|
| 181 | +function saveAsLastToken() { |
| 182 | + const token = getTrimmedValue(tokenEditor); |
| 183 | + if(token && token.length > 0) { |
| 184 | + safeLocalStorageSetItem('lastToken', token); |
| 185 | + } |
| 186 | + |
| 187 | + const publicKey = publicKeyTextArea.value; |
| 188 | + if(publicKey && publicKey.length > 0) { |
| 189 | + safeLocalStorageSetItem('lastPublicKey', publicKey); |
| 190 | + } |
| 191 | +} |
| 192 | + |
| 193 | +function loadToken() { |
| 194 | + const lastToken = localStorage.getItem('lastToken'); |
| 195 | + if(lastToken) { |
| 196 | + setTokenEditorValue(lastToken); |
| 197 | + |
| 198 | + const lastPublicKey = localStorage.getItem('lastPublicKey'); |
| 199 | + if(lastPublicKey) { |
| 200 | + publicKeyTextArea.value = lastPublicKey; |
| 201 | + } |
| 202 | + } else { |
| 203 | + useDefaultToken('HS256'); |
| 204 | + } |
| 205 | +} |
| 206 | + |
181 | 207 | function encodeToken() { |
182 | 208 | deferToNextLoop(fixEditorHeight); |
183 | 209 |
|
@@ -211,8 +237,10 @@ function encodeToken() { |
211 | 237 | secretInput.value : |
212 | 238 | privateKeyTextArea.value, |
213 | 239 | secretBase64Checkbox.checked); |
214 | | - |
| 240 | + |
215 | 241 | tokenEditor.setValue(encoded); |
| 242 | + |
| 243 | + saveAsLastToken(); |
216 | 244 | } catch(e) { |
217 | 245 | console.error('Failed to sign/encode token: ', e); |
218 | 246 | markAsInvalid(); |
@@ -247,6 +275,7 @@ function decodeToken() { |
247 | 275 | if(decoded.errors) { |
248 | 276 | markAsInvalidWithElement(editorElement, false); |
249 | 277 | } else { |
| 278 | + saveAsLastToken(); |
250 | 279 | verifyToken(); |
251 | 280 | } |
252 | 281 | } catch(e) { |
@@ -339,6 +368,6 @@ export function setTokenEditorValue(value) { |
339 | 368 | export function setupTokenEditor() { |
340 | 369 | setupEvents(); |
341 | 370 | selectAlgorithm('HS256'); |
342 | | - useDefaultToken('HS256'); |
| 371 | + loadToken(); |
343 | 372 | fixEditorHeight(); |
344 | 373 | } |
0 commit comments