@@ -6,6 +6,7 @@ import { checkConflict, findDescendantsFromId, getDraftStatus } from '../utils/d
66import type { useGit } from './useGit'
77import { useHooks } from './useHooks'
88import { ref } from 'vue'
9+ import { studioFlags } from './useStudio'
910
1011export function useDraftBase < T extends DatabaseItem | MediaItem > (
1112 type : 'media' | 'document' ,
@@ -73,42 +74,44 @@ export function useDraftBase<T extends DatabaseItem | MediaItem>(
7374 await storage . removeItem ( id )
7475 await hostDb . delete ( id )
7576
76- let deleteDraftItem : DraftItem < T > | null = null
77- if ( existingDraftItem ) {
78- if ( existingDraftItem . status === DraftStatus . Deleted ) return
77+ if ( ! studioFlags . dev ) {
78+ let deleteDraftItem : DraftItem < T > | null = null
79+ if ( existingDraftItem ) {
80+ if ( existingDraftItem . status === DraftStatus . Deleted ) return
7981
80- if ( existingDraftItem . status === DraftStatus . Created ) {
81- list . value = list . value . filter ( item => item . id !== id )
82+ if ( existingDraftItem . status === DraftStatus . Created ) {
83+ list . value = list . value . filter ( item => item . id !== id )
84+ }
85+ else {
86+ deleteDraftItem = {
87+ id,
88+ fsPath : existingDraftItem . fsPath ,
89+ status : DraftStatus . Deleted ,
90+ original : existingDraftItem . original ,
91+ githubFile : existingDraftItem . githubFile ,
92+ }
93+
94+ list . value = list . value . map ( item => item . id === id ? deleteDraftItem ! : item ) as DraftItem < T > [ ]
95+ }
8296 }
8397 else {
98+ // TODO: check if gh file has been updated
99+ const githubFile = await git . fetchFile ( joinURL ( 'content' , fsPath ) , { cached : true } ) as GithubFile
100+
84101 deleteDraftItem = {
85102 id,
86- fsPath : existingDraftItem . fsPath ,
103+ fsPath,
87104 status : DraftStatus . Deleted ,
88- original : existingDraftItem . original ,
89- githubFile : existingDraftItem . githubFile ,
105+ original : originalDbItem ,
106+ githubFile,
90107 }
91108
92- list . value = list . value . map ( item => item . id === id ? deleteDraftItem ! : item ) as DraftItem < T > [ ]
109+ list . value . push ( deleteDraftItem )
93110 }
94- }
95- else {
96- // TODO: check if gh file has been updated
97- const githubFile = await git . fetchFile ( joinURL ( 'content' , fsPath ) , { cached : true } ) as GithubFile
98-
99- deleteDraftItem = {
100- id,
101- fsPath,
102- status : DraftStatus . Deleted ,
103- original : originalDbItem ,
104- githubFile,
105- }
106-
107- list . value . push ( deleteDraftItem )
108- }
109111
110- if ( deleteDraftItem ) {
111- await storage . setItem ( id , deleteDraftItem )
112+ if ( deleteDraftItem ) {
113+ await storage . setItem ( id , deleteDraftItem )
114+ }
112115 }
113116
114117 if ( rerender ) {
0 commit comments