@@ -20,6 +20,7 @@ import { Resource } from "@/types/proto/api/v1/resource_service";
2020import { UserSetting } from "@/types/proto/api/v1/user_service" ;
2121import { useTranslate } from "@/utils/i18n" ;
2222import { convertVisibilityFromString , convertVisibilityToString } from "@/utils/memo" ;
23+ import { getResourceUrl } from "@/utils/resource" ;
2324import VisibilityIcon from "../VisibilityIcon" ;
2425import AddMemoRelationPopover from "./ActionButton/AddMemoRelationPopover" ;
2526import LocationSelector from "./ActionButton/LocationSelector" ;
@@ -187,6 +188,14 @@ const MemoEditor = observer((props: Props) => {
187188 } ) ) ;
188189 } ;
189190
191+ const checkIfSafeToDeleteResource = ( resource : Resource ) : boolean => {
192+ const content = editorRef . current ?. getContent ( ) ;
193+ const marker = `(${ getResourceUrl ( resource ) } )` ;
194+ if ( content && content . includes ( marker ) ) return false ; // referenced!
195+
196+ return true ;
197+ } ;
198+
190199 const handleSetRelationList = ( relationList : MemoRelation [ ] ) => {
191200 setState ( ( prevState ) => ( {
192201 ...prevState ,
@@ -513,7 +522,11 @@ const MemoEditor = observer((props: Props) => {
513522 />
514523 ) }
515524 < Editor ref = { editorRef } { ...editorConfig } />
516- < ResourceListView resourceList = { state . resourceList } setResourceList = { handleSetResourceList } />
525+ < ResourceListView
526+ resourceList = { state . resourceList }
527+ setResourceList = { handleSetResourceList }
528+ checkIfSafeToDeleteResource = { checkIfSafeToDeleteResource }
529+ />
517530 < RelationListView relationList = { referenceRelations } setRelationList = { handleSetRelationList } />
518531 < div className = "relative w-full flex flex-row justify-between items-center pt-2" onFocus = { ( e ) => e . stopPropagation ( ) } >
519532 < div className = "flex flex-row justify-start items-center opacity-80 dark:opacity-60 space-x-2" >
0 commit comments