highlight in entry view,

pull/2/head
Tim Pechersky 2021-07-20 19:36:59 +08:00
rodzic 93d3531154
commit 1e0fc89702
7 zmienionych plików z 199 dodań i 184 usunięć

Wyświetl plik

@ -30,6 +30,7 @@
"react-showdown": "^2.3.0",
"react-split-pane": "^0.1.92",
"showdown": "^1.9.1",
"showdown-highlight": "^2.1.8",
"uuid": "^8.3.2"
},
"devDependencies": {

Wyświetl plik

@ -1,8 +1,10 @@
import React from "react";
import "/styles/styles.css";
import "/styles/sidebar.css";
import "highlight.js/styles/github.css";
import App from "next/app";
import dynamic from "next/dynamic";
import { QueryClient, QueryClientProvider } from "react-query";
import { QueryClient, QueryClientProvider } from "react-query";
import HeadSEO from "../src/components/HeadSEO";
import HeadLinks from "../src/components/HeadLinks";
const AppContext = dynamic(() => import("../src/AppContext"), {

Wyświetl plik

@ -1,5 +1,5 @@
import React from "react";
import { Flex, Link, HStack, Skeleton, Box, Title } from "@chakra-ui/react";
import { Flex, Link, HStack, Skeleton, Box, Heading } from "@chakra-ui/react";
import { ExternalLinkIcon } from "@chakra-ui/icons";
import { useJournalEntry, useRouter } from "../../src/core/hooks";
import FourOFour from "../../src/components/FourOFour";
@ -8,8 +8,10 @@ import Tags from "../../src/components/Tags";
import CustomIcon from "../../src/components/CustomIcon";
import { getLayout } from "../../src/layouts/EntriesLayout";
import MarkdownView from "react-showdown";
import Scrollable from "../../src/components/Scrollable";
const Entry = () => {
const showdownHighlight = require("showdown-highlight");
const router = useRouter();
const { entryId } = router.params;
const journalId = `9b0d7567-4634-4bf7-946d-60ef4414aa93`;
@ -19,7 +21,7 @@ const Entry = () => {
isLoading,
isError,
error,
} = useJournalEntry(journalId, entryId);
} = useJournalEntry(journalId, entryId, "personal");
const contextUrl = () => {
if (entry?.context_url) {
@ -75,7 +77,7 @@ const Entry = () => {
>
{contextUrl()}
</Box>
<Title
<Heading
overflow="hidden"
width={entry?.context_url ? "calc(100% - 28px)" : "100%"}
// height="auto"
@ -88,7 +90,7 @@ const Entry = () => {
textAlign="left"
>
{entry?.title}
</Title>
</Heading>
</HStack>
</Skeleton>
<Skeleton
@ -105,13 +107,17 @@ const Entry = () => {
flexGrow={1}
id="EditorSkeleton"
mx={2}
mr={isFetchedAfterMount || entry ? 0 : 2}
mt={1}
isLoaded={isFetchedAfterMount || entry}
>
<MarkdownView
markdown={entry?.content}
options={{ tables: true, emoji: true }}
/>
<Scrollable>
<MarkdownView
markdown={entry?.content}
options={{ tables: true, emoji: true }}
extensions={showdownHighlight()}
/>
</Scrollable>
</Skeleton>
</Flex>
);

Wyświetl plik

@ -16,6 +16,8 @@ import {
PopoverArrow,
PopoverCloseButton,
useBreakpointValue,
Spacer,
Fade,
} from "@chakra-ui/react";
import {
HamburgerIcon,
@ -97,15 +99,41 @@ const AppNavbar = () => {
<>
{!ui.isMobileView && (
<>
<Flex
width="100%"
id="SearchBarwButtons"
position="relative"
alignItems="baseline"
justifyContent="flex-end"
>
{!ui.isMobileView && (
<Flex width="100%" px={2}>
<Fade in={ui.entriesViewMode === "entry"}>
<Button
m={0}
alignSelf="center"
variant="outline"
justifyContent="space-evenly"
alignContent="center"
h="32px"
size="sm"
colorScheme="gray"
aria-label="App navigation"
leftIcon={<ArrowLeftIcon />}
onClick={() => {
router.push(
{
pathname: "/stream",
query: router.query,
},
undefined,
{ shallow: false }
);
// router.params?.entryId && ui.entriesViewMode === "entry"
// ?
ui.setEntriesViewMode("list");
// : router.nextRouter.back();
}}
>
Back to stream
</Button>
</Fade>
<Spacer />
<Flex placeSelf="flex-end">
<ButtonGroup
alignSelf="center"
// position="relative"
left={
isSearchBarActive
@ -132,43 +160,15 @@ const AppNavbar = () => {
</Button>
</RouterLink>
</ButtonGroup>
)}
</Flex>
<Flex justifyContent="flex-end" width="30%" pr={2}>
<IconButton
hidden={true}
colorScheme="primary"
variant="link"
h="32px"
size="lg"
color="gray.100"
borderColor="transparent"
borderWidth={0}
aria-label="Create new"
icon={<PlusSquareIcon />}
/>
<SupportPopover />
<IconButton
hidden={true}
colorScheme="primary"
variant="link"
h="32px"
size="lg"
color="gray.100"
outlineColor="transparent"
// colorScheme="blue"
aria-label="Alerts"
icon={<BellIcon />}
/>
<AccountIconButton
colorScheme="primary"
variant="link"
color="gray.100"
size="lg"
h="32px"
/>
<SupportPopover />
<AccountIconButton
colorScheme="primary"
variant="link"
color="gray.100"
size="lg"
h="32px"
/>
</Flex>
</Flex>
</>
)}

Wyświetl plik

@ -1,123 +0,0 @@
import React, { useContext } from "react";
import { Flex, Link, HStack, Skeleton, Box, Title } from "@chakra-ui/react";
import { ExternalLinkIcon } from "@chakra-ui/icons";
import { useJournalEntry } from "../../src/core/hooks";
import FourOFour from "./FourOFour";
import FourOThree from "./FourOThree";
import Tags from "./Tags";
import CustomIcon from "./CustomIcon";
import MarkdownView from "react-showdown";
import UIContext from "../core/providers/UIProvider/context";
const Entry = () => {
const ui = useContext(UIContext);
const entryId = ui.entryId;
const journalId = `9b0d7567-4634-4bf7-946d-60ef4414aa93`;
const appScope = `personal`;
const {
data: entry,
isFetchedAfterMount,
isLoading,
isError,
error,
} = useJournalEntry(journalId, entryId, appScope);
const contextUrl = () => {
if (entry?.context_url) {
switch (entry.context_type) {
case "slack":
return (
<Link href={entry.context_url} isExternal>
<CustomIcon width="28px" icon="slack" />
</Link>
);
case "github":
return (
<Link href={entry.context_url} isExternal>
<CustomIcon width="28px" icon="github" />
</Link>
);
default:
return (
<Link href={entry.context_url} isExternal>
<ExternalLinkIcon bg="none" boxSize="18px" />
</Link>
);
}
} else return "";
};
if (isError && error.response.status === 404) return <FourOFour />;
if (isError && error.response.status === 403) return <FourOThree />;
// if (!entry || isLoading) return "";
return (
<Flex
id="Entry"
height="520px"
flexGrow="1"
flexDirection="column"
key={entryId}
bgColor="white"
p={2}
overflowY="scroll"
>
<Skeleton
id="EntryNameSkeleton"
mx={2}
mt={2}
overflow="initial"
isLoaded={!isLoading}
>
<HStack id="EntryHeader" width="100%" m={0}>
<Box
id="ContextURL"
transition="0.3s"
_hover={{ transform: "scale(1.2)" }}
pl={2}
pr={entry?.context_url ? 2 : 0}
>
{contextUrl()}
</Box>
<Title
overflow="hidden"
width={entry?.context_url ? "calc(100% - 28px)" : "100%"}
// height="auto"
minH="36px"
style={{ marginLeft: "0" }}
m={0}
p={0}
fontWeight="600"
fontSize="1.5rem"
textAlign="left"
>
{entry?.title}
</Title>
</HStack>
</Skeleton>
<Skeleton
id="TagsSkeleton"
mx={2}
overflow="initial"
mt={1}
isLoaded={isFetchedAfterMount || entry}
>
<Tags entry={entry} />
</Skeleton>
<Skeleton
height="10px"
flexGrow={1}
id="EditorSkeleton"
mx={2}
mt={1}
isLoaded={isFetchedAfterMount || entry}
>
<MarkdownView
markdown={entry?.content}
options={{ tables: true, emoji: true }}
/>
</Skeleton>
</Flex>
);
};
export default Entry;

Wyświetl plik

@ -1,7 +1,5 @@
import { jsx } from "@emotion/react";
import { Flex, Box } from "@chakra-ui/react";
import { useEffect, useRef, useState } from "react";
import React, { useEffect, useRef, useState } from "react";
import { useRouter } from "../core/hooks";
const Scrollable = (props) => {
const scrollerRef = useRef();
@ -18,8 +16,8 @@ const Scrollable = (props) => {
});
return (
<Flex className="ScrollableWrapper" direction="column" w="100%">
<Box className="Scrollable" direction="column" ref={scrollerRef}>
<Flex className="ScrollableWrapper" direction="column" w="100%" overflowY="hidden" maxH="100%">
<Box className="Scrollable" direction="column" ref={scrollerRef} overflowY="scroll">
{props.children}
</Box>
</Flex>

Wyświetl plik

@ -1429,6 +1429,14 @@ axe-core@^4.0.2:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.3.tgz#2a3afc332f0031b42f602f4a3de03c211ca98f72"
integrity sha512-pXnVMfJKSIWU2Ml4JHP7pZEPIrgBO1Fd3WGx+fPBsS+KRGhE4vxooD8XBGWbQOIVSZsVK7pUDBBkCicNu80yzQ==
axios-mock-adapter@^1.19.0:
version "1.19.0"
resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.19.0.tgz#9d72e321a6c5418e1eff067aa99761a86c5188a4"
integrity sha512-D+0U4LNPr7WroiBDvWilzTMYPYTuZlbo6BI8YHZtj7wYQS8NkARlP9KBt8IWWHTQJ0q/8oZ0ClPBtKCCkx8cQg==
dependencies:
fast-deep-equal "^3.1.3"
is-buffer "^2.0.3"
axios@^0.21.1:
version "0.21.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
@ -2008,6 +2016,15 @@ dom-accessibility-api@^0.5.6:
resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9"
integrity sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw==
dom-serializer@^1.0.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
dependencies:
domelementtype "^2.0.1"
domhandler "^4.2.0"
entities "^2.0.0"
domain-browser@4.19.0:
version "4.19.0"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.19.0.tgz#1093e17c0a17dbd521182fe90d49ac1370054af1"
@ -2018,6 +2035,27 @@ domain-browser@^1.1.1:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
domelementtype@^2.0.1, domelementtype@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
domhandler@^4.0.0, domhandler@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059"
integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==
dependencies:
domelementtype "^2.2.0"
domutils@^2.5.2:
version "2.7.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442"
integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==
dependencies:
dom-serializer "^1.0.1"
domelementtype "^2.2.0"
domhandler "^4.2.0"
electron-to-chromium@^1.3.723:
version "1.3.772"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.772.tgz#fd1ed39f9f3149f62f581734e4f026e600369479"
@ -2070,6 +2108,11 @@ enquirer@^2.3.5:
dependencies:
ansi-colors "^4.1.1"
entities@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@ -2672,7 +2715,7 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
he@1.2.0:
he@1.2.0, he@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
@ -2682,6 +2725,11 @@ hey-listen@^1.0.8:
resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68"
integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==
highlight.js@^10.7.2:
version "10.7.3"
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@ -2703,6 +2751,25 @@ hosted-git-info@^2.1.4:
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
html-encoder-decoder@^1.3.9:
version "1.3.9"
resolved "https://registry.yarnpkg.com/html-encoder-decoder/-/html-encoder-decoder-1.3.9.tgz#d5ec7d249cd525709f7640ae9340f482cc86e94a"
integrity sha512-dHv7bdOTEE69EIxXsM8Vslt+NW7QfEB5EGOC29BR14c7RQ9iHUgK76k3/aS23xNIwDg/xlZLWCSZ8lxol9bYlQ==
dependencies:
he "^1.1.0"
iterate-object "^1.3.2"
regex-escape "^3.4.2"
htmlparser2@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
dependencies:
domelementtype "^2.0.1"
domhandler "^4.0.0"
domutils "^2.5.2"
entities "^2.0.0"
http-errors@1.7.3:
version "1.7.3"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
@ -2838,6 +2905,11 @@ is-boolean-object@^1.1.0:
dependencies:
call-bind "^1.0.2"
is-buffer@^2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
is-callable@^1.1.4, is-callable@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
@ -2946,6 +3018,11 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
iterate-object@^1.3.2:
version "1.3.4"
resolved "https://registry.yarnpkg.com/iterate-object/-/iterate-object-1.3.4.tgz#fa50b1d9e58e340a7dd6b4c98c8a5e182e790096"
integrity sha512-4dG1D1x/7g8PwHS9aK6QV5V94+ZvyP4+d19qDv43EzImmrndysIl4prmJ1hWWIGCqrZHyaHBm6BSEWHOLnpoNw==
jest-worker@27.0.0-next.5:
version "27.0.0-next.5"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.0-next.5.tgz#5985ee29b12a4e191f4aae4bb73b97971d86ec28"
@ -3223,6 +3300,11 @@ mixpanel-browser@^2.41.0:
resolved "https://registry.yarnpkg.com/mixpanel-browser/-/mixpanel-browser-2.41.0.tgz#d49753b4e4a7e6ddd18c126be4a917fff4ce3039"
integrity sha512-IEuc9cH44hba9a3KEyulXINLn+gpFqluBDo7xiTk1h3j111dmmsctaE6tUzZYxgGLVqeNhTpsccdliOeX24Wlw==
moment@^2.29.1:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@ -3724,7 +3806,7 @@ progress@^2.0.0:
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
prop-types@15.7.2, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2:
prop-types@15.7.2, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@ -3812,6 +3894,11 @@ raw-body@2.4.1:
iconv-lite "0.4.24"
unpipe "1.0.0"
react-calendly@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/react-calendly/-/react-calendly-2.2.1.tgz#7c35f7747e01045dbd77e18ea1eb18adddf373cf"
integrity sha512-r9WJ2WNr3hjBFnE8UyFCtJiTy7InME0lghw3gA5BqAMOFe70OtLDINDRAKDSS8O1tTSxJJrFdmZ1PpFSL0NAJA==
react-clientside-effect@^1.2.2:
version "1.2.5"
resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.5.tgz#e2c4dc3c9ee109f642fac4f5b6e9bf5bcd2219a3"
@ -3873,6 +3960,11 @@ react-is@^16.7.0, react-is@^16.8.1:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-lifecycles-compat@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
react-pro-sidebar@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/react-pro-sidebar/-/react-pro-sidebar-0.6.0.tgz#a2d2eca5ba6ed64808b95a28277d5969bbe59cbf"
@ -3916,6 +4008,15 @@ react-remove-scroll@2.4.1:
use-callback-ref "^1.2.3"
use-sidecar "^1.0.1"
react-showdown@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/react-showdown/-/react-showdown-2.3.0.tgz#904fb3daad663628d403bd68828c2b5324246cda"
integrity sha512-Hf44I8pK1jqfoRBjPZ/HxIjWXm7l0dklg2N1518BQ/styI+Ko++NChhLaZVZydg6F04FEZaPGuzrmvpsl5pVZg==
dependencies:
domhandler "^4.0.0"
htmlparser2 "^6.0.1"
showdown "^1.9.1"
react-slidedown@^2.4.5:
version "2.4.5"
resolved "https://registry.yarnpkg.com/react-slidedown/-/react-slidedown-2.4.5.tgz#d575404256fa0ba81e60161547a8fa9ff62b935d"
@ -3923,6 +4024,22 @@ react-slidedown@^2.4.5:
dependencies:
tslib "^1.9.0"
react-split-pane@^0.1.92:
version "0.1.92"
resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.92.tgz#68242f72138aed95dd5910eeb9d99822c4fc3a41"
integrity sha512-GfXP1xSzLMcLJI5BM36Vh7GgZBpy+U/X0no+VM3fxayv+p1Jly5HpMofZJraeaMl73b3hvlr+N9zJKvLB/uz9w==
dependencies:
prop-types "^15.7.2"
react-lifecycles-compat "^3.0.4"
react-style-proptype "^3.2.2"
react-style-proptype@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.2.2.tgz#d8e998e62ce79ec35b087252b90f19f1c33968a0"
integrity sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==
dependencies:
prop-types "^15.5.4"
react-style-singleton@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.1.tgz#ce7f90b67618be2b6b94902a30aaea152ce52e66"
@ -3991,6 +4108,11 @@ regenerator-runtime@^0.13.4:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
regex-escape@^3.4.2:
version "3.4.10"
resolved "https://registry.yarnpkg.com/regex-escape/-/regex-escape-3.4.10.tgz#b45afec7a6e793b786ad193dc3d18b46b5ae08e6"
integrity sha512-qEqf7uzW+iYcKNLMDFnMkghhQBnGdivT6KqVQyKsyjSWnoFyooXVnxrw9dtv3AFLnD6VBGXxtZGAQNFGFTnCqA==
regexp.prototype.flags@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
@ -4157,6 +4279,15 @@ shell-quote@1.7.2:
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
showdown-highlight@^2.1.8:
version "2.1.8"
resolved "https://registry.yarnpkg.com/showdown-highlight/-/showdown-highlight-2.1.8.tgz#9e6bab7359c7bc5b8de09059df783649104cc1c2"
integrity sha512-WqrMzMPYrWEwbA03GJT8mc82QxTe91kFwvNWpEPfTgEwd/5G32d44bn5Z7zMYgOcePnXInmYClldezqHDAyGZg==
dependencies:
highlight.js "^10.7.2"
html-encoder-decoder "^1.3.9"
showdown "^1.9.1"
showdown@^1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.9.1.tgz#134e148e75cd4623e09c21b0511977d79b5ad0ef"