Skip to content

Commit 40ff55c

Browse files
committed
Use tippy for claims tooltips.
1 parent 8a474e3 commit 40ff55c

File tree

3 files changed

+32
-13
lines changed

3 files changed

+32
-13
lines changed

src/editor/claims-tooltip.js

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,25 @@ import { claimsTooltipElement } from '../dom-elements.js';
22
import { timeClaims } from './time-tooltip.js';
33
import { stringifyIndentSpaces } from './utils.js';
44
import strings from '../strings.js';
5+
import {
6+
payloadElement,
7+
headerElement,
8+
decodedElement
9+
} from '../dom-elements.js';
10+
11+
import tippy from 'tippy.js';
512

613
function hideTooltip() {
7-
claimsTooltipElement.style.display = 'none';
14+
decodedElement._tippy.hide();
815
}
916

10-
function showTooltip(x, y, text) {
11-
claimsTooltipElement.firstChild.textContent = text;
12-
claimsTooltipElement.style.left = x + 'px';
13-
claimsTooltipElement.style.top = y + 'px';
14-
claimsTooltipElement.style.display = 'block';
17+
function showTooltip(text) {
18+
decodedElement.title = text;
19+
decodedElement._tippy.show();
1520
}
1621

17-
export function claimsTooltipHandler(event) {
22+
function tooltipHandler(event) {
1823
const editor = event.currentTarget.querySelector('.CodeMirror').CodeMirror;
19-
//const editor = event.currentTarget.firstChild.CodeMirror;
2024

2125
if(!editor) {
2226
return;
@@ -52,5 +56,21 @@ export function claimsTooltipHandler(event) {
5256
return;
5357
}
5458

55-
showTooltip(event.pageX, event.pageY, claimText);
59+
showTooltip(claimText);
60+
}
61+
62+
export function setupClaimsTooltip() {
63+
tippy(decodedElement, {
64+
placement: 'left',
65+
arrow: true,
66+
followCursor: true,
67+
performance: true,
68+
size: 'large',
69+
dynamicTitle: true,
70+
arrowTransform: 'scale(0.75)',
71+
distance: 20
72+
});
73+
74+
payloadElement.addEventListener('mousemove', tooltipHandler);
75+
headerElement.addEventListener('mousemove', tooltipHandler);
5676
}

src/editor/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
} from '../utils.js';
66
import { downloadPublicKeyIfPossible } from './public-key-download.js';
77
import { timeTooltipHandler } from './time-tooltip.js';
8-
import { claimsTooltipHandler } from './claims-tooltip.js';
8+
import { setupClaimsTooltip } from './claims-tooltip.js';
99
import { tokenEditor, headerEditor, payloadEditor } from './instances.js';
1010
import {
1111
getTrimmedValue,
@@ -372,8 +372,6 @@ function setupEvents() {
372372

373373
// Human readable timestamp tooltips
374374
payloadElement.addEventListener('mousemove', timeTooltipHandler);
375-
payloadElement.addEventListener('mousemove', claimsTooltipHandler);
376-
headerElement.addEventListener('mousemove', claimsTooltipHandler);
377375

378376
setupTabEvents();
379377
}
@@ -397,4 +395,5 @@ export function setupTokenEditor() {
397395
loadToken();
398396
fixEditorHeight();
399397
setupSecretLengthTooltip();
398+
setupClaimsTooltip();
400399
}

views/token-editor-common.pug

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#encoded-jwt.box-content.current
1212
.input.js-input
1313
#decoded-jwt.box-content
14-
.output
14+
.output(title='placeholder')
1515
#js-claims-tooltip placeholder
1616
.jwt-explained.jwt-header
1717
p.text-line HEADER:

0 commit comments

Comments
 (0)