import { applySync, calculateSyncFsOnly } from "@yaakapp-internal/sync"; import { createFastMutation } from "../hooks/useFastMutation"; import { showSimpleAlert } from "../lib/alert"; import { router } from "../lib/router"; export const openWorkspaceFromSyncDir = createFastMutation({ mutationKey: [], mutationFn: async (dir) => { const ops = await calculateSyncFsOnly(dir); const workspace = ops .map((o) => (o.type === "dbCreate" && o.fs.model.type === "workspace" ? o.fs.model : null)) .filter((m) => m)[0]; if (workspace == null) { showSimpleAlert("Failed to Open", "No workspace found in directory"); return; } await applySync(workspace.id, dir, ops); await router.navigate({ to: "/workspaces/$workspaceId", params: { workspaceId: workspace.id }, }); }, });