import styled from 'styled-components' import { FontBoldIcon, FontItalicIcon, StrikethroughIcon, ArrowLeftIcon, ArrowRightIcon, DividerVerticalIcon, ListBulletIcon, TableIcon, RowsIcon, ColumnsIcon, SectionIcon, ContainerIcon, } from '@radix-ui/react-icons' import { AlertCircle, AlertTriangle, BadgeHelp, Code, Cuboid, FileText, ImagePlus, Lightbulb, MousePointerClick, Sigma, Tag, Tags, Video, } from 'lucide-react' import { SiYoutube } from '@icons-pack/react-simple-icons' import ToolTip from '@components/StyledElements/Tooltip/Tooltip' export const ToolbarButtons = ({ editor, props }: any) => { if (!editor) { return null } // YouTube extension const addYoutubeVideo = () => { const url = prompt('Enter YouTube URL') if (url) { editor.commands.setYoutubeVideo({ src: url, width: 640, height: 480, }) } } return ( editor.chain().focus().undo().run()}> editor.chain().focus().redo().run()}> editor.chain().focus().toggleBold().run()} className={editor.isActive('bold') ? 'is-active' : ''} > editor.chain().focus().toggleItalic().run()} className={editor.isActive('italic') ? 'is-active' : ''} > editor.chain().focus().toggleStrike().run()} className={editor.isActive('strike') ? 'is-active' : ''} > editor.chain().focus().toggleOrderedList().run()} className={editor.isActive('orderedList') ? 'is-active' : ''} > editor .chain() .focus() .toggleHeading({ level: parseInt(e.target.value) }) .run() } > editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()} > editor.chain().focus().addRowAfter().run()} > editor.chain().focus().addColumnAfter().run()} > editor.chain().focus().deleteColumn().run()} > editor.chain().focus().deleteRow().run()} > {/* TODO: fix this : toggling only works one-way */} editor.chain().focus().toggleNode('calloutInfo').run()} > editor.chain().focus().toggleNode('calloutWarning').run() } > editor .chain() .focus() .insertContent({ type: 'blockImage', }) .run() } > editor .chain() .focus() .insertContent({ type: 'blockVideo', }) .run() } > addYoutubeVideo()}> editor .chain() .focus() .insertContent({ type: 'blockMathEquation', }) .run() } > editor .chain() .focus() .insertContent({ type: 'blockPDF', }) .run() } > editor .chain() .focus() .insertContent({ type: 'blockQuiz', }) .run() } > editor.chain().focus().toggleCodeBlock().run()} className={editor.isActive('codeBlock') ? 'is-active' : ''} > editor.chain().focus().insertContent({ type: 'blockEmbed' }).run()} > editor.chain().focus().insertContent({ type: 'badge', content: [ { type: 'text', text: 'This is a Badge' } ] }).run()} > editor.chain().focus().insertContent({ type: 'button', content: [ { type: 'text', text: 'Click me' } ] }).run()} > ) } const ToolButtonsWrapper = styled.div` display: flex; flex-direction: row; align-items: left; justify-content: left; ` const ToolBtn = styled.div` display: flex; background: rgba(217, 217, 217, 0.24); border-radius: 6px; width: 25px; height: 25px; padding: 5px; margin-right: 5px; transition: all 0.2s ease-in-out; svg { padding: 1px; } &.is-active { background: rgba(176, 176, 176, 0.5); &:hover { background: rgba(139, 139, 139, 0.5); cursor: pointer; } } &:hover { background: rgba(217, 217, 217, 0.48); cursor: pointer; } ` const ToolSelect = styled.select` display: flex; background: rgba(217, 217, 217, 0.185); border-radius: 6px; width: 100px; border: none; height: 25px; padding: 5px; font-size: 11px; font-family: 'DM Sans'; margin-right: 5px; `