XeNote/components/MDContent.js
Triston Armstrong 2536c40517 improve mdcontent component
- added backlink group component that places all backlinks into a details element so the page is a little cleaner
- changes the "powered by" section to be more relevent to me
- show "no backlinks found" instead of details if no backlinks
- remove the alert at the top of every note
- formatting changes
2023-12-23 20:10:03 -06:00

72 lines
1.7 KiB
JavaScript

import React from 'react';
import { useRouter } from 'next/router'
function BackLinks({ linkList }) {
return (<div className="note-footer">
<h3 className="backlink-heading">Link to this note</h3>
{(linkList != null && linkList.length > 0)
?
<>
<div className="backlink-container">
{linkList.map(aLink =>
<div key={aLink.slug} className="backlink">
{/*<Link href={aLink.slug}>*/}
<a href={aLink.slug}>
<p className="backlink-title">{aLink.title}</p>
<p className="backlink-preview">{aLink.shortSummary} </p>
</a>
{/*</Link>*/}
</div>
)}
</div>
</>
: <> <p className="no-backlinks"> No backlinks found</p> </>}
</div>);
}
function MDContent({ content, backLinks, handleOpenNewContent }) {
function _handleInternalLinkClick() {
//Processing fetching
//pass result up to parent container
//TODO: handle clicking on internal link, go fetching md content from file then passing it up to parent
handleOpenNewContent(content)
}
useRouter();
return (
<div className="markdown-rendered">
<div dangerouslySetInnerHTML={{ __html: content }} />
<BackLinksGroup links={backLinks} />
<hr />
<footer>
<p>Powered by <a href="https://gitlab.com/Tarmstrong95">Triston</a>, © {new Date().getFullYear()}</p>
</footer>
</div>
);
}
function BackLinksGroup({ links }) {
if (!links?.length) {
return (
<p className="no-backlinks"> No backlinks found</p>
)
}
return (
<details>
<summary>
BackLinks
</summary>
<BackLinks linkList={links} />
</details>
)
}
export default MDContent;