import type { Labrinth } from '@modrinth/api-client/src/modules/types' import type { Ref } from 'vue' import { createContext } from '.' export interface ProjectPageContext { // Data refs projectV2: Ref projectV3: Ref currentMember: Ref allMembers: Ref organization: Ref // Lazy version loading (client-side only) versions: Ref versionsLoading: Ref // Lazy dependencies loading (client-side only) dependencies: Ref dependenciesLoading: Ref // Refresh functions (invalidate + refetch) refreshProject: () => Promise refreshVersions: () => Promise refreshMembers: () => Promise refreshOrganization: () => Promise // Lazy loading loadVersions: () => Promise loadDependencies: () => Promise // Mutation functions patchProject: (data: Record, quiet?: boolean) => Promise patchIcon: (icon: File) => Promise setProcessing: () => Promise } export const [injectProjectPageContext, provideProjectPageContext] = createContext('root', 'projectPageContext')