Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • C create-react-app
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,547
    • Issues 1,547
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 417
    • Merge requests 417
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Meta
  • create-react-app
  • Merge requests
  • !2111

༼ つ ◕_◕ ༽つ stack-frame-overlay

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/Timer/overlay-package into master 8 years ago
  • Overview 10
  • Commits 18
  • Pipelines 0
  • Changes 42

Created by: Timer

Compare
  • master (base)

and
  • latest version
    91c71bf9
    18 commits, 2 years ago

42 files
+ 1987
- 1168

    Preferences

    File browser
    Compare changes
pack‎ages‎
react-d‎ev-utils‎
crashOv‎erlay.js‎ +0 -1165
react-err‎or-overlay‎
s‎rc‎
__te‎sts__‎
setupJ‎est.js‎ +0 -0
compo‎nents‎
additi‎onal.js‎ +52 -0
clos‎e.js‎ +25 -0
cod‎e.js‎ +89 -0
foot‎er.js‎ +22 -0
fram‎e.js‎ +232 -0
fram‎es.js‎ +117 -0
overl‎ay.js‎ +74 -0
eff‎ects‎
proxyCo‎nsole.js‎ +15 -0
shortc‎uts.js‎ +44 -0
stackTrac‎eLimit.js‎ +36 -0
unhandle‎dError.js‎ +40 -0
unhandledR‎ejection.js‎ +46 -0
ut‎ils‎
d‎om‎
absolutif‎yCaret.js‎ +34 -0
consume‎Event.js‎ +9 -0
css‎.js‎ +40 -0
enableTa‎bClick.js‎ +15 -0
errorReg‎ister.js‎ +64 -0
getLines‎Around.js‎ +30 -0
getSour‎ceMap.js‎ +118 -0
isIntern‎alFile.js‎ +10 -0
mapp‎er.js‎ +60 -0
pars‎er.js‎ +78 -0
stack-f‎rame.js‎ +101 -0
unmap‎per.js‎ +102 -0
inde‎x.js‎ +9 -0
overl‎ay.js‎ +217 -0
styl‎es.js‎ +186 -0
.bab‎elrc‎ +3 -0
.esl‎intrc‎ +3 -0
.flow‎config‎ +8 -0
.giti‎gnore‎ +2 -0
.npmi‎gnore‎ +3 -0
READ‎ME.md‎ +11 -0
packag‎e.json‎ +71 -0
react-‎scripts‎
con‎fig‎
webpack.co‎nfig.dev.js‎ +1 -1
packag‎e.json‎ +1 -0
ta‎sks‎
e2e-ins‎talls.sh‎ +4 -0
e2e-kitch‎ensink.sh‎ +4 -0
e2e-si‎mple.sh‎ +10 -1
packag‎e.json‎ +1 -1
packages/react-dev-utils/crashOverlay.js deleted 100644 → 0
+ 0
- 1165
  • View file @ f35593c1

Files with large changes are collapsed by default.

packages/react-error-overlay/src/__tests__/setupJest.js 0 → 100644
+ 0
- 0
  • View file @ 91c71bf9

  • Edit in single-file editor

  • Open in Web IDE

packages/react-error-overlay/src/components/additional.js 0 → 100644
+ 52
- 0
  • View file @ 91c71bf9

  • Edit in single-file editor

  • Open in Web IDE

 
/* @flow */
 
import { applyStyles } from '../utils/dom/css';
 
import { groupStyle, groupElemLeft, groupElemRight } from '../styles';
 
import { consumeEvent } from '../utils/dom/consumeEvent';
 
import { enableTabClick } from '../utils/dom/enableTabClick';
 
 
type SwitchCallback = (offset: number) => void;
 
function updateAdditional(
 
document: Document,
 
additionalReference: HTMLDivElement,
 
currentError: number,
 
totalErrors: number,
 
switchCallback: SwitchCallback
 
) {
 
if (additionalReference.lastChild) {
 
additionalReference.removeChild(additionalReference.lastChild);
 
}
 
 
let text = ' ';
 
if (totalErrors <= 1) {
 
additionalReference.appendChild(document.createTextNode(text));
 
return;
 
}
 
text = `Errors ${currentError} of ${totalErrors}`;
 
const span = document.createElement('span');
 
span.appendChild(document.createTextNode(text));
 
const group = document.createElement('span');
 
applyStyles(group, groupStyle);
 
const left = document.createElement('button');
 
applyStyles(left, groupElemLeft);
 
left.addEventListener('click', function(e: MouseEvent) {
 
consumeEvent(e);
 
switchCallback(-1);
 
});
 
left.appendChild(document.createTextNode('←'));
 
enableTabClick(left);
 
const right = document.createElement('button');
 
applyStyles(right, groupElemRight);
 
right.addEventListener('click', function(e: MouseEvent) {
 
consumeEvent(e);
 
switchCallback(1);
 
});
 
right.appendChild(document.createTextNode('→'));
 
enableTabClick(right);
 
group.appendChild(left);
 
group.appendChild(right);
 
span.appendChild(group);
 
additionalReference.appendChild(span);
 
}
 
 
export type { SwitchCallback };
 
