Skip to content

Commit f69296c

Browse files
committed
minor
shorter english mode name; word break on message; use enum for mode handling
1 parent 0c75245 commit f69296c

File tree

3 files changed

+26
-23
lines changed

3 files changed

+26
-23
lines changed

app/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ <h2>Image cipher
2424

2525
Mode:
2626
<span class="mode-select-span">
27-
<input type="radio" name="mode" id="cipherModeInput" checked> Cryptography
27+
<input type="radio" name="mode" id="cipherModeInput" checked> Crypto
2828
</span>
2929
<span class="mode-select-span">
30-
<input type="radio" name="mode" id="steganoModeInput"> Steganography
30+
<input type="radio" name="mode" id="steganoModeInput"> Stegano
3131
</span>
3232
</div>
3333

app/script.js

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,16 @@ const footer = document.getElementById('footer');
2626

2727
const worker = new Worker('./worker.js', { type: 'module' });
2828

29+
const Mode = Object.freeze({
30+
CRYPTO: 'crypto',
31+
STEGANO: 'stegano'
32+
});
2933
function onModeChange(mode) {
30-
if (mode === 'crypto') {
34+
if (mode === Mode.CRYPTO) {
3135
msgInputContainer.style.display = 'none';
3236
imTypeSelect.disabled = false;
3337
imTypeContainer.style.display = 'block';
34-
} else if (mode === 'stegano') {
38+
} else if (mode === Mode.STEGANO) {
3539
msgInputContainer.style.display = 'flex';
3640
imTypeSelect.value = 'png';
3741
imTypeSelect.dispatchEvent(new Event('change'));
@@ -60,24 +64,24 @@ function onModeChange(mode) {
6064
case 'steganography':
6165
cipherModeInput.checked = false;
6266
steganoModeInput.checked = true;
63-
onModeChange('stegano');
67+
onModeChange(Mode.STEGANO);
6468
break;
6569
case 'cipher':
6670
case 'crypto':
6771
case 'cryptography':
6872
default:
6973
cipherModeInput.checked = true;
7074
steganoModeInput.checked = false;
71-
onModeChange('crypto');
75+
onModeChange(Mode.CRYPTO);
7276
break;
7377
}
7478
}
7579

7680
function getMode() {
7781
if (cipherModeInput.checked) {
78-
return 'crypto';
82+
return Mode.CRYPTO;
7983
} else if (steganoModeInput.checked) {
80-
return 'stegano';
84+
return Mode.STEGANO;
8185
}
8286
throw new Error("No mode selected");
8387
}
@@ -93,11 +97,9 @@ function checkInputRaise() {
9397
showError("No image file selected");
9498
throw new Error("No image file selected");
9599
}
96-
if (secretInput.value.trim() === '') {
97-
if (getMode() === 'crypto') {
98-
showError("Secret cannot be empty");
99-
throw new Error("Secret cannot be empty");
100-
}
100+
if (secretInput.value.trim() === '' && getMode() === Mode.CRYPTO) {
101+
showError("Secret cannot be empty");
102+
throw new Error("Secret cannot be empty");
101103
}
102104
}
103105

@@ -158,7 +160,7 @@ async function encode_image() {
158160

159161
ensureOutput();
160162
switch (getMode()) {
161-
case 'crypto':
163+
case Mode.CRYPTO:
162164
worker.postMessage({
163165
type: 'encode',
164166
buffer: inputBlob,
@@ -167,7 +169,7 @@ async function encode_image() {
167169
outputAs: imTypeSelect.value
168170
});
169171
break;
170-
case 'stegano':
172+
case Mode.STEGANO:
171173
worker.postMessage({
172174
type: 'stega_encode',
173175
buffer: inputBlob,
@@ -190,7 +192,7 @@ async function decode_image() {
190192

191193
ensureOutput();
192194
switch (getMode()) {
193-
case 'crypto':
195+
case Mode.CRYPTO:
194196
worker.postMessage({
195197
type: 'decode',
196198
buffer: inputBlob,
@@ -199,7 +201,7 @@ async function decode_image() {
199201
outputAs: imTypeSelect.value
200202
});
201203
break;
202-
case 'stegano':
204+
case Mode.STEGANO:
203205
worker.postMessage({
204206
type: 'stega_decode',
205207
buffer: inputBlob,
@@ -234,6 +236,7 @@ worker.onmessage = async (event) => {
234236
messageElem.textContent = event.data.message;
235237
outputDiv.appendChild(messageElem);
236238
messageElem.style.whiteSpace = 'pre-wrap';
239+
messageElem.style.wordBreak = 'break-all';
237240
downloadBtnContainer.style.display = 'none';
238241
}
239242
};
@@ -245,12 +248,12 @@ worker.onmessage = async (event) => {
245248

246249
steganoModeInput.addEventListener('change', () => {
247250
if (steganoModeInput.checked) {
248-
onModeChange('stegano');
251+
onModeChange(Mode.STEGANO);
249252
}
250253
})
251254
cipherModeInput.addEventListener('change', () => {
252255
if (cipherModeInput.checked) {
253-
onModeChange('crypto');
256+
onModeChange(Mode.CRYPTO);
254257
}
255258
})
256259

app/worker.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ self.onmessage = async function(event) {
1313
if (type === 'encode') {
1414
const encoded = encode(buffer, secret, maxSide, outputAs);
1515
self.postMessage({
16-
type: 'encoded',
16+
type,
1717
buffer: encoded,
1818
format: outputAs
1919
});
2020
}
2121
if (type === 'decode') {
2222
const decoded = decode(buffer, secret, maxSide, outputAs);
2323
self.postMessage({
24-
type: 'decoded',
24+
type,
2525
buffer: decoded,
2626
format: outputAs
2727
});
@@ -30,7 +30,7 @@ self.onmessage = async function(event) {
3030
if (type === 'stega_encode') {
3131
const encoded = stega_encode(buffer, message, secret, maxSide);
3232
self.postMessage({
33-
type: 'stega_encode',
33+
type,
3434
buffer: encoded,
3535
format: 'png',
3636
});
@@ -39,7 +39,7 @@ self.onmessage = async function(event) {
3939
if (type === 'stega_decode') {
4040
const decoded = stega_decode(buffer, secret, maxSide);
4141
self.postMessage({
42-
type: 'stega_decode',
42+
type,
4343
message: decoded,
4444
});
4545
}

0 commit comments

Comments
 (0)