Skip to content

Commit e59fb9b

Browse files
committed
Fix shine animation and tweak share ui slightly
1 parent 3eab5ed commit e59fb9b

File tree

5 files changed

+59
-49
lines changed

5 files changed

+59
-49
lines changed

assets/bundle.js

Lines changed: 18 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/bundle.js.map

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

css/style.css

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -181,26 +181,31 @@ label {
181181
}
182182

183183
.server-status {
184+
position: relative;
184185
visibility: hidden;
186+
overflow: hidden;
185187
}
186188

187189
.server-status::after {
188190
content: '';
189191
display: block;
190192
position: absolute;
191-
background: rgba(255, 255, 255, 0.35);
192-
width: 60px;
193+
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.0), rgba(255, 255, 255, 0.35));
194+
width: 4rem;
193195
height: 100%;
194196
top: 0;
195-
transform: translateX(-100px) skewX(-15deg);
197+
transform: translateX(-7rem) skewX(-15deg);
196198
pointer-events: none;
197199
}
198200

199201
.server-status-flash::after {
200-
transform: translateX(200px) skewX(-15deg);
201-
transition: 1s;
202+
transform: translateX(7rem) skewX(-15deg);
203+
transition: 1s;
204+
transition-timing-function: ease-in-out;
202205
}
203206

207+
208+
204209
.server-status-ok {
205210
color: white;
206211
background-image: linear-gradient(to bottom, #7d9d77, #294523);

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ <h1>Twelf Sandbox</h1>
2323
<button id="share-button">Share</button>
2424
<span id="loading-indicator"><span class="loader"></span><em>Loading Twelf Wasm...</em></span>
2525
<div class="spacer"></div>
26-
<div id="server-status" class="server-status">Server Implicitly Ok</div>
26+
<div id="server-status" class="server-status server-status-ok">Server OK</div>
2727
</div>
2828
<div class="wrap" id="twelf-response-wrap">
2929
<textarea readonly id="twelf-response" spellcheck="false"></textarea>

src/index.ts

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
import { decode, encode } from "./encoding";
22
import { WasiSnapshotPreview1, args_get, args_sizes_get, clock_time_get, environ_sizes_get, fd_write } from "./wasi";
33

4+
enum Status {
5+
OK = 0,
6+
ABORT = 1,
7+
}
8+
49
type TwelfExports = {
510
memory: WebAssembly.Memory;
611
twelf_open(argc: number, argv: number): void;
712
allocate(size: number): number;
8-
execute(): number;
13+
execute(): Status;
914
};
1015

1116
function debug(_x: string): void {
@@ -52,21 +57,17 @@ async function mkTwelfService(wasmLoc: string): Promise<TwelfService> {
5257
return new TwelfService(source.instance, output);
5358
}
5459

55-
enum Status {
56-
OK = 0,
57-
ABORT = 1,
58-
}
59-
6060
function showStatus(status: Status) {
6161
const serverStatus = (document.getElementById('server-status') as HTMLDivElement);
6262

6363
switch (status) {
6464
case Status.OK: {
6565
serverStatus.className = 'server-status server-status-ok';
66+
serverStatus.innerText = 'Server OK';
67+
6668
setTimeout(() => {
6769
serverStatus.classList.add('server-status-flash');
6870
}, 0);
69-
serverStatus.innerText = 'Server OK';
7071
}
7172
break;
7273
case Status.ABORT: {
@@ -85,22 +86,25 @@ class TwelfService {
8586

8687
const exports = this.instance.exports as TwelfExports;
8788
const mem = exports.memory;
88-
let status;
89-
try {
90-
const data = new TextEncoder().encode(input);
91-
const length = data.length;
92-
const inputBuf = exports.allocate(length);
93-
const buffer = new Uint8Array(
94-
mem.buffer,
95-
inputBuf,
96-
length,
97-
);
98-
buffer.set(data);
99-
status = exports.execute();
100-
}
101-
catch (e) {
102-
console.error(e);
103-
}
89+
90+
let status = (() => {
91+
try {
92+
const data = new TextEncoder().encode(input);
93+
const length = data.length;
94+
const inputBuf = exports.allocate(length);
95+
const buffer = new Uint8Array(
96+
mem.buffer,
97+
inputBuf,
98+
length,
99+
);
100+
buffer.set(data);
101+
return exports.execute();
102+
}
103+
catch (e) {
104+
console.error(e);
105+
return Status.ABORT;
106+
}
107+
})();
104108

105109
(document.getElementById('twelf-response') as HTMLTextAreaElement).value =
106110
this.output.join('');
@@ -127,7 +131,7 @@ async function init() {
127131

128132
if (window.location.hash) {
129133
setText(await decode(window.location.hash.substring(1)));
130-
history.replaceState(null, 'unused', window.location.href.split('#')[0]);
134+
// history.replaceState(null, 'unused', window.location.href.split('#')[0]);
131135
exec();
132136
}
133137
else {

0 commit comments

Comments
 (0)