diff --git a/packages/web/src/javascripts/Components/Icon/IconPicker.tsx b/packages/web/src/javascripts/Components/Icon/IconPicker.tsx
index a9f660bcf..d05ae93fe 100644
--- a/packages/web/src/javascripts/Components/Icon/IconPicker.tsx
+++ b/packages/web/src/javascripts/Components/Icon/IconPicker.tsx
@@ -7,6 +7,7 @@ import { getEmojiLength } from './EmojiLength'
import Icon, { isIconEmoji } from './Icon'
import { IconNameToSvgMapping } from './IconNameToSvgMapping'
import { IconPickerType } from './IconPickerType'
+import DecoratedInput from '../Input/DecoratedInput'
type Props = {
selectedValue: VectorIconNameOrEmoji
@@ -114,13 +115,13 @@ const IconPicker = ({ selectedValue, onIconChange, platform, className, useIconG
}, [])
return (
-
+
-
+
{currentType === 'icon' &&
(useIconGrid ? (
-
- handleEmojiChange((input as HTMLInputElement)?.value)}
- />
-
+
handleEmojiChange(value)}
+ />
Use your keyboard to enter or paste in an emoji character.
diff --git a/packages/web/src/javascripts/Components/Tags/TagContextMenu.tsx b/packages/web/src/javascripts/Components/Tags/TagContextMenu.tsx
index 9f93c4bc9..0773c414e 100644
--- a/packages/web/src/javascripts/Components/Tags/TagContextMenu.tsx
+++ b/packages/web/src/javascripts/Components/Tags/TagContextMenu.tsx
@@ -1,5 +1,5 @@
import { observer } from 'mobx-react-lite'
-import { useCallback, useMemo } from 'react'
+import { useCallback, useMemo, useRef } from 'react'
import Icon from '@/Components/Icon/Icon'
import Menu from '@/Components/Menu/Menu'
import MenuItem from '@/Components/Menu/MenuItem'
@@ -14,6 +14,8 @@ import IconPicker from '../Icon/IconPicker'
import AddToVaultMenuOption from '../Vaults/AddToVaultMenuOption'
import { useApplication } from '../ApplicationProvider'
import MenuSection from '../Menu/MenuSection'
+import DecoratedInput from '../Input/DecoratedInput'
+import { KeyboardKey } from '@standardnotes/ui-services'
type ContextMenuProps = {
navigationController: NavigationController
@@ -38,11 +40,6 @@ const TagContextMenu = ({ navigationController, isEntitledToFolders, selectedTag
navigationController.setAddingSubtagTo(selectedTag)
}, [isEntitledToFolders, navigationController, selectedTag, premiumModal])
- const onClickRename = useCallback(() => {
- navigationController.setContextMenuOpen(false)
- navigationController.setEditingTag(selectedTag)
- }, [navigationController, selectedTag])
-
const onClickDelete = useCallback(() => {
navigationController.remove(selectedTag, true).catch(console.error)
}, [navigationController, selectedTag])
@@ -63,6 +60,26 @@ const TagContextMenu = ({ navigationController, isEntitledToFolders, selectedTag
const tagCreatedAt = useMemo(() => formatDateForContextMenu(selectedTag.created_at), [selectedTag.created_at])
+ const titleInputRef = useRef(null)
+
+ const saveTitle = useCallback(
+ (closeMenu = false) => {
+ if (!titleInputRef.current) {
+ return
+ }
+ const value = titleInputRef.current.value.trim()
+ navigationController
+ .save(selectedTag, value)
+ .catch(console.error)
+ .finally(() => {
+ if (closeMenu) {
+ navigationController.setContextMenuOpen(false)
+ }
+ })
+ },
+ [navigationController, selectedTag],
+ )
+
return (
navigationController.setContextMenuOpen(!contextMenuOpen)}
className="py-2"
>
+
+
Name
+
+ saveTitle()}
+ onKeyDown={(event) => {
+ if (event.key === KeyboardKey.Enter) {
+ saveTitle(true)
+ }
+ }}
+ />
+
+
+
+
{!isEntitledToFolders &&
}
-