()
| 72 | } |
| 73 | |
| 74 | function bindEvents(): void { |
| 75 | targetButtons.forEach((button) => { |
| 76 | button.addEventListener('click', () => { |
| 77 | const target = button.dataset.target |
| 78 | if (!isCaptureTarget(target)) { |
| 79 | return |
| 80 | } |
| 81 | |
| 82 | activeTarget = target |
| 83 | settings.defaultTarget = activeTarget |
| 84 | updateTargetButtons() |
| 85 | updateCaptureName() |
| 86 | updatePreview() |
| 87 | void persistDefaultTarget() |
| 88 | }) |
| 89 | }) |
| 90 | |
| 91 | captureNameInput?.addEventListener('input', () => { |
| 92 | isCaptureNameEdited = true |
| 93 | }) |
| 94 | |
| 95 | toggleSettingsButton?.addEventListener('click', () => { |
| 96 | updateSettingsPanel(settingsPanel?.hidden ?? true) |
| 97 | }) |
| 98 | |
| 99 | saveSettingsButton?.addEventListener('click', () => { |
| 100 | void persistSettings() |
| 101 | }) |
| 102 | |
| 103 | captureButton?.addEventListener('click', () => { |
| 104 | void captureCurrentPayload() |
| 105 | }) |
| 106 | |
| 107 | document.addEventListener('keydown', (event) => { |
| 108 | if ((event.metaKey || event.ctrlKey) && event.key === 'Enter') { |
| 109 | event.preventDefault() |
| 110 | void captureCurrentPayload() |
| 111 | return |
| 112 | } |
| 113 | |
| 114 | if (event.key === 'Escape') { |
| 115 | window.close() |
| 116 | } |
| 117 | }) |
| 118 | } |
| 119 | |
| 120 | async function persistSettings(): Promise<void> { |
| 121 | settings = readSettingsFromForm() |
no test coverage detected