UNPKG

@swoft/gtd-domain

Version:

Getting Things Done (GTD) productivity system - consolidated domain implementation

485 lines (481 loc) 13.8 kB
import { GTDClient } from "../../chunk-KWIF3JSN.mjs"; import "../../chunk-GQ5XH56W.mjs"; import { __name } from "../../chunk-PAWJFY3S.mjs"; // src/adapters/react/provider.ts import { createContext, useContext, useMemo, createElement } from "react"; var GTDClientContext = createContext(null); function GTDProvider({ children, httpClient, basePath }) { const client = useMemo(() => new GTDClient(httpClient, basePath), [ httpClient, basePath ]); return createElement(GTDClientContext.Provider, { value: client }, children); } __name(GTDProvider, "GTDProvider"); function useGTDClient() { const client = useContext(GTDClientContext); if (!client) { throw new Error("useGTDClient must be used within a GTDProvider. Make sure to wrap your app with <GTDProvider httpClient={...}>"); } return client; } __name(useGTDClient, "useGTDClient"); // src/adapters/react/hooks/use-inbox.ts import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; var INBOX_QUERY_KEY = [ "gtd", "inbox" ]; function useInboxItems(filters) { const client = useGTDClient(); return useQuery({ queryKey: [ ...INBOX_QUERY_KEY, filters ], queryFn: /* @__PURE__ */ __name(() => client.getInboxItems(filters), "queryFn"), staleTime: 30 * 1e3 }); } __name(useInboxItems, "useInboxItems"); function useInboxItem(id) { const client = useGTDClient(); return useQuery({ queryKey: [ ...INBOX_QUERY_KEY, id ], queryFn: /* @__PURE__ */ __name(() => client.getInboxItem(id), "queryFn"), enabled: !!id, staleTime: 30 * 1e3 }); } __name(useInboxItem, "useInboxItem"); function useCaptureInboxItem() { const client = useGTDClient(); const queryClient = useQueryClient(); return useMutation({ mutationFn: /* @__PURE__ */ __name((request) => client.captureInboxItem(request), "mutationFn"), onSuccess: /* @__PURE__ */ __name(() => { queryClient.invalidateQueries({ queryKey: INBOX_QUERY_KEY }); }, "onSuccess") }); } __name(useCaptureInboxItem, "useCaptureInboxItem"); function useClarifyInboxItem() { const client = useGTDClient(); const queryClient = useQueryClient(); return useMutation({ mutationFn: /* @__PURE__ */ __name(({ id, request }) => client.clarifyInboxItem(id, request), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data, variables) => { queryClient.setQueryData([ ...INBOX_QUERY_KEY, variables.id ], data); queryClient.invalidateQueries({ queryKey: INBOX_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useClarifyInboxItem, "useClarifyInboxItem"); function useProcessInboxItem() { const client = useGTDClient(); const queryClient = useQueryClient(); return useMutation({ mutationFn: /* @__PURE__ */ __name(({ id, request }) => client.processInboxItem(id, request), "mutationFn"), onSuccess: /* @__PURE__ */ __name(() => { queryClient.invalidateQueries({ queryKey: [ "gtd" ] }); }, "onSuccess") }); } __name(useProcessInboxItem, "useProcessInboxItem"); function useDeleteInboxItem() { const client = useGTDClient(); const queryClient = useQueryClient(); return useMutation({ mutationFn: /* @__PURE__ */ __name((id) => client.deleteInboxItem(id), "mutationFn"), onSuccess: /* @__PURE__ */ __name((_, id) => { queryClient.removeQueries({ queryKey: [ ...INBOX_QUERY_KEY, id ] }); queryClient.invalidateQueries({ queryKey: INBOX_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useDeleteInboxItem, "useDeleteInboxItem"); // src/adapters/react/hooks/use-projects.ts import { useQuery as useQuery2, useMutation as useMutation2, useQueryClient as useQueryClient2 } from "@tanstack/react-query"; var PROJECTS_QUERY_KEY = [ "gtd", "projects" ]; function useProjects(filters) { const client = useGTDClient(); return useQuery2({ queryKey: [ ...PROJECTS_QUERY_KEY, filters ], queryFn: /* @__PURE__ */ __name(() => client.getProjects(filters), "queryFn"), staleTime: 60 * 1e3 }); } __name(useProjects, "useProjects"); function useProject(id) { const client = useGTDClient(); return useQuery2({ queryKey: [ ...PROJECTS_QUERY_KEY, id ], queryFn: /* @__PURE__ */ __name(() => client.getProject(id), "queryFn"), enabled: !!id, staleTime: 60 * 1e3 }); } __name(useProject, "useProject"); function useCreateProject() { const client = useGTDClient(); const queryClient = useQueryClient2(); return useMutation2({ mutationFn: /* @__PURE__ */ __name((request) => client.createProject(request), "mutationFn"), onSuccess: /* @__PURE__ */ __name(() => { queryClient.invalidateQueries({ queryKey: PROJECTS_QUERY_KEY }); }, "onSuccess") }); } __name(useCreateProject, "useCreateProject"); function useCompleteProject() { const client = useGTDClient(); const queryClient = useQueryClient2(); return useMutation2({ mutationFn: /* @__PURE__ */ __name(({ id, completedBy, notes }) => client.completeProject(id, completedBy, notes), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data, variables) => { queryClient.setQueryData([ ...PROJECTS_QUERY_KEY, variables.id ], data); queryClient.invalidateQueries({ queryKey: PROJECTS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useCompleteProject, "useCompleteProject"); function useDeferProject() { const client = useGTDClient(); const queryClient = useQueryClient2(); return useMutation2({ mutationFn: /* @__PURE__ */ __name((id) => client.deferProject(id), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data, id) => { queryClient.setQueryData([ ...PROJECTS_QUERY_KEY, id ], data); queryClient.invalidateQueries({ queryKey: PROJECTS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useDeferProject, "useDeferProject"); function useActivateProject() { const client = useGTDClient(); const queryClient = useQueryClient2(); return useMutation2({ mutationFn: /* @__PURE__ */ __name((id) => client.activateProject(id), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data, id) => { queryClient.setQueryData([ ...PROJECTS_QUERY_KEY, id ], data); queryClient.invalidateQueries({ queryKey: PROJECTS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useActivateProject, "useActivateProject"); function useCancelProject() { const client = useGTDClient(); const queryClient = useQueryClient2(); return useMutation2({ mutationFn: /* @__PURE__ */ __name((id) => client.cancelProject(id), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data, id) => { queryClient.setQueryData([ ...PROJECTS_QUERY_KEY, id ], data); queryClient.invalidateQueries({ queryKey: PROJECTS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useCancelProject, "useCancelProject"); function useDeleteProject() { const client = useGTDClient(); const queryClient = useQueryClient2(); return useMutation2({ mutationFn: /* @__PURE__ */ __name((id) => client.deleteProject(id), "mutationFn"), onSuccess: /* @__PURE__ */ __name((_, id) => { queryClient.removeQueries({ queryKey: [ ...PROJECTS_QUERY_KEY, id ] }); queryClient.invalidateQueries({ queryKey: PROJECTS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useDeleteProject, "useDeleteProject"); // src/adapters/react/hooks/use-actions.ts import { useQuery as useQuery3, useMutation as useMutation3, useQueryClient as useQueryClient3 } from "@tanstack/react-query"; var ACTIONS_QUERY_KEY = [ "gtd", "actions" ]; var CONTEXTS_QUERY_KEY = [ "gtd", "contexts" ]; function useNextActions(filters) { const client = useGTDClient(); return useQuery3({ queryKey: [ ...ACTIONS_QUERY_KEY, filters ], queryFn: /* @__PURE__ */ __name(() => client.getNextActions(filters), "queryFn"), staleTime: 30 * 1e3 }); } __name(useNextActions, "useNextActions"); function useNextAction(id) { const client = useGTDClient(); return useQuery3({ queryKey: [ ...ACTIONS_QUERY_KEY, id ], queryFn: /* @__PURE__ */ __name(() => client.getNextAction(id), "queryFn"), enabled: !!id, staleTime: 30 * 1e3 }); } __name(useNextAction, "useNextAction"); function useActionsByProject(projectId) { const client = useGTDClient(); return useQuery3({ queryKey: [ ...ACTIONS_QUERY_KEY, "project", projectId ], queryFn: /* @__PURE__ */ __name(() => client.getActionsByProject(projectId), "queryFn"), enabled: !!projectId, staleTime: 30 * 1e3 }); } __name(useActionsByProject, "useActionsByProject"); function useActionsByContext(context) { const client = useGTDClient(); return useQuery3({ queryKey: [ ...ACTIONS_QUERY_KEY, "context", context ], queryFn: /* @__PURE__ */ __name(() => client.getActionsByContext(context), "queryFn"), enabled: !!context, staleTime: 30 * 1e3 }); } __name(useActionsByContext, "useActionsByContext"); function useContexts() { const client = useGTDClient(); return useQuery3({ queryKey: CONTEXTS_QUERY_KEY, queryFn: /* @__PURE__ */ __name(() => client.getContexts(), "queryFn"), staleTime: 5 * 60 * 1e3 }); } __name(useContexts, "useContexts"); function useCreateNextAction() { const client = useGTDClient(); const queryClient = useQueryClient3(); return useMutation3({ mutationFn: /* @__PURE__ */ __name((request) => client.createNextAction(request), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data) => { queryClient.invalidateQueries({ queryKey: ACTIONS_QUERY_KEY }); if (data.projectId) { queryClient.invalidateQueries({ queryKey: [ ...ACTIONS_QUERY_KEY, "project", data.projectId ] }); } if (data.context) { queryClient.invalidateQueries({ queryKey: [ ...ACTIONS_QUERY_KEY, "context", data.context ] }); } }, "onSuccess") }); } __name(useCreateNextAction, "useCreateNextAction"); function useAssignNextAction() { const client = useGTDClient(); const queryClient = useQueryClient3(); return useMutation3({ mutationFn: /* @__PURE__ */ __name(({ id, request }) => client.assignNextAction(id, request), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data, variables) => { queryClient.setQueryData([ ...ACTIONS_QUERY_KEY, variables.id ], data); queryClient.invalidateQueries({ queryKey: ACTIONS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useAssignNextAction, "useAssignNextAction"); function useUnassignNextAction() { const client = useGTDClient(); const queryClient = useQueryClient3(); return useMutation3({ mutationFn: /* @__PURE__ */ __name((id) => client.unassignNextAction(id), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data, id) => { queryClient.setQueryData([ ...ACTIONS_QUERY_KEY, id ], data); queryClient.invalidateQueries({ queryKey: ACTIONS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useUnassignNextAction, "useUnassignNextAction"); function useCompleteNextAction() { const client = useGTDClient(); const queryClient = useQueryClient3(); return useMutation3({ mutationFn: /* @__PURE__ */ __name((id) => client.completeNextAction(id), "mutationFn"), onSuccess: /* @__PURE__ */ __name((data, id) => { queryClient.setQueryData([ ...ACTIONS_QUERY_KEY, id ], data); queryClient.invalidateQueries({ queryKey: ACTIONS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useCompleteNextAction, "useCompleteNextAction"); function useDeleteNextAction() { const client = useGTDClient(); const queryClient = useQueryClient3(); return useMutation3({ mutationFn: /* @__PURE__ */ __name((id) => client.deleteNextAction(id), "mutationFn"), onSuccess: /* @__PURE__ */ __name((_, id) => { queryClient.removeQueries({ queryKey: [ ...ACTIONS_QUERY_KEY, id ] }); queryClient.invalidateQueries({ queryKey: ACTIONS_QUERY_KEY, exact: false }); }, "onSuccess") }); } __name(useDeleteNextAction, "useDeleteNextAction"); function useWeeklyReview(reviewedBy) { const client = useGTDClient(); return useQuery3({ queryKey: [ "gtd", "weekly-review", reviewedBy ], queryFn: /* @__PURE__ */ __name(() => client.getWeeklyReview(reviewedBy), "queryFn"), staleTime: 60 * 1e3 }); } __name(useWeeklyReview, "useWeeklyReview"); export { GTDProvider, useActionsByContext, useActionsByProject, useActivateProject, useAssignNextAction, useCancelProject, useCaptureInboxItem, useClarifyInboxItem, useCompleteNextAction, useCompleteProject, useContexts, useCreateNextAction, useCreateProject, useDeferProject, useDeleteInboxItem, useDeleteNextAction, useDeleteProject, useGTDClient, useInboxItem, useInboxItems, useNextAction, useNextActions, useProcessInboxItem, useProject, useProjects, useUnassignNextAction, useWeeklyReview }; //# sourceMappingURL=index.mjs.map