export { updateAdditional };
packages/react-error-overlay/src/components/close.js 0 → 100644
+ 25
- 0
  • View file @ 91c71bf9

  • Edit in single-file editor

  • Open in Web IDE

 
/* @flow */
 
import { applyStyles } from '../utils/dom/css';
 
import { hintsStyle, hintStyle, closeButtonStyle } from '../styles';
 
 
function createHint(document: Document, hint: string) {
 
const span = document.createElement('span');
 
span.appendChild(document.createTextNode(hint));
 
applyStyles(span, hintStyle);
 
return span;
 
}
 
 
type CloseCallback = () => void;
 
function createClose(document: Document, callback: CloseCallback) {
 
const hints = document.createElement('div');
 
applyStyles(hints, hintsStyle);
 
 
const close = createHint(document, '×');
 
close.addEventListener('click', () => callback());
 
applyStyles(close, closeButtonStyle);
 
hints.appendChild(close);
 
return hints;
 
}
 
 
export type { CloseCallback };
 
export { createClose };
packages/react-error-overlay/src/components/code.js 0 → 100644
+ 89
- 0
  • View file @ 91c71bf9

  • Edit in single-file editor

  • Open in Web IDE

 
/* @flow */
 
import type { ScriptLine } from '../utils/stack-frame';
 
import { applyStyles } from '../utils/dom/css';
 
import { absolutifyCaret } from '../utils/dom/absolutifyCaret';
 
import {
 
preStyle,
 
codeStyle,
 
primaryErrorStyle,
 
secondaryErrorStyle,
 
} from '../styles';
 
 
import generateAnsiHtml from 'react-dev-utils/ansiHTML';
 
 
import codeFrame from 'babel-code-frame';
 
 
function createCode(
 
document: Document,
 
sourceLines: ScriptLine[],
 
lineNum: number,
 
columnNum: number | null,
 
contextSize: number,
 
main: boolean = false
 
) {
 
const sourceCode = [];
 
let whiteSpace = Infinity;
 
sourceLines.forEach(function(e) {
 
const { content: text } = e;
 
const m = text.match(/^\s*/);
 
if (text === '') {
 
return;
 
}
 
if (m && m[0]) {
 
whiteSpace = Math.min(whiteSpace, m[0].length);
 
} else {
 
whiteSpace = 0;
 
}
 
});
 
sourceLines.forEach(function(e) {
 
let { content: text } = e;
 
const { lineNumber: line } = e;
 
 
if (isFinite(whiteSpace)) {
 
text = text.substring(whiteSpace);
 
}
 
sourceCode[line - 1] = text;
 
});
 
const ansiHighlight = codeFrame(
 
sourceCode.join('\n'),
 
lineNum,
 
columnNum == null ? 0 : columnNum - (isFinite(whiteSpace) ? whiteSpace : 0),
 
{
 
forceColor: true,
 
linesAbove: contextSize,
 
linesBelow: contextSize,
 
}
 
);
 
const htmlHighlight = generateAnsiHtml(ansiHighlight);
 
const code = document.createElement('code');
 
code.innerHTML = htmlHighlight;
 
absolutifyCaret(code);
 
applyStyles(code, codeStyle);
 
 
const ccn = code.childNodes;
 
// eslint-disable-next-line
 
oLoop: for (let index = 0; index < ccn.length; ++index) {
 
const node = ccn[index];
 
const ccn2 = node.childNodes;
 
for (let index2 = 0; index2 < ccn2.length; ++index2) {
 
const lineNode = ccn2[index2];
 
const text = lineNode.innerText;
 
if (text == null) {
 
continue;
 
}
 
if (text.indexOf(' ' + lineNum + ' |') === -1) {
 
continue;
 
}
 
// $FlowFixMe
 
applyStyles(node, main ? primaryErrorStyle : secondaryErrorStyle);
 
// eslint-disable-next-line
 
break oLoop;
 
}
 
}
 
const pre = document.createElement('pre');
 
applyStyles(pre, preStyle);
 
pre.appendChild(code);
 
return pre;
 
}
 
 
export { createCode };
0 Assignees
None
Assign to
0 Reviewers
None
Request review from
Labels
2
issue: typescript tag: documentation
2
issue: typescript tag: documentation
    Assign labels
  • Manage project labels

Milestone
2.1
2.1
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
0
0 participants
Reference: facebook/create-react-app!5533
Source branch: github/fork/Timer/overlay-package

Menu

Explore Projects Groups Snippets