diff --git a/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorButton.tsx b/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorButton.tsx index 46ad10a52..f9db4a635 100644 --- a/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorButton.tsx +++ b/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorButton.tsx @@ -5,6 +5,7 @@ import { FunctionComponent, useCallback, useRef, useState } from 'react' import Icon from '@/Components/Icon/Icon' import ChangeEditorMenu from './ChangeEditorMenu' import Popover from '../Popover/Popover' +import { classNames } from '@/Utils/ConcatenateClassNames' type Props = { application: WebApplication @@ -21,6 +22,12 @@ const ChangeEditorButton: FunctionComponent = ({ const [isOpen, setIsOpen] = useState(false) const buttonRef = useRef(null) const containerRef = useRef(null) + const [selectedEditor, setSelectedEditor] = useState(() => { + return note ? application.componentManager.editorForNote(note) : undefined + }) + const [selectedEditorIcon, selectedEditorIconTint] = application.iconsController.getIconAndTintForNoteType( + selectedEditor?.package_info.note_type, + ) const toggleMenu = useCallback(async () => { const willMenuOpen = !isOpen @@ -33,13 +40,16 @@ const ChangeEditorButton: FunctionComponent = ({ return (
= ({ closeMenu={() => { setIsOpen(false) }} + onSelect={(component) => { + setSelectedEditor(component) + }} />
diff --git a/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorMenu.tsx b/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorMenu.tsx index 230f5d16a..a2ba480dd 100644 --- a/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorMenu.tsx +++ b/packages/web/src/javascripts/Components/ChangeEditor/ChangeEditorMenu.tsx @@ -31,11 +31,18 @@ type ChangeEditorMenuProps = { closeMenu: () => void isVisible: boolean note: SNNote | undefined + onSelect?: (component: SNComponent | undefined) => void } const getGroupId = (group: EditorMenuGroup) => group.title.toLowerCase().replace(/\s/, '-') -const ChangeEditorMenu: FunctionComponent = ({ application, closeMenu, isVisible, note }) => { +const ChangeEditorMenu: FunctionComponent = ({ + application, + closeMenu, + isVisible, + note, + onSelect, +}) => { const editors = useMemo( () => application.componentManager.componentsForArea(ComponentArea.Editor).sort((a, b) => { @@ -162,8 +169,12 @@ const ChangeEditorMenu: FunctionComponent = ({ applicatio } closeMenu() + + if (onSelect) { + onSelect(itemToBeSelected.component) + } }, - [application.componentManager, closeMenu, currentEditor, note, premiumModal, selectComponent], + [application.componentManager, closeMenu, currentEditor, note, onSelect, premiumModal, selectComponent], ) return ( diff --git a/packages/web/src/javascripts/Controllers/NotesController.ts b/packages/web/src/javascripts/Controllers/NotesController.ts index cff4109f5..dc5cc21aa 100644 --- a/packages/web/src/javascripts/Controllers/NotesController.ts +++ b/packages/web/src/javascripts/Controllers/NotesController.ts @@ -116,7 +116,7 @@ export class NotesController extends AbstractViewController { return this.application.items.trashedItems.length } - setContextMenuOpen(open: boolean): void { + setContextMenuOpen = (open: boolean) => { this.contextMenuOpen = open } diff --git a/packages/web/tailwind.config.js b/packages/web/tailwind.config.js index 082ad7b40..f25389ef6 100644 --- a/packages/web/tailwind.config.js +++ b/packages/web/tailwind.config.js @@ -135,6 +135,12 @@ module.exports = { 'text-accessory-tint-4', 'text-accessory-tint-5', 'text-accessory-tint-6', + 'border-accessory-tint-1', + 'border-accessory-tint-2', + 'border-accessory-tint-3', + 'border-accessory-tint-4', + 'border-accessory-tint-5', + 'border-accessory-tint-6', ], plugins: [ plugin(function ({ addVariant }) {