MCPcopy
hub / github.com/facebook/react / getRenderedAttributeValue

Function getRenderedAttributeValue

fixtures/attribute-behavior/src/App.js:241–429  ·  view source on GitHub ↗
(
  react,
  renderer,
  serverRenderer,
  attribute,
  type
)

Source from the content-addressed store, hash-verified

239
240const UNKNOWN_HTML_TAGS = new Set(['keygen', 'time', 'command']);
241async function getRenderedAttributeValue(
242 react,
243 renderer,
244 serverRenderer,
245 attribute,
246 type
247) {
248 const originalConsoleError = console.error;
249 console.error = warn;
250
251 const containerTagName = attribute.containerTagName || 'div';
252 const tagName = attribute.tagName || 'div';
253
254 function createContainer() {
255 if (containerTagName === 'svg') {
256 return document.createElementNS('http://www.w3.org/2000/svg', 'svg');
257 } else if (containerTagName === 'document') {
258 return document.implementation.createHTMLDocument('');
259 } else if (containerTagName === 'head') {
260 return document.implementation.createHTMLDocument('').head;
261 } else {
262 return document.createElement(containerTagName);
263 }
264 }
265
266 const read = attribute.read;
267 let testValue = type.testValue;
268 if (attribute.overrideStringValue !== undefined) {
269 switch (type.name) {
270 case 'string':
271 testValue = attribute.overrideStringValue;
272 break;
273 case 'array with string':
274 testValue = [attribute.overrideStringValue];
275 break;
276 default:
277 break;
278 }
279 }
280 let baseProps = {
281 ...attribute.extraProps,
282 };
283 if (attribute.type) {
284 baseProps.type = attribute.type;
285 }
286 const props = {
287 ...baseProps,
288 [attribute.name]: testValue,
289 };
290
291 let defaultValue;
292 let canonicalDefaultValue;
293 let result;
294 let canonicalResult;
295 let ssrResult;
296 let canonicalSsrResult;
297 let didWarn;
298 let didError;

Callers 1

Calls 6

getCanonicalizedValueFunction · 0.85
createContainerFunction · 0.70
renderToStringFunction · 0.70
renderMethod · 0.65
hasMethod · 0.65
readFunction · 0.50

Tested by

no test coverage detected