@@ -13,11 +13,13 @@ import {
13
13
Doc ,
14
14
ModalRemoveDoc ,
15
15
Role ,
16
+ getEmojiAndTitle ,
16
17
useCopyDocLink ,
17
18
useCreateChildDoc ,
18
19
useDuplicateDoc ,
19
20
} from '@/docs/doc-management' ;
20
21
22
+ import { useDocTitleUpdate } from '../../doc-management/hooks/useDocTitleUpdate' ;
21
23
import { useDetachDoc } from '../api/useDetach' ;
22
24
import MoveDocIcon from '../assets/doc-extract-bold.svg' ;
23
25
@@ -44,6 +46,7 @@ export const DocTreeItemActions = ({
44
46
const copyLink = useCopyDocLink ( doc . id ) ;
45
47
const { mutate : detachDoc } = useDetachDoc ( ) ;
46
48
const treeContext = useTreeContext < Doc | null > ( ) ;
49
+
47
50
const { mutate : duplicateDoc } = useDuplicateDoc ( {
48
51
onSuccess : ( duplicatedDoc ) => {
49
52
// Reset the tree context root will reset the full tree view.
@@ -52,6 +55,13 @@ export const DocTreeItemActions = ({
52
55
} ,
53
56
} ) ;
54
57
58
+ // Emoji Management
59
+ const { emoji } = getEmojiAndTitle ( doc . title ?? '' ) ;
60
+ const { updateDocEmoji } = useDocTitleUpdate ( ) ;
61
+ const removeEmoji = ( ) => {
62
+ updateDocEmoji ( doc . id , doc . title ?? '' , '' ) ;
63
+ } ;
64
+
55
65
const handleDetachDoc = ( ) => {
56
66
if ( ! treeContext ?. root ) {
57
67
return ;
@@ -82,6 +92,15 @@ export const DocTreeItemActions = ({
82
92
} ,
83
93
...( ! isRoot
84
94
? [
95
+ ...( emoji
96
+ ? [
97
+ {
98
+ label : t ( 'Remove emoji' ) ,
99
+ icon : < Icon iconName = "emoji_emotions" $size = "24px" /> ,
100
+ callback : removeEmoji ,
101
+ } ,
102
+ ]
103
+ : [ ] ) ,
85
104
{
86
105
label : t ( 'Move to my docs' ) ,
87
106
isDisabled : doc . user_role !== Role . OWNER ,
0 commit comments