diff --git a/src/app/db/data.ts b/src/app/db/data.ts index 73848b6..66834f1 100644 --- a/src/app/db/data.ts +++ b/src/app/db/data.ts @@ -508,6 +508,15 @@ export const authors: Readonly<{ [key: string]: Author }> = { image: '/img/profiles/cbordalo.jpg', nationality: ['phl', 'usa'], }, + bgraham: { + name: { + first: 'Benjamin', + last: 'Graham', + }, + affiliation: ['Student@srvhs'], + image: '/img/profiles/bgraham.jpg', + nationality: ['usa'], + }, } export interface Affiliation { diff --git a/src/app/document/view/[slug]/VersionChooser.tsx b/src/app/document/view/[slug]/VersionChooser.tsx index 63018c1..26d4334 100644 --- a/src/app/document/view/[slug]/VersionChooser.tsx +++ b/src/app/document/view/[slug]/VersionChooser.tsx @@ -5,6 +5,7 @@ import Link from 'next/link' import { loadAuthors } from '@/app/db/loaders' import { useSuspenseQuery } from '@tanstack/react-query' import { epoch2date } from '@/app/utils/epoch2datestring' +import { toast } from 'react-toastify' const VersionChooser = ({ doc, @@ -25,6 +26,28 @@ const VersionChooser = ({ const fileEnding = file === 'other' ? '' : `.${file}` const [selectedRevision, setSelectedRevision] = useState(latest) // Initialize the selected revision with the latest revision + const notifyCopied = () => + toast('BibTeX copied to clipboard!', { type: 'success' }) + + const handleClick = () => { + const bibtex = `@article{ + author={${authors + .map((a: string, i) => { + const author = data[a].name.first + ' ' + data[a].name.last + if (i === 0) return author + else if (i === authors.length - 1) return ` and ${author}` + else return `, ${author}` + }) + .join('')}}, + title={${doc.manifest.title}}, + journal={eeXiv journal}, + year={${date.getFullYear()}}, + month={${date.toLocaleString('default', { month: 'short' })}}, + url={${window.location.href}} +}` + navigator.clipboard.writeText(bibtex) + notifyCopied() + } return (
@@ -46,24 +69,7 @@ const VersionChooser = ({