@swoft/gtd-domain
Version:
Getting Things Done (GTD) productivity system - consolidated domain implementation
1 lines • 22.1 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/adapters/react/provider.ts","../../../src/adapters/react/hooks/use-inbox.ts","../../../src/adapters/react/hooks/use-projects.ts","../../../src/adapters/react/hooks/use-actions.ts"],"sourcesContent":["/**\n * React Context Provider for GTD Client\n * \n * This provider makes the GTD client available to all React hooks\n */\n\nimport { createContext, useContext, useMemo, createElement, ReactNode } from 'react';\nimport { GTDClient } from '../../client';\nimport { HttpClient } from '../../client/http-client';\n\ninterface GTDProviderProps {\n children: ReactNode;\n httpClient: HttpClient;\n basePath?: string;\n}\n\nconst GTDClientContext = createContext<GTDClient | null>(null);\n\nexport function GTDProvider({ \n children, \n httpClient,\n basePath \n}: GTDProviderProps) {\n const client = useMemo(\n () => new GTDClient(httpClient, basePath),\n [httpClient, basePath]\n );\n\n return createElement(\n GTDClientContext.Provider,\n { value: client },\n children\n );\n}\n\nexport function useGTDClient(): GTDClient {\n const client = useContext(GTDClientContext);\n \n if (!client) {\n throw new Error(\n 'useGTDClient must be used within a GTDProvider. ' +\n 'Make sure to wrap your app with <GTDProvider httpClient={...}>'\n );\n }\n \n return client;\n}","/**\n * React hooks for GTD Inbox operations\n * \n * These hooks use TanStack Query for caching and state management\n */\n\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { GTDClient } from '../../../client';\nimport { \n CaptureInboxItemRequest,\n ClarifyInboxItemRequest,\n ProcessInboxItemRequest,\n InboxQueryFilters,\n ListQueryParams \n} from '../../../contracts';\nimport { useGTDClient } from '../provider';\n\n// Query keys\nconst INBOX_QUERY_KEY = ['gtd', 'inbox'] as const;\n\nexport function useInboxItems(filters?: InboxQueryFilters & ListQueryParams) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: [...INBOX_QUERY_KEY, filters],\n queryFn: () => client.getInboxItems(filters),\n staleTime: 30 * 1000, // 30 seconds\n });\n}\n\nexport function useInboxItem(id: string | null) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: [...INBOX_QUERY_KEY, id],\n queryFn: () => client.getInboxItem(id!),\n enabled: !!id,\n staleTime: 30 * 1000,\n });\n}\n\nexport function useCaptureInboxItem() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (request: CaptureInboxItemRequest) => \n client.captureInboxItem(request),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: INBOX_QUERY_KEY });\n },\n });\n}\n\nexport function useClarifyInboxItem() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: ({ id, request }: { id: string; request: ClarifyInboxItemRequest }) =>\n client.clarifyInboxItem(id, request),\n onSuccess: (data, variables) => {\n // Update specific item\n queryClient.setQueryData([...INBOX_QUERY_KEY, variables.id], data);\n // Invalidate list\n queryClient.invalidateQueries({ \n queryKey: INBOX_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\nexport function useProcessInboxItem() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: ({ id, request }: { id: string; request: ProcessInboxItemRequest }) =>\n client.processInboxItem(id, request),\n onSuccess: () => {\n // Invalidate inbox and potentially projects/actions\n queryClient.invalidateQueries({ queryKey: ['gtd'] });\n },\n });\n}\n\nexport function useDeleteInboxItem() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (id: string) => client.deleteInboxItem(id),\n onSuccess: (_, id) => {\n // Remove from cache\n queryClient.removeQueries({ queryKey: [...INBOX_QUERY_KEY, id] });\n // Invalidate list\n queryClient.invalidateQueries({ \n queryKey: INBOX_QUERY_KEY,\n exact: false \n });\n },\n });\n}","/**\n * React hooks for GTD Project operations\n */\n\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { GTDClient } from '../../../client';\nimport { \n CreateProjectRequest,\n ProjectQueryFilters,\n ListQueryParams \n} from '../../../contracts';\nimport { useGTDClient } from '../provider';\n\n// Query keys\nconst PROJECTS_QUERY_KEY = ['gtd', 'projects'] as const;\n\nexport function useProjects(filters?: ProjectQueryFilters & ListQueryParams) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: [...PROJECTS_QUERY_KEY, filters],\n queryFn: () => client.getProjects(filters),\n staleTime: 60 * 1000, // 1 minute\n });\n}\n\nexport function useProject(id: string | null) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: [...PROJECTS_QUERY_KEY, id],\n queryFn: () => client.getProject(id!),\n enabled: !!id,\n staleTime: 60 * 1000,\n });\n}\n\nexport function useCreateProject() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (request: CreateProjectRequest) => \n client.createProject(request),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: PROJECTS_QUERY_KEY });\n },\n });\n}\n\nexport function useCompleteProject() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: ({ id, completedBy, notes }: { \n id: string; \n completedBy?: string; \n notes?: string \n }) => client.completeProject(id, completedBy, notes),\n onSuccess: (data, variables) => {\n queryClient.setQueryData([...PROJECTS_QUERY_KEY, variables.id], data);\n queryClient.invalidateQueries({ \n queryKey: PROJECTS_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\nexport function useDeferProject() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (id: string) => client.deferProject(id),\n onSuccess: (data, id) => {\n queryClient.setQueryData([...PROJECTS_QUERY_KEY, id], data);\n queryClient.invalidateQueries({ \n queryKey: PROJECTS_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\nexport function useActivateProject() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (id: string) => client.activateProject(id),\n onSuccess: (data, id) => {\n queryClient.setQueryData([...PROJECTS_QUERY_KEY, id], data);\n queryClient.invalidateQueries({ \n queryKey: PROJECTS_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\nexport function useCancelProject() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (id: string) => client.cancelProject(id),\n onSuccess: (data, id) => {\n queryClient.setQueryData([...PROJECTS_QUERY_KEY, id], data);\n queryClient.invalidateQueries({ \n queryKey: PROJECTS_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\nexport function useDeleteProject() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (id: string) => client.deleteProject(id),\n onSuccess: (_, id) => {\n queryClient.removeQueries({ queryKey: [...PROJECTS_QUERY_KEY, id] });\n queryClient.invalidateQueries({ \n queryKey: PROJECTS_QUERY_KEY,\n exact: false \n });\n },\n });\n}","/**\n * React hooks for GTD Next Action operations\n */\n\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { GTDClient } from '../../../client';\nimport { \n CreateNextActionRequest,\n AssignNextActionRequest,\n NextActionQueryFilters,\n ListQueryParams \n} from '../../../contracts';\nimport { useGTDClient } from '../provider';\n\n// Query keys\nconst ACTIONS_QUERY_KEY = ['gtd', 'actions'] as const;\nconst CONTEXTS_QUERY_KEY = ['gtd', 'contexts'] as const;\n\nexport function useNextActions(filters?: NextActionQueryFilters & ListQueryParams) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: [...ACTIONS_QUERY_KEY, filters],\n queryFn: () => client.getNextActions(filters),\n staleTime: 30 * 1000, // 30 seconds\n });\n}\n\nexport function useNextAction(id: string | null) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: [...ACTIONS_QUERY_KEY, id],\n queryFn: () => client.getNextAction(id!),\n enabled: !!id,\n staleTime: 30 * 1000,\n });\n}\n\nexport function useActionsByProject(projectId: string | null) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: [...ACTIONS_QUERY_KEY, 'project', projectId],\n queryFn: () => client.getActionsByProject(projectId!),\n enabled: !!projectId,\n staleTime: 30 * 1000,\n });\n}\n\nexport function useActionsByContext(context: string | null) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: [...ACTIONS_QUERY_KEY, 'context', context],\n queryFn: () => client.getActionsByContext(context!),\n enabled: !!context,\n staleTime: 30 * 1000,\n });\n}\n\nexport function useContexts() {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: CONTEXTS_QUERY_KEY,\n queryFn: () => client.getContexts(),\n staleTime: 5 * 60 * 1000, // 5 minutes\n });\n}\n\nexport function useCreateNextAction() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (request: CreateNextActionRequest) => \n client.createNextAction(request),\n onSuccess: (data) => {\n // Invalidate actions lists\n queryClient.invalidateQueries({ queryKey: ACTIONS_QUERY_KEY });\n \n // If it has a project, invalidate that project's actions\n if (data.projectId) {\n queryClient.invalidateQueries({ \n queryKey: [...ACTIONS_QUERY_KEY, 'project', data.projectId] \n });\n }\n \n // If it has a context, invalidate that context's actions\n if (data.context) {\n queryClient.invalidateQueries({ \n queryKey: [...ACTIONS_QUERY_KEY, 'context', data.context] \n });\n }\n },\n });\n}\n\nexport function useAssignNextAction() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: ({ id, request }: { id: string; request: AssignNextActionRequest }) =>\n client.assignNextAction(id, request),\n onSuccess: (data, variables) => {\n queryClient.setQueryData([...ACTIONS_QUERY_KEY, variables.id], data);\n queryClient.invalidateQueries({ \n queryKey: ACTIONS_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\nexport function useUnassignNextAction() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (id: string) => client.unassignNextAction(id),\n onSuccess: (data, id) => {\n queryClient.setQueryData([...ACTIONS_QUERY_KEY, id], data);\n queryClient.invalidateQueries({ \n queryKey: ACTIONS_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\nexport function useCompleteNextAction() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (id: string) => client.completeNextAction(id),\n onSuccess: (data, id) => {\n queryClient.setQueryData([...ACTIONS_QUERY_KEY, id], data);\n queryClient.invalidateQueries({ \n queryKey: ACTIONS_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\nexport function useDeleteNextAction() {\n const client = useGTDClient();\n const queryClient = useQueryClient();\n \n return useMutation({\n mutationFn: (id: string) => client.deleteNextAction(id),\n onSuccess: (_, id) => {\n queryClient.removeQueries({ queryKey: [...ACTIONS_QUERY_KEY, id] });\n queryClient.invalidateQueries({ \n queryKey: ACTIONS_QUERY_KEY,\n exact: false \n });\n },\n });\n}\n\n// Weekly Review\nexport function useWeeklyReview(reviewedBy: string) {\n const client = useGTDClient();\n \n return useQuery({\n queryKey: ['gtd', 'weekly-review', reviewedBy],\n queryFn: () => client.getWeeklyReview(reviewedBy),\n staleTime: 60 * 1000, // 1 minute\n });\n}"],"mappings":"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","names":["createContext","useContext","useMemo","createElement","GTDClientContext","createContext","GTDProvider","children","httpClient","basePath","client","useMemo","GTDClient","createElement","Provider","value","useGTDClient","useContext","Error","useQuery","useMutation","useQueryClient","INBOX_QUERY_KEY","useInboxItems","filters","client","useGTDClient","useQuery","queryKey","queryFn","getInboxItems","staleTime","useInboxItem","id","getInboxItem","enabled","useCaptureInboxItem","queryClient","useQueryClient","useMutation","mutationFn","request","captureInboxItem","onSuccess","invalidateQueries","useClarifyInboxItem","clarifyInboxItem","data","variables","setQueryData","exact","useProcessInboxItem","processInboxItem","useDeleteInboxItem","deleteInboxItem","_","removeQueries","useQuery","useMutation","useQueryClient","PROJECTS_QUERY_KEY","useProjects","filters","client","useGTDClient","useQuery","queryKey","queryFn","getProjects","staleTime","useProject","id","getProject","enabled","useCreateProject","queryClient","useQueryClient","useMutation","mutationFn","request","createProject","onSuccess","invalidateQueries","useCompleteProject","completedBy","notes","completeProject","data","variables","setQueryData","exact","useDeferProject","deferProject","useActivateProject","activateProject","useCancelProject","cancelProject","useDeleteProject","deleteProject","_","removeQueries","useQuery","useMutation","useQueryClient","ACTIONS_QUERY_KEY","CONTEXTS_QUERY_KEY","useNextActions","filters","client","useGTDClient","useQuery","queryKey","queryFn","getNextActions","staleTime","useNextAction","id","getNextAction","enabled","useActionsByProject","projectId","getActionsByProject","useActionsByContext","context","getActionsByContext","useContexts","getContexts","useCreateNextAction","queryClient","useQueryClient","useMutation","mutationFn","request","createNextAction","onSuccess","data","invalidateQueries","useAssignNextAction","assignNextAction","variables","setQueryData","exact","useUnassignNextAction","unassignNextAction","useCompleteNextAction","completeNextAction","useDeleteNextAction","deleteNextAction","_","removeQueries","useWeeklyReview","reviewedBy","getWeeklyReview"]}