mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-09-07 08:26:15 +00:00
Added quick note and highlights features to the new UI, improved OG scraping, and implemented Nova alpha access feature flag.
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import { create } from "zustand"
|
|
|
|
interface QuickNoteDraftState {
|
|
draftByProject: Record<string, string>
|
|
setDraft: (projectId: string, draft: string) => void
|
|
resetDraft: (projectId: string) => void
|
|
}
|
|
|
|
export const useQuickNoteDraftStore = create<QuickNoteDraftState>()(
|
|
(set, get) => ({
|
|
draftByProject: {},
|
|
|
|
setDraft: (projectId, draft) => {
|
|
const current = get().draftByProject[projectId]
|
|
if (current === draft) return
|
|
set((state) => ({
|
|
draftByProject: {
|
|
...state.draftByProject,
|
|
[projectId]: draft,
|
|
},
|
|
}))
|
|
},
|
|
|
|
resetDraft: (projectId) => {
|
|
const current = get().draftByProject[projectId]
|
|
if (current === undefined || current === "") return
|
|
set((state) => ({
|
|
draftByProject: {
|
|
...state.draftByProject,
|
|
[projectId]: "",
|
|
},
|
|
}))
|
|
},
|
|
}),
|
|
)
|
|
|
|
export function useQuickNoteDraft(projectId: string) {
|
|
const draft = useQuickNoteDraftStore(
|
|
(s) => s.draftByProject[projectId] ?? "",
|
|
)
|
|
const setDraft = useQuickNoteDraftStore((s) => s.setDraft)
|
|
const resetDraft = useQuickNoteDraftStore((s) => s.resetDraft)
|
|
|
|
return {
|
|
draft,
|
|
setDraft: (value: string) => setDraft(projectId, value),
|
|
resetDraft: () => resetDraft(projectId),
|
|
}
|
|
}
|
|
|
|
export function useQuickNoteDraftReset(projectId: string) {
|
|
const resetDraft = useQuickNoteDraftStore((s) => s.resetDraft)
|
|
return () => resetDraft(projectId)
|
|
}
|