alinea
Version:
Headless git-based CMS
256 lines (255 loc) • 8.47 kB
TypeScript
import type { Config } from 'alinea/core/Config';
import type { Connection } from 'alinea/core/Connection';
import { Entry, type EntryStatus } from 'alinea/core/Entry';
import { Type } from 'alinea/core/Type';
import { FormAtoms } from 'alinea/dashboard/atoms/FormAtoms';
import { type Edits } from './Edits.js';
export declare enum EditMode {
Editing = "editing",
Diff = "diff"
}
export type Version = Entry & {
parents: Array<string>;
};
interface EntryEditorParams {
id: string | undefined;
locale: string | null;
}
export declare enum EntryTransition {
SaveDraft = 0,
SaveTranslation = 1,
PublishEdits = 2,
RestoreRevision = 3,
PublishDraft = 4,
UnpublishDraft = 5,
DiscardDraft = 6,
ArchivePublished = 7,
PublishArchived = 8,
DeleteFile = 9,
DeleteEntry = 10
}
export declare const entryEditorAtoms: import("jotai/vanilla/utils/atomFamily.js").AtomFamily<EntryEditorParams, import("jotai").Atom<Promise<{
transition: import("jotai").PrimitiveAtom<EntryTransition | undefined> & {
init: EntryTransition | undefined;
};
revisionId: string;
activeStatus: EntryStatus;
statusInUrl: import("jotai").Atom<EntryStatus | undefined>;
selectedStatus: import("jotai").Atom<EntryStatus>;
entryData: EntryData;
editMode: import("jotai").PrimitiveAtom<EditMode> & {
init: EditMode;
};
activeVersion: Version;
type: Type;
previewPayload: import("jotai").Atom<Promise<string>>;
activeTitle: import("jotai").Atom<string>;
hasChanges: import("jotai").PrimitiveAtom<boolean> & {
init: boolean;
};
draftEntry: import("jotai").Atom<Promise<Entry<Record<string, unknown>>>> & {
current: import("jotai").Atom<Entry<Record<string, unknown>> | undefined>;
};
saveDraft: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
publishEdits: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
restoreRevision: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
publishDraft: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
discardDraft: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
unPublish: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
archive: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
publishArchived: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
deleteFile: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
deleteMediaLibrary: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
deleteEntry: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
saveTranslation: import("jotai").WritableAtom<null, [locale: string], Promise<void>> & {
init: null;
};
discardEdits: import("jotai").WritableAtom<null, [], void> & {
init: null;
};
showHistory: import("jotai").WritableAtom<boolean, [value: boolean], void>;
revisionsAtom: import("jotai").Atom<Promise<import("alinea/core/Connection").Revision[]>>;
previewToken: import("jotai").Atom<Promise<string>>;
previewRevision: import("jotai").PrimitiveAtom<{
ref: string;
file: string;
} | undefined> & {
init: {
ref: string;
file: string;
} | undefined;
};
preview: import("alinea/core/Preview.js").Preview | undefined;
form: import("jotai").Atom<FormAtoms<object>>;
view: import("alinea/core/View.js").View<import("../view/EntryEdit.js").EntryEditProps & {
type: Type;
}> | undefined;
parents: Array<{
id: string;
path: string;
status: EntryStatus;
main: boolean;
}>;
client: Connection;
config: Config;
entryId: string;
versions: Array<Version>;
statuses: Record<EntryStatus, Version>;
availableStatuses: Array<EntryStatus>;
translations: Array<{
locale: string;
entryId: string;
}>;
untranslated: boolean;
canPublish: boolean;
canDelete: boolean;
parentNeedsTranslation: boolean;
edits: Edits;
} | undefined>>>;
export interface EntryData {
parents: Array<{
id: string;
path: string;
status: EntryStatus;
main: boolean;
}>;
client: Connection;
config: Config;
entryId: string;
versions: Array<Version>;
statuses: Record<EntryStatus, Version>;
availableStatuses: Array<EntryStatus>;
translations: Array<{
locale: string;
entryId: string;
}>;
untranslated: boolean;
canPublish: boolean;
canDelete: boolean;
parentNeedsTranslation: boolean;
edits: Edits;
}
export type EntryEditor = ReturnType<typeof createEntryEditor>;
export declare function createEntryEditor(entryData: EntryData): {
transition: import("jotai").PrimitiveAtom<EntryTransition | undefined> & {
init: EntryTransition | undefined;
};
revisionId: string;
activeStatus: EntryStatus;
statusInUrl: import("jotai").Atom<EntryStatus | undefined>;
selectedStatus: import("jotai").Atom<EntryStatus>;
entryData: EntryData;
editMode: import("jotai").PrimitiveAtom<EditMode> & {
init: EditMode;
};
activeVersion: Version;
type: Type;
previewPayload: import("jotai").Atom<Promise<string>>;
activeTitle: import("jotai").Atom<string>;
hasChanges: import("jotai").PrimitiveAtom<boolean> & {
init: boolean;
};
draftEntry: import("jotai").Atom<Promise<Entry<Record<string, unknown>>>> & {
current: import("jotai").Atom<Entry<Record<string, unknown>> | undefined>;
};
saveDraft: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
publishEdits: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
restoreRevision: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
publishDraft: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
discardDraft: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
unPublish: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
archive: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
publishArchived: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
deleteFile: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
deleteMediaLibrary: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
deleteEntry: import("jotai").WritableAtom<null, [], Promise<void>> & {
init: null;
};
saveTranslation: import("jotai").WritableAtom<null, [locale: string], Promise<void>> & {
init: null;
};
discardEdits: import("jotai").WritableAtom<null, [], void> & {
init: null;
};
showHistory: import("jotai").WritableAtom<boolean, [value: boolean], void>;
revisionsAtom: import("jotai").Atom<Promise<import("alinea/core/Connection").Revision[]>>;
previewToken: import("jotai").Atom<Promise<string>>;
previewRevision: import("jotai").PrimitiveAtom<{
ref: string;
file: string;
} | undefined> & {
init: {
ref: string;
file: string;
} | undefined;
};
preview: import("alinea/core/Preview.js").Preview | undefined;
form: import("jotai").Atom<FormAtoms<object>>;
view: import("alinea/core/View.js").View<import("../view/EntryEdit.js").EntryEditProps & {
type: Type;
}> | undefined;
parents: Array<{
id: string;
path: string;
status: EntryStatus;
main: boolean;
}>;
client: Connection;
config: Config;
entryId: string;
versions: Array<Version>;
statuses: Record<EntryStatus, Version>;
availableStatuses: Array<EntryStatus>;
translations: Array<{
locale: string;
entryId: string;
}>;
untranslated: boolean;
canPublish: boolean;
canDelete: boolean;
parentNeedsTranslation: boolean;
edits: Edits;
};
export {};