Files
Momento/memento-note/lib/query-hooks.ts
Antigravity 724474cb49
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 5s
chore: remove dead code — 8 components, 5 libs, 4 API routes, 4 npm packages, 30+ scripts, dead CSS, dead exports
Removed unused components:
- brainstorm-canvas, brainstorm-create-dialog, invite-dialog, manual-idea-dialog
- note-inline-editor, profile-page-header, quota-paywall, label-management-dialog

Removed dead lib files:
- api-auth.ts, color-harmony-recommendation.ts, label-storage.ts, modern-color-options.ts
- hooks/use-card-size-mode.ts

Removed dead API routes:
- ai/test-chat, ai/test-embeddings, ai/test-tags, admin/randomize-labels

Removed unused npm packages:
- cmdk, novel, tippy.js, react-force-graph-2d

Cleaned dead CSS from globals.css:
- acrylic-*, win11-shadow-*, muuri-grid/item, ai-glass, ai-tab-indicator, ai-send-btn, sidebar-view-toggle, memento-sidebar-depth

Removed 29 orphan scripts and 3 root orphan files

Cleaned dead exports from 8 lib files:
- NOTE_TYPE_CONFIG, getPublishableKey, PROVIDER_DEFAULTS, useNotes/useNote/invalidateNote, etc.
2026-05-16 20:34:58 +00:00

48 lines
1.6 KiB
TypeScript

'use client'
import { useQueryClient, useQuery } from '@tanstack/react-query'
import { queryKeys } from './query-keys'
import type { Notebook, Label } from '@/lib/types'
// Re-export query keys
export { queryKeys }
// ===== useNotebooks =====
export function useNotebooksQuery() {
return useQuery({
queryKey: queryKeys.notebooks(),
queryFn: async (): Promise<Notebook[]> => {
const res = await fetch('/api/notebooks', { cache: 'no-store', credentials: 'include' })
const data = await res.json()
return data.notebooks || []
},
})
}
// ===== useLabels =====
export function useLabelsQuery(notebookId?: string | null) {
return useQuery({
queryKey: queryKeys.labels(notebookId),
queryFn: async (): Promise<Label[]> => {
const url = new URL('/api/labels', window.location.origin)
if (notebookId) url.searchParams.set('notebookId', notebookId)
const res = await fetch(url.toString(), { cache: 'no-store', credentials: 'include' })
const data = await res.json()
return data.data || []
},
})
}
// ===== invalidateHelpers =====
export function invalidateNotes(queryClient: ReturnType<typeof useQueryClient>, notebookId?: string | null) {
queryClient.invalidateQueries({ queryKey: queryKeys.notes(notebookId) })
}
export function invalidateNotebooks(queryClient: ReturnType<typeof useQueryClient>) {
queryClient.invalidateQueries({ queryKey: queryKeys.notebooks() })
}
export function invalidateLabels(queryClient: ReturnType<typeof useQueryClient>, notebookId?: string | null) {
queryClient.invalidateQueries({ queryKey: queryKeys.labels(notebookId) })
}