-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
93 lines (82 loc) · 2.52 KB
/
Copy pathindex.html
File metadata and controls
93 lines (82 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Braid View</title>
<style>
html, body { width: 100%; height: 100%; margin: 0; padding: 0; }
body { display: flex; flex-direction: column; }
#auth-bar {
padding: 6px 10px;
background: #f5f5f5;
border-bottom: 1px solid #ccc;
font-family: monospace;
font-size: 13px;
display: flex;
align-items: center;
gap: 8px;
}
#auth-bar label { white-space: nowrap; }
#auth-bar input {
flex: 1;
padding: 4px 6px;
border: 1px solid #ccc;
font-family: monospace;
font-size: 13px;
min-width: 0;
}
braid-view { display: block; flex: 1; min-height: 0; }
</style>
</head>
<body>
<div id="auth-bar" style="display:none">
<label for="bearer-input">Authorization: Bearer</label>
<input type="text" id="bearer-input" placeholder="Paste token here">
</div>
<!-- braid-http -->
<script src="/braid-http-client.js"></script>
<!-- braid-text client -->
<script src="/myers-diff.js"></script>
<script src="/text-client.js"></script>
<script src="/simpleton.js"></script>
<script src="/textarea-highlights.js"></script>
<script src="/cursor-sync.js"></script>
<script src="/syncarea.js"></script>
<!-- braid-blob client -->
<script src="/client.js"></script>
<!-- braid-view -->
<script src="/json-patch.js"></script>
<script src="/braid-view.js"></script>
<script>
var url = location.pathname.slice(1)
if (url) {
// Scope saved tokens to the target origin (scheme + host + port)
var target_origin = new URL(url).origin
var storage_key = 'bearer:' + target_origin
var auth_bar = document.getElementById('auth-bar')
var input = document.getElementById('bearer-input')
auth_bar.style.display = 'flex'
// Load any previously saved token
var saved = localStorage.getItem(storage_key) || ''
input.value = saved
var viewer = document.createElement('braid-view')
// Route through our server's /proxy/ to avoid CORS issues
viewer.setAttribute('src', '/proxy/' + url)
if (saved) viewer.setAttribute('bearer', saved)
document.body.appendChild(viewer)
// Save and re-apply on change (fires on blur or Enter, not every keystroke)
input.onchange = () => {
var token = input.value
if (token) {
localStorage.setItem(storage_key, token)
viewer.setAttribute('bearer', token)
} else {
localStorage.removeItem(storage_key)
viewer.removeAttribute('bearer')
}
}
}
</script>
</body>
</html>