refactor: replace $: reactive statements with $derived()
Migrate remaining Svelte 4 reactive statements to Svelte 5 $derived: - media/audit/+page.svelte: Convert allSelected, hasSelection, selectedSize to $derived - universe/compose/+page.svelte: Convert postType, initialContent to $derived - Also migrated all let declarations to $state() in audit page for consistency All reactive statements now use Svelte 5 runes mode.
This commit is contained in:
parent
4337b57dee
commit
5b5785887d
2 changed files with 22 additions and 19 deletions
|
|
@ -29,32 +29,33 @@
|
||||||
createdAt: string
|
createdAt: string
|
||||||
}
|
}
|
||||||
|
|
||||||
let loading = true
|
let loading = $state(true)
|
||||||
let deleting = false
|
let deleting = $state(false)
|
||||||
let auditData: {
|
let auditData = $state<{
|
||||||
summary: AuditSummary
|
summary: AuditSummary
|
||||||
orphanedFiles: OrphanedFile[]
|
orphanedFiles: OrphanedFile[]
|
||||||
missingReferences: string[]
|
missingReferences: string[]
|
||||||
} | null = null
|
} | null>(null)
|
||||||
let error: string | null = null
|
let error = $state<string | null>(null)
|
||||||
let selectedFiles = new Set<string>()
|
let selectedFiles = $state(new Set<string>())
|
||||||
let showDeleteModal = false
|
let showDeleteModal = $state(false)
|
||||||
let deleteResults: { succeeded: number; failed: string[] } | null = null
|
let deleteResults = $state<{ succeeded: number; failed: string[] } | null>(null)
|
||||||
let cleanupResults: {
|
let cleanupResults = $state<{
|
||||||
cleanedMedia: number
|
cleanedMedia: number
|
||||||
cleanedProjects: number
|
cleanedProjects: number
|
||||||
cleanedPosts: number
|
cleanedPosts: number
|
||||||
errors: string[]
|
errors: string[]
|
||||||
} | null = null
|
} | null>(null)
|
||||||
let showCleanupModal = false
|
let showCleanupModal = $state(false)
|
||||||
let cleaningUp = false
|
let cleaningUp = $state(false)
|
||||||
|
|
||||||
$: allSelected = auditData && selectedFiles.size >= Math.min(20, auditData.orphanedFiles.length)
|
const allSelected = $derived(auditData && selectedFiles.size >= Math.min(20, auditData.orphanedFiles.length))
|
||||||
$: hasSelection = selectedFiles.size > 0
|
const hasSelection = $derived(selectedFiles.size > 0)
|
||||||
$: selectedSize =
|
const selectedSize = $derived(
|
||||||
auditData?.orphanedFiles
|
auditData?.orphanedFiles
|
||||||
.filter((f) => selectedFiles.has(f.publicId))
|
.filter((f) => selectedFiles.has(f.publicId))
|
||||||
.reduce((sum, f) => sum + f.size, 0) || 0
|
.reduce((sum, f) => sum + f.size, 0) || 0
|
||||||
|
)
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
runAudit()
|
runAudit()
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,12 @@
|
||||||
import AdminPage from '$lib/components/admin/AdminPage.svelte'
|
import AdminPage from '$lib/components/admin/AdminPage.svelte'
|
||||||
|
|
||||||
// Get initial state from URL params
|
// Get initial state from URL params
|
||||||
$: postType = ($page.url.searchParams.get('type') as 'post' | 'essay') || 'essay'
|
const postType = $derived(($page.url.searchParams.get('type') as 'post' | 'essay') || 'essay')
|
||||||
$: initialContent = $page.url.searchParams.get('content')
|
const initialContent = $derived(
|
||||||
? JSON.parse($page.url.searchParams.get('content')!)
|
$page.url.searchParams.get('content')
|
||||||
: undefined
|
? JSON.parse($page.url.searchParams.get('content')!)
|
||||||
|
: undefined
|
||||||
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue