mirror of
https://github.com/roytam1/UXP.git
synced 2026-05-27 21:38:34 +00:00
72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
// Make this available to both AMD and CJS environments
|
|
define(function (require, exports, module) {
|
|
// Dependencies
|
|
const React = require("devtools/client/shared/vendor/react");
|
|
const { sanitizeString, isGrip } = require("./rep-utils");
|
|
// Shortcuts
|
|
const { span } = React.DOM;
|
|
|
|
/**
|
|
* Renders a long string grip.
|
|
*/
|
|
const LongStringRep = React.createClass({
|
|
displayName: "LongStringRep",
|
|
|
|
propTypes: {
|
|
useQuotes: React.PropTypes.bool,
|
|
style: React.PropTypes.object,
|
|
},
|
|
|
|
getDefaultProps: function () {
|
|
return {
|
|
useQuotes: true,
|
|
};
|
|
},
|
|
|
|
render: function () {
|
|
let {
|
|
cropLimit,
|
|
member,
|
|
object,
|
|
style,
|
|
useQuotes
|
|
} = this.props;
|
|
let {fullText, initial, length} = object;
|
|
|
|
let config = {className: "objectBox objectBox-string"};
|
|
if (style) {
|
|
config.style = style;
|
|
}
|
|
|
|
let string = member && member.open
|
|
? fullText || initial
|
|
: initial.substring(0, cropLimit);
|
|
|
|
if (string.length < length) {
|
|
string += "\u2026";
|
|
}
|
|
let formattedString = useQuotes ? `"${string}"` : string;
|
|
return span(config, sanitizeString(formattedString));
|
|
},
|
|
});
|
|
|
|
function supportsObject(object, type) {
|
|
if (!isGrip(object)) {
|
|
return false;
|
|
}
|
|
return object.type === "longString";
|
|
}
|
|
|
|
// Exports from this module
|
|
exports.LongStringRep = {
|
|
rep: LongStringRep,
|
|
supportsObject: supportsObject,
|
|
};
|
|
});
|