import { component, page } from "dbgen"; import { EComp, EPage, ESite, } from "../../../web/src/render/ed/logic/ed-global"; import { IItem } from "../../../web/src/utils/types/item"; /* WARNING: CHANGING FUNCTION NAME / OBJECT STRUCTURE WILL *BREAK* OFFLINE STORAGE -- ONLY ADDITION IS ALLOWED */ export type SAction = typeof SyncActions; export const SyncActions = { site: { list: async () => ({}) as Record, group: async () => ({}) as Record, load: async (id: string) => ({}) as ESite | void, }, comp: { new: async (arg: { group_id: string; item: IItem }) => {}, list: () => ({}) as Record>, group: async (id_site: string) => ({}) as Record, load: async (id: string) => ({}) as EComp | void, }, page: { list: (id_site: string) => ({}) as Record>, load: async (id: string) => ({}) as EPage | void, }, yjs: { um: async ( mode: "page" | "comp" | "site", action: "undo" | "redo", id: string ) => {}, sv_local: async ( mode: "page" | "comp" | "site", id: string, bin: Uint8Array ) => ({}) as { diff: Uint8Array; sv: Uint8Array } | void, diff_local: async ( mode: "page" | "comp" | "site", id: string, bin: Uint8Array ) => {}, sv_remote: async ( mode: "page" | "comp" | "site", id: string, sv: Uint8Array, diff: Uint8Array ) => ({}) as { diff: Uint8Array } | void, }, };