Merge pull request #9437 from backstage/rugvip/report-fixes

core-components,catalog-react: clean up API reports
This commit is contained in:
Patrik Oldsberg
2022-02-09 19:12:11 +01:00
committed by GitHub
7 changed files with 48 additions and 1384 deletions
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/core-components': patch
'@backstage/plugin-catalog-react': patch
---
Updated React component type declarations to avoid exporting exotic component types.
File diff suppressed because it is too large Load Diff
@@ -31,6 +31,13 @@ import { Link, LinkProps } from '../Link';
export type ButtonProps = MaterialButtonProps &
Omit<LinkProps, 'variant' | 'color'>;
/**
* This wrapper is here to reset the color of the Link and make typescript happy.
*/
const LinkWrapper = React.forwardRef<any, LinkProps>((props, ref) => (
<Link ref={ref} {...props} color="initial" />
));
/**
* Thin wrapper on top of material-ui's {@link https://v4.mui.com/components/buttons/ | Button} component
*
@@ -39,23 +46,6 @@ export type ButtonProps = MaterialButtonProps &
*
* Makes the Button to utilise react-router
*/
declare function ButtonType(props: ButtonProps): JSX.Element;
/**
* This wrapper is here to reset the color of the Link and make typescript happy.
*/
const LinkWrapper = React.forwardRef<any, LinkProps>((props, ref) => (
<Link ref={ref} {...props} color="initial" />
));
/** @public */
const ActualButton = React.forwardRef<any, ButtonProps>((props, ref) => (
export const Button = React.forwardRef<any, ButtonProps>((props, ref) => (
<MaterialButton ref={ref} component={LinkWrapper} {...props} />
)) as { (props: ButtonProps): JSX.Element };
// TODO(Rugvip): We use this as a workaround to make the exported type be a
// function, which makes our API reference docs much nicer.
// The first type to be exported gets priority, but it will
// be thrown away when compiling to JS.
// @ts-ignore
export { ButtonType as Button, ActualButton as Button };
)) as (props: ButtonProps) => JSX.Element;
@@ -32,8 +32,6 @@ export type LinkProps = MaterialLinkProps &
noTrack?: boolean;
};
declare function LinkType(props: LinkProps): JSX.Element;
/**
* Given a react node, try to retrieve its text content.
*/
@@ -62,7 +60,7 @@ const getNodeText = (node: React.ReactNode): string => {
* - Makes the Link use react-router
* - Captures Link clicks as analytics events.
*/
const ActualLink = React.forwardRef<any, LinkProps>(
export const Link = React.forwardRef<any, LinkProps>(
({ onClick, noTrack, ...props }, ref) => {
const analytics = useAnalytics();
const to = String(props.to);
@@ -96,11 +94,4 @@ const ActualLink = React.forwardRef<any, LinkProps>(
/>
);
},
);
// TODO(Rugvip): We use this as a workaround to make the exported type be a
// function, which makes our API reference docs much nicer.
// The first type to be exported gets priority, but it will
// be thrown away when compiling to JS.
// @ts-ignore
export { LinkType as Link, ActualLink as Link };
) as (props: LinkProps) => JSX.Element;
@@ -21,13 +21,18 @@ import useMediaQuery from '@material-ui/core/useMediaQuery';
import Badge from '@material-ui/core/Badge';
import TextField from '@material-ui/core/TextField';
import Typography from '@material-ui/core/Typography';
import { CreateCSSProperties } from '@material-ui/core/styles/withStyles';
import {
CreateCSSProperties,
StyledComponentProps,
} from '@material-ui/core/styles/withStyles';
import ArrowRightIcon from '@material-ui/icons/ArrowRight';
import SearchIcon from '@material-ui/icons/Search';
import ArrowDropUp from '@material-ui/icons/ArrowDropUp';
import ArrowDropDown from '@material-ui/icons/ArrowDropDown';
import classnames from 'classnames';
import React, {
ComponentProps,
ComponentType,
forwardRef,
KeyboardEventHandler,
ReactNode,
@@ -504,7 +509,7 @@ export const SidebarItem = forwardRef<any, SidebarItemProps>((props, ref) => {
}
return <SidebarItemBase {...props} ref={ref} />;
});
}) as (props: SidebarItemProps) => JSX.Element;
type SidebarSearchFieldProps = {
onSearch: (input: string) => void;
@@ -580,7 +585,7 @@ export const SidebarSpace = styled('div')(
flex: 1,
},
{ name: 'BackstageSidebarSpace' },
);
) as ComponentType<ComponentProps<'div'> & StyledComponentProps<'root'>>;
export type SidebarSpacerClassKey = 'root';
@@ -589,7 +594,7 @@ export const SidebarSpacer = styled('div')(
height: 8,
},
{ name: 'BackstageSidebarSpacer' },
);
) as ComponentType<ComponentProps<'div'> & StyledComponentProps<'root'>>;
export type SidebarDividerClassKey = 'root';
@@ -602,7 +607,7 @@ export const SidebarDivider = styled('hr')(
margin: '12px 0px',
},
{ name: 'BackstageSidebarDivider' },
);
) as ComponentType<ComponentProps<'hr'> & StyledComponentProps<'root'>>;
const styledScrollbar = (theme: Theme): CreateCSSProperties => ({
overflowY: 'auto',
@@ -631,7 +636,7 @@ export const SidebarScrollWrapper = styled('div')(({ theme }) => {
'@media (hover: none)': scrollbarStyles,
'&:hover': scrollbarStyles,
};
});
}) as ComponentType<ComponentProps<'div'> & StyledComponentProps<'root'>>;
/**
* A button which allows you to expand the sidebar when clicked.
+1 -287
View File
@@ -272,293 +272,7 @@ export interface EntityProviderProps {
}
// @public
export const EntityRefLink: React_2.ForwardRefExoticComponent<
Pick<
EntityRefLinkProps,
| 'replace'
| 'type'
| 'key'
| 'id'
| 'media'
| 'state'
| 'color'
| 'display'
| 'translate'
| 'hidden'
| 'dir'
| 'slot'
| 'style'
| 'title'
| 'target'
| 'accessKey'
| 'draggable'
| 'lang'
| 'className'
| 'prefix'
| 'children'
| 'contentEditable'
| 'inputMode'
| 'tabIndex'
| 'underline'
| 'download'
| 'href'
| 'hrefLang'
| 'defaultChecked'
| 'defaultValue'
| 'suppressContentEditableWarning'
| 'suppressHydrationWarning'
| 'contextMenu'
| 'placeholder'
| 'spellCheck'
| 'radioGroup'
| 'role'
| 'about'
| 'datatype'
| 'inlist'
| 'property'
| 'resource'
| 'typeof'
| 'vocab'
| 'autoCapitalize'
| 'autoCorrect'
| 'autoSave'
| 'itemProp'
| 'itemScope'
| 'itemType'
| 'itemID'
| 'itemRef'
| 'results'
| 'security'
| 'unselectable'
| 'is'
| 'aria-activedescendant'
| 'aria-atomic'
| 'aria-autocomplete'
| 'aria-busy'
| 'aria-checked'
| 'aria-colcount'
| 'aria-colindex'
| 'aria-colspan'
| 'aria-controls'
| 'aria-current'
| 'aria-describedby'
| 'aria-details'
| 'aria-disabled'
| 'aria-dropeffect'
| 'aria-errormessage'
| 'aria-expanded'
| 'aria-flowto'
| 'aria-grabbed'
| 'aria-haspopup'
| 'aria-hidden'
| 'aria-invalid'
| 'aria-keyshortcuts'
| 'aria-label'
| 'aria-labelledby'
| 'aria-level'
| 'aria-live'
| 'aria-modal'
| 'aria-multiline'
| 'aria-multiselectable'
| 'aria-orientation'
| 'aria-owns'
| 'aria-placeholder'
| 'aria-posinset'
| 'aria-pressed'
| 'aria-readonly'
| 'aria-relevant'
| 'aria-required'
| 'aria-roledescription'
| 'aria-rowcount'
| 'aria-rowindex'
| 'aria-rowspan'
| 'aria-selected'
| 'aria-setsize'
| 'aria-sort'
| 'aria-valuemax'
| 'aria-valuemin'
| 'aria-valuenow'
| 'aria-valuetext'
| 'rel'
| 'dangerouslySetInnerHTML'
| 'onCopy'
| 'onCopyCapture'
| 'onCut'
| 'onCutCapture'
| 'onPaste'
| 'onPasteCapture'
| 'onCompositionEnd'
| 'onCompositionEndCapture'
| 'onCompositionStart'
| 'onCompositionStartCapture'
| 'onCompositionUpdate'
| 'onCompositionUpdateCapture'
| 'onFocus'
| 'onFocusCapture'
| 'onBlur'
| 'onBlurCapture'
| 'onChange'
| 'onChangeCapture'
| 'onBeforeInput'
| 'onBeforeInputCapture'
| 'onInput'
| 'onInputCapture'
| 'onReset'
| 'onResetCapture'
| 'onSubmit'
| 'onSubmitCapture'
| 'onInvalid'
| 'onInvalidCapture'
| 'onLoad'
| 'onLoadCapture'
| 'onError'
| 'onErrorCapture'
| 'onKeyDown'
| 'onKeyDownCapture'
| 'onKeyPress'
| 'onKeyPressCapture'
| 'onKeyUp'
| 'onKeyUpCapture'
| 'onAbort'
| 'onAbortCapture'
| 'onCanPlay'
| 'onCanPlayCapture'
| 'onCanPlayThrough'
| 'onCanPlayThroughCapture'
| 'onDurationChange'
| 'onDurationChangeCapture'
| 'onEmptied'
| 'onEmptiedCapture'
| 'onEncrypted'
| 'onEncryptedCapture'
| 'onEnded'
| 'onEndedCapture'
| 'onLoadedData'
| 'onLoadedDataCapture'
| 'onLoadedMetadata'
| 'onLoadedMetadataCapture'
| 'onLoadStart'
| 'onLoadStartCapture'
| 'onPause'
| 'onPauseCapture'
| 'onPlay'
| 'onPlayCapture'
| 'onPlaying'
| 'onPlayingCapture'
| 'onProgress'
| 'onProgressCapture'
| 'onRateChange'
| 'onRateChangeCapture'
| 'onSeeked'
| 'onSeekedCapture'
| 'onSeeking'
| 'onSeekingCapture'
| 'onStalled'
| 'onStalledCapture'
| 'onSuspend'
| 'onSuspendCapture'
| 'onTimeUpdate'
| 'onTimeUpdateCapture'
| 'onVolumeChange'
| 'onVolumeChangeCapture'
| 'onWaiting'
| 'onWaitingCapture'
| 'onAuxClick'
| 'onAuxClickCapture'
| 'onClick'
| 'onClickCapture'
| 'onContextMenu'
| 'onContextMenuCapture'
| 'onDoubleClick'
| 'onDoubleClickCapture'
| 'onDrag'
| 'onDragCapture'
| 'onDragEnd'
| 'onDragEndCapture'
| 'onDragEnter'
| 'onDragEnterCapture'
| 'onDragExit'
| 'onDragExitCapture'
| 'onDragLeave'
| 'onDragLeaveCapture'
| 'onDragOver'
| 'onDragOverCapture'
| 'onDragStart'
| 'onDragStartCapture'
| 'onDrop'
| 'onDropCapture'
| 'onMouseDown'
| 'onMouseDownCapture'
| 'onMouseEnter'
| 'onMouseLeave'
| 'onMouseMove'
| 'onMouseMoveCapture'
| 'onMouseOut'
| 'onMouseOutCapture'
| 'onMouseOver'
| 'onMouseOverCapture'
| 'onMouseUp'
| 'onMouseUpCapture'
| 'onSelect'
| 'onSelectCapture'
| 'onTouchCancel'
| 'onTouchCancelCapture'
| 'onTouchEnd'
| 'onTouchEndCapture'
| 'onTouchMove'
| 'onTouchMoveCapture'
| 'onTouchStart'
| 'onTouchStartCapture'
| 'onPointerDown'
| 'onPointerDownCapture'
| 'onPointerMove'
| 'onPointerMoveCapture'
| 'onPointerUp'
| 'onPointerUpCapture'
| 'onPointerCancel'
| 'onPointerCancelCapture'
| 'onPointerEnter'
| 'onPointerEnterCapture'
| 'onPointerLeave'
| 'onPointerLeaveCapture'
| 'onPointerOver'
| 'onPointerOverCapture'
| 'onPointerOut'
| 'onPointerOutCapture'
| 'onGotPointerCapture'
| 'onGotPointerCaptureCapture'
| 'onLostPointerCapture'
| 'onLostPointerCaptureCapture'
| 'onScroll'
| 'onScrollCapture'
| 'onWheel'
| 'onWheelCapture'
| 'onAnimationStart'
| 'onAnimationStartCapture'
| 'onAnimationEnd'
| 'onAnimationEndCapture'
| 'onAnimationIteration'
| 'onAnimationIterationCapture'
| 'onTransitionEnd'
| 'onTransitionEndCapture'
| 'ping'
| 'referrerPolicy'
| 'align'
| 'variant'
| 'component'
| 'classes'
| 'innerRef'
| 'noWrap'
| 'gutterBottom'
| 'paragraph'
| 'variantMapping'
| 'noTrack'
| 'TypographyClasses'
| 'entityRef'
| 'defaultKind'
> &
React_2.RefAttributes<any>
>;
export const EntityRefLink: (props: EntityRefLinkProps) => JSX.Element;
// @public
export type EntityRefLinkProps = {
@@ -87,4 +87,4 @@ export const EntityRefLink = forwardRef<any, EntityRefLinkProps>(
link
);
},
);
) as (props: EntityRefLinkProps) => JSX.Element;