@@ -299,23 +299,27 @@ const deleteMutation = useMutation({
299299const toggleMutation = useMutation ({
300300 mutationFn : async ({ mod , modKey }: { mod: Archon .Content .v0 .Mod ; modKey: string }) => {
301301 const folder = ` ${type .value .toLowerCase ()}s `
302- const currentFilename = mod .disabled ? ` ${mod .filename }.disabled ` : mod .filename
303- const newFilename = mod .disabled ? mod .filename : ` ${mod .filename }.disabled `
302+ // mod.filename already includes .disabled suffix when disabled
303+ const newFilename = mod .filename .endsWith (' .disabled' )
304+ ? mod .filename .slice (0 , - 9 )
305+ : ` ${mod .filename }.disabled `
304306 await client .kyros .files_v0 .moveFileOrFolder (
305- ` /${folder }/${currentFilename } ` ,
307+ ` /${folder }/${mod . filename } ` ,
306308 ` /${folder }/${newFilename } ` ,
307309 )
308- return { newDisabled: ! mod .disabled , modKey }
310+ return { newDisabled: ! mod .disabled , modKey , newFilename }
309311 },
310- onSuccess : ({ newDisabled , modKey }) => {
312+ onSuccess : ({ newDisabled , modKey , newFilename }) => {
311313 // Optimistically update the local cache immediately
312314 // Archon may take time to sync after Kyros renames the file
313315 queryClient .setQueryData (
314316 contentQueryKey .value ,
315317 (oldData : Archon .Content .v0 .Mod [] | undefined ) => {
316318 if (! oldData ) return oldData
317319 return oldData .map ((m ) =>
318- getStableModKey (m ) === modKey ? { ... m , disabled: newDisabled } : m ,
320+ getStableModKey (m ) === modKey
321+ ? { ... m , disabled: newDisabled , filename: newFilename }
322+ : m ,
319323 )
320324 },
321325 )
0 commit comments