diff --git a/src/components/react/ChessStudy.tsx b/src/components/react/ChessStudy.tsx index f040058..dfe4514 100644 --- a/src/components/react/ChessStudy.tsx +++ b/src/components/react/ChessStudy.tsx @@ -271,6 +271,14 @@ export const ChessStudy = ({ }) } onSaveButtonClick={onSaveButtonClick} + onCopyButtonClick={() => { + try { + navigator.clipboard.writeText(chessLogic.fen()) + new Notice('Copied to clipboard!'); + } catch (e) { + new Notice('Could not copy to clipboard:', e); + } + }} /> diff --git a/src/components/react/PgnViewer/index.tsx b/src/components/react/PgnViewer/index.tsx index d4066dd..3e3d2b8 100644 --- a/src/components/react/PgnViewer/index.tsx +++ b/src/components/react/PgnViewer/index.tsx @@ -1,4 +1,4 @@ -import { ArrowLeft, ArrowRight, Save } from 'lucide-react'; +import { ArrowLeft, ArrowRight, Copy, Save, Undo2 } from 'lucide-react'; import * as React from 'react'; import { ReactNode, useEffect, useMemo, useRef } from 'react'; import { ChessStudyMove } from 'src/lib/storage'; @@ -112,6 +112,7 @@ export const PgnViewer = React.memo( onForwardButtonClick, onMoveItemClick, onSaveButtonClick, + onCopyButtonClick, }: { history: ChessStudyMove[]; currentMoveId: string; @@ -119,6 +120,7 @@ export const PgnViewer = React.memo( onForwardButtonClick: () => void; onMoveItemClick: (moveId: string) => void; onSaveButtonClick: () => void; + onCopyButtonClick: () => void; }) => { const movePairs = useMemo(() => chunkArray(history, 2), [history]); @@ -268,15 +270,23 @@ export const PgnViewer = React.memo(