"use client"; import { createContext, useContext, type ReactNode } from "react"; import type { UpdateIssueRequest } from "@multica/core/types"; import type { IssueCreateDefaults } from "./types"; export type IssueSurfaceMutationOptions = { errorMessage?: string; onSuccess?: () => void; onError?: (err: unknown) => void; onSettled?: () => void; }; export interface IssueSurfaceActions { isPending: boolean; createIssue: (defaults?: IssueCreateDefaults) => void; updateIssue: ( issueId: string, updates: Partial, options?: IssueSurfaceMutationOptions, ) => void; moveIssue: ( issueId: string, updates: Partial, options?: IssueSurfaceMutationOptions, ) => void; batchUpdate: ( issueIds: string[], updates: Partial, ) => Promise; batchDelete: (issueIds: string[]) => Promise; } const IssueSurfaceActionsContext = createContext( null, ); export function IssueSurfaceActionsProvider({ actions, children, }: { actions: IssueSurfaceActions; children: ReactNode; }) { return ( {children} ); } export function useIssueSurfaceActionsOptional() { return useContext(IssueSurfaceActionsContext); }