24 lines
904 B
TypeScript
24 lines
904 B
TypeScript
import { TFunction } from "i18next";
|
|
import { OnboardingBlockDto } from "../blocks/OnboardingBlockUtils";
|
|
import { OnboardingWithDetails, updateOnboarding } from "../db/onboarding.db.server";
|
|
import { deleteOnboardingSessions } from "../db/onboardingSessions.db.server";
|
|
|
|
async function setSteps({ item, form, t }: { item: OnboardingWithDetails; form: FormData; t: TFunction }) {
|
|
const block: OnboardingBlockDto = JSON.parse(form.get("block")?.toString() ?? "{}");
|
|
if (!block) {
|
|
return Response.json({ error: t("shared.invalidForm") }, { status: 400 });
|
|
}
|
|
await updateOnboarding(item.id, {
|
|
type: block.style as "modal" | "page",
|
|
height: block.height,
|
|
canBeDismissed: block.canBeDismissed,
|
|
steps: block.steps.map((f, idx) => {
|
|
return { order: idx + 1, block: JSON.stringify(f) };
|
|
}),
|
|
});
|
|
await deleteOnboardingSessions(item.id);
|
|
}
|
|
export default {
|
|
setSteps,
|
|
};
|