') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); docs: fix imported types not showing up in docs by Brailor · Pull Request #667 · instructure/instructure-ui · GitHub
Skip to content

docs: fix imported types not showing up in docs - #667

Merged
Brailor merged 2 commits into
masterfrom
INSTUI-3222/fix-imported-types-not-showing-in-docs
Aug 5, 2021
Merged

docs: fix imported types not showing up in docs#667
Brailor merged 2 commits into
masterfrom
INSTUI-3222/fix-imported-types-not-showing-in-docs

Conversation

@Brailor

@BrailorBrailor commented Aug 3, 2021

Copy link
Copy Markdown
Contributor

This PR fix the issue with our current solution for importing propTypes and TS types not showing up in the documentation.
It uses an upcoming feature of react-docgen, thus I bumped its version from 5 to 6.alpha
For more info: reactjs/react-docgen#352

@Brailor
Brailorforce-pushed the INSTUI-3222/fix-imported-types-not-showing-in-docs branch from 7b9e403 to 70118ebCompareAugust 3, 2021 12:15
{
filename: fileName
filename: fileName,
importer: reactDocgen.importers.makeFsImporter()

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new upcoming feature of react-docgen allows us to operate on imported types as well.

"jsdoc-api": "^6.0.0",
"mkdirp": "^1",
"react-docgen": "^5",
"react-docgen": "^6.0.0-alpha.0",

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new importer feature is not fully released in production yet, but according to the maintainers of the repo v6 won't contain any breaking changes, so it seems like a safe thing for us to use the pre-release version of the lib.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The yarn.lock is missing, please add it :) I couldn't find any problems with it, the View props display correctly now, and it could recognise the "query" and "props" prop of Responsive as "object" (typeof this and that) too. Well, it cannot go deeper than one level, but that's why we need that type-linking ticket too :)

@Brailor
Brailor requested a review from ke1k0August 3, 2021 12:25
@github-actions

github-actionsBot commented Aug 3, 2021

Copy link
Copy Markdown
Contributor

@Brailor
Brailor requested a review from HerrTopiAugust 3, 2021 12:28
"jsdoc-api": "^6.0.0",
"mkdirp": "^1",
"react-docgen": "^5",
"react-docgen": "^6.0.0-alpha.0",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The yarn.lock is missing, please add it :) I couldn't find any problems with it, the View props display correctly now, and it could recognise the "query" and "props" prop of Responsive as "object" (typeof this and that) too. Well, it cannot go deeper than one level, but that's why we need that type-linking ticket too :)

@Brailor
Brailor merged commit d8ab044 into masterAug 5, 2021
@Brailor
Brailor deleted the INSTUI-3222/fix-imported-types-not-showing-in-docs branch August 5, 2021 07:28
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Brailor@ke1k0@HerrTopi