Conversation
…h video is being hovered by the user.
… it look cleaner.
… using their keyboard.
…s the right panel, left panel, PDF viwer, and formular reorder panels.
…x2 systems, matrix operations, and vector basics.
…I: Matrix Propertiesm Eigenvalues & Eigenvectors, Decompositions & spaces.
…ad of fixed 54px.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the cheat sheet generator frontend with additional curated videos and a set of UI/UX improvements (theme options, video panel enhancements, keyboard shortcuts, toast notifications, and visual polish).
Changes:
- Added curated YouTube entries for Linear Algebra I & II topics.
- Introduced UI enhancements in the editor (select all/deselect all, title character limit/counter, right-panel empty state, clear search button, toast notifications, keyboard shortcuts).
- Added a new “Blossom” theme and multiple CSS updates for thumbnails, transitions, focus rings, scrollbars, and responsive behavior.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 11 comments.
| File | Description |
|---|---|
| frontend/src/data/subjectVideos.js | Adds curated video mappings for Linear Algebra I & II. |
| frontend/src/components/CreateCheatSheet.jsx | Adds editor UI behaviors (search clear, select all/deselect all, PDF preview updates, toasts, keyboard shortcuts). |
| frontend/src/App.jsx | Adds “blossom” to the theme selector list. |
| frontend/src/App.css | Implements blossom theme variables and various UI styling updates (thumbnails, focus rings, scrollbars, toasts, responsiveness). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+743
to
+753
| if(scroffRef.current){ | ||
| setShowScrollTop(scrollRef.current.scroppTop > 300); | ||
| } | ||
| const pages = scrollRef.current.querySelectorAll('.pdf-page'); | ||
| const scrollTop = scrollRef.current.scrollTop; | ||
| const containerTop = scrollRef.current.getBoundingClientRect().top(); | ||
|
|
||
| let current = 1; | ||
| pages.forEach((page, index) => { | ||
| const pageTop = page.getBoundingClientRect().top - containerTop; | ||
| if (pageTop <= 100){ |
| }; | ||
|
|
||
| const scrollToTop = () => { | ||
| scrollRef.current?.ScrollTo({ top: 0, behavior: 'smooth' }); |
| <div className="pdf-preview-shell"> | ||
| <div className="pdf-preview-toolbar"> | ||
| <span className="pdf-toolbar-note">Use the controls to adjust the preview.</span> | ||
| <span className="pdf-toolbar-note">{numPages ? `Page 1 of ${numPages}` : 'Use the controls to adjust the preview.'}</span> |
Comment on lines
+1158
to
+1161
| const showToast = useCallback((message, type = 'success') => { | ||
| setToast({ message, type }); | ||
| setTimeout(() => setToast(null), 3000); | ||
| }) |
Comment on lines
+1445
to
+1460
| useEffect(() => { | ||
| const handleKeyDown = (event) => { | ||
| if((event.ctrlKey || event.metaKey) && event.key == 'Enter'){ | ||
| event.preventDefault(); | ||
| if(!isCompiling) handleCompileClick(); | ||
| return; | ||
| } | ||
| if((event.ctrlkey || event.metaKey) && event.key == 's'){ | ||
| event.preventDefault(); | ||
| handleSave({ preventDefault: () => {} }); | ||
| return; | ||
| } | ||
| }; | ||
| window.addEventListener('keydown', handleKeyDown); | ||
| return () => window.removeEventListener('keydown', handleKeyDown); | ||
| }, [isCompiling]); |
| <span className="toast-icon"> | ||
| {toast.type === 'success' ? '✓' : '✕'} | ||
| </span> | ||
| <span className="toast=message">{toast.message}</span> |
| } | ||
|
|
||
| .left-panel-scroll::-webkit-scrollbar-thumb:hover, | ||
| right-panel-scroll::-webkit-scrollbar-thumb:hover, |
Comment on lines
+3427
to
+3428
| .tile-char-counter-warn { | ||
| color: var (--btn-clear); |
Comment on lines
+3518
to
3523
| .pdf-toolbar-notes { | ||
| font-size: 0.75rem; | ||
| color: var(--text-muted); | ||
| font-variant-numeric: tabular-nums; | ||
| min-width: 80px; | ||
| } No newline at end of file |
…p feature when you are viewing the bottom of the pdf.
…no longer implemented.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a collection of frontend improvements focused on visual polish, accessibility, user-friendliness, and added the videos for the missing topics.
I added the following changes/adjustments: