125b16883SBartosz Kaszubowskiimport { css } from '@emotion/react';
2*f4b1168bSBartosz Kaszubowskiimport { spacing } from '@expo/styleguide-base';
325b16883SBartosz Kaszubowskiimport ReactMarkdown from 'react-markdown';
425b16883SBartosz Kaszubowski
525b16883SBartosz Kaszubowskiimport { CommentData } from '~/components/plugins/api/APIDataTypes';
65990cc31SBartosz Kaszubowskiimport {
75990cc31SBartosz Kaszubowski  getCommentContent,
85990cc31SBartosz Kaszubowski  getTagData,
9f6311d0dSBartosz Kaszubowski  mdComponents,
105990cc31SBartosz Kaszubowski} from '~/components/plugins/api/APISectionUtils';
1125b16883SBartosz Kaszubowskiimport { Callout } from '~/ui/components/Callout';
1212abeb84SBartosz Kaszubowskiimport { BOLD } from '~/ui/components/Text';
1325b16883SBartosz Kaszubowski
1425b16883SBartosz Kaszubowskitype Props = {
1525b16883SBartosz Kaszubowski  comment?: CommentData;
1625b16883SBartosz Kaszubowski};
1725b16883SBartosz Kaszubowski
1825b16883SBartosz Kaszubowskiexport const APISectionDeprecationNote = ({ comment }: Props) => {
1925b16883SBartosz Kaszubowski  const deprecation = getTagData('deprecated', comment);
205990cc31SBartosz Kaszubowski
215990cc31SBartosz Kaszubowski  if (!deprecation) {
225990cc31SBartosz Kaszubowski    return null;
235990cc31SBartosz Kaszubowski  }
245990cc31SBartosz Kaszubowski
255990cc31SBartosz Kaszubowski  const content = getCommentContent(deprecation.content);
265990cc31SBartosz Kaszubowski  return (
2725b16883SBartosz Kaszubowski    <div css={deprecationNoticeStyle}>
2825b16883SBartosz Kaszubowski      <Callout type="warning" key="deprecation-note">
295990cc31SBartosz Kaszubowski        {content.length ? (
30f6311d0dSBartosz Kaszubowski          <ReactMarkdown components={mdComponents}>{`**Deprecated.** ${content}`}</ReactMarkdown>
3125b16883SBartosz Kaszubowski        ) : (
3212abeb84SBartosz Kaszubowski          <BOLD>Deprecated</BOLD>
3325b16883SBartosz Kaszubowski        )}
3425b16883SBartosz Kaszubowski      </Callout>
3525b16883SBartosz Kaszubowski    </div>
365990cc31SBartosz Kaszubowski  );
3725b16883SBartosz Kaszubowski};
3825b16883SBartosz Kaszubowski
3925b16883SBartosz Kaszubowskiconst deprecationNoticeStyle = css({
40d25015daSBartosz Kaszubowski  'table &': {
41d25015daSBartosz Kaszubowski    marginTop: 0,
42d25015daSBartosz Kaszubowski    marginBottom: spacing[3],
43d25015daSBartosz Kaszubowski  },
4425b16883SBartosz Kaszubowski});
45