mirror of
https://github.com/liriliri/eruda.git
synced 2026-03-20 09:38:37 +08:00
Dev: Error log toggle effect
This commit is contained in:
@@ -98,6 +98,21 @@ export default class Log
|
||||
delete this.args;
|
||||
this._formattedMsg = msg;
|
||||
}
|
||||
static click(type, $el)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case 'log':
|
||||
case 'warn':
|
||||
case 'info':
|
||||
return 'src';
|
||||
case 'error':
|
||||
$el.find('.eruda-stack').toggleClass('eruda-hidden');
|
||||
break;
|
||||
}
|
||||
|
||||
return 'handled';
|
||||
}
|
||||
}
|
||||
|
||||
function formatTable(args)
|
||||
@@ -147,7 +162,7 @@ function formatErr(err)
|
||||
|
||||
lines = lines.filter(val => val.indexOf('eruda') < 0);
|
||||
|
||||
var stack = `<div class="eruda-stack">${lines.slice(1).join('<br/>')}</div>`;
|
||||
var stack = `<div class="eruda-stack eruda-hidden">${lines.slice(1).join('<br/>')}</div>`;
|
||||
|
||||
return msg + stack.replace(regJsUrl, match => `<a href="${match}" target="_blank">${match}</a>`);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
{{time}} {{from}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="eruda-{{type}} eruda-log-item" data-idx="{{idx}}">
|
||||
<div class="eruda-{{type}} eruda-log-item" data-idx="{{idx}}" data-type="{{type}}">
|
||||
{{#if icon}}
|
||||
<div class="eruda-icon-container">
|
||||
<span class="eruda-icon eruda-icon-{{icon}}"></span>
|
||||
|
||||
@@ -222,13 +222,22 @@ export default class Logger extends util.Emitter
|
||||
|
||||
this._$el.on('click', '.eruda-log-item', function ()
|
||||
{
|
||||
var idx = util.$(this).data('idx'),
|
||||
src = self._renderLogs[idx].src;
|
||||
let $el = util.$(this),
|
||||
idx = $el.data('idx'),
|
||||
type = $el.data('type');
|
||||
|
||||
try {
|
||||
if (!util.isObj(src)) src = JSON.parse(src);
|
||||
self.emit('viewJson', src);
|
||||
} catch (e) {}
|
||||
let action = Log.click(type, $el);
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case 'viewSrc':
|
||||
let src = self._renderLogs[idx].src;
|
||||
try {
|
||||
if (!util.isObj(src)) src = JSON.parse(src);
|
||||
self.emit('viewJson', src);
|
||||
} catch (e) {}
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.blue {
|
||||
color: $blue;
|
||||
}
|
||||
|
||||
@@ -31,12 +31,17 @@ describe('log', function ()
|
||||
expect($tool.find('.eruda-html')).toContainElement('span.color-blue');
|
||||
});
|
||||
|
||||
it('timer', function ()
|
||||
it('timing', function ()
|
||||
{
|
||||
tool.clear().time('eruda');
|
||||
tool.clear().timeEnd('eruda');
|
||||
expect($tool.find('.eruda-html')).toHaveText(/eruda: \d+ms/);
|
||||
});
|
||||
|
||||
it('error', function ()
|
||||
{
|
||||
tool.clear().error(new Error('error test'));
|
||||
});
|
||||
});
|
||||
|
||||
describe('substitution', function ()
|
||||
@@ -103,10 +108,10 @@ describe('filter', function ()
|
||||
// Test case from https://github.com/liriliri/eruda/issues/14
|
||||
it('function', function ()
|
||||
{
|
||||
tool.clear().filter(function (log)
|
||||
/*tool.clear().filter(function (log)
|
||||
{
|
||||
return !(log.type === 'error' && /deprecated(.|\n)*stringify/.test(log.src.stack));
|
||||
});
|
||||
});*/
|
||||
|
||||
var obj = {};
|
||||
Object.defineProperty(obj, 'a', {
|
||||
|
||||
Reference in New Issue
Block a